Skip to main content
NetApp Solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Datastore VMFS vSphere - stockage iSCSI back-end avec ONTAP

Contributeurs

Cette section décrit la création d'un datastore VMFS avec un stockage iSCSI ONTAP.

Pour le provisionnement automatisé, utilisez le script suivant : [Ansible].

Ce dont vous avez besoin

  • Les compétences de base nécessaires à la gestion d'un environnement vSphere et d'ONTAP.

  • Un système de stockage ONTAP (FAS/AFF/CVO/ONTAP Select/ASA) exécutant {ontap_version}

  • Identifiants ONTAP (nom du SVM, ID d'utilisateur et mot de passe)

  • Informations relatives au port réseau ONTAP, au SVM et aux LUN pour iSCSI

  • "Une fiche de configuration iSCSI remplie"

  • Informations d'identification du serveur vCenter

  • Informations sur les hôtes vSphere

    • {vsphere_version}

  • Informations IP de l'adaptateur VMKernel iSCSI

  • Commutateur(s) réseau

    • Grâce aux ports de données du système ONTAP et aux hôtes vSphere connectés

    • VLAN(s) configurés(s) pour iSCSI

    • (Facultatif) agrégation de liens configurée pour les ports de données réseau ONTAP

  • L'outil ONTAP pour VMware vSphere est déployé, configuré et prêt à l'emploi

Étapes

  1. Vérifiez la compatibilité avec le "Matrice d'interopérabilité (IMT)".

  2. "Vérifiez que la configuration iSCSI est prise en charge."

  3. Effectuez les tâches ONTAP et vSphere suivantes.

Tâches ONTAP

  1. "Vérifiez la licence ONTAP pour iSCSI".

    1. Utilisez le system license show Commande pour vérifier si iSCSI est répertorié.

    2. Utiliser license add -license-code <license code> pour ajouter la licence.

  2. "Vérifier que le protocole iSCSI est activé sur le SVM"

  3. Vérifier que les interfaces logiques réseau iSCSI sont disponibles sur le SVM.

    Remarque Lorsqu'un SVM est créé via l'interface utilisateur graphique, les interfaces réseau iSCSI sont également créées.
  4. Utilisez le Network interface commande pour afficher ou apporter des modifications à l'interface réseau.

    Astuce Deux interfaces réseau iSCSI par nœud sont recommandées.
  5. "Créez une interface réseau iSCSI." Vous pouvez utiliser la stratégie de service blocs de données par défaut.

  6. "Vérifiez que le service Data-iscsi est inclus dans la stratégie de service." Vous pouvez utiliser network interface service-policy show à vérifier.

  7. "Vérifiez que les trames Jumbo sont activées."

  8. "Créer et mapper la LUN." Ignorez cette étape si vous utilisez les outils ONTAP pour VMware vSphere. Répétez cette procédure pour chaque LUN.

Tâches VMware vSphere

  1. Vérifiez qu'au moins une carte réseau est disponible pour le VLAN iSCSI. Deux cartes réseau sont à privilégier pour de meilleures performances et une meilleure tolérance aux pannes.

  2. "Identifier le nombre de cartes réseau physiques disponibles sur l'hôte vSphere."

  3. "Configurez l'initiateur iSCSI." Un cas d'utilisation typique est un initiateur iSCSI logiciel.

  4. "Vérifiez que la pile TCPIP pour iSCSI est disponible".

  5. "Vérifiez que les groupes de ports iSCSI sont disponibles".

    • Nous utilisons généralement un seul commutateur virtuel avec plusieurs ports de liaison ascendante.

    • Utilisez le mappage de carte 1:1.

  6. Vérifiez que les adaptateurs iSCSI VMKernel sont activés pour correspondre au nombre de cartes réseau et que les adresses IP sont attribuées.

  7. "Reliez la carte logicielle iSCSI aux adaptateurs VMKernel iSCSI."

  8. "Provisionnement du datastore VMFS avec les outils ONTAP". Répétez cette étape pour tous les datastores.

  9. "Vérifier la prise en charge de l'accélération matérielle."

Et la suite ?

Une fois ces tâches terminées, le datastore VMFS est prêt à utiliser pour le provisionnement des machines virtuelles.

PlayBook Ansible
## Disclaimer: Sample script for reference purpose only.

- hosts: '{{ vsphere_host }}'
  name: Play for vSphere iSCSI Configuration
  connection: local
  gather_facts: false
  tasks:
    # Generate Session ID for vCenter
    - name: Generate a Session ID for vCenter
      uri:
        url: "https://{{ vcenter_hostname }}/rest/com/vmware/cis/session"
        validate_certs: false
        method: POST
        user: "{{ vcenter_username }}"
       password: "{{ vcenter_password }}"
        force_basic_auth: yes
        return_content: yes
      register: vclogin

    # Generate Session ID for ONTAP tools with vCenter
    - name: Generate a Session ID for ONTAP tools with vCenter
      uri:
        url: "https://{{ ontap_tools_ip }}:8143/api/rest/2.0/security/user/login"
        validate_certs: false
        method: POST
        return_content: yes
        body_format: json
        body:
          vcenterUserName: "{{ vcenter_username }}"
          vcenterPassword: "{{ vcenter_password }}"
      register: login

    # Get existing registered ONTAP Cluster info with ONTAP tools
    - name: Get ONTAP Cluster info from ONTAP tools
      uri:
        url: "https://{{ ontap_tools_ip }}:8143/api/rest/2.0/storage/clusters"
        validate_certs: false
        method: Get
        return_content: yes
        headers:
          vmware-api-session-id: "{{ login.json.vmwareApiSessionId }}"
      register: clusterinfo

    - name: Get ONTAP Cluster ID
      set_fact:
        ontap_cluster_id: "{{ clusterinfo.json | json_query(clusteridquery) }}"
      vars:
        clusteridquery: "records[?ipAddress == '{{ netapp_hostname }}' && type=='Cluster'].id | [0]"

    - name: Get ONTAP SVM ID
      set_fact:
        ontap_svm_id: "{{ clusterinfo.json | json_query(svmidquery) }}"
      vars:
        svmidquery: "records[?ipAddress == '{{ netapp_hostname }}' && type=='SVM' && name == '{{ svm_name }}'].id | [0]"

    - name: Get Aggregate detail
      uri:
        url: "https://{{ ontap_tools_ip }}:8143/api/rest/2.0/storage/clusters/{{ ontap_svm_id }}/aggregates"
        validate_certs: false
        method: GET
        return_content: yes
        headers:
          vmware-api-session-id: "{{ login.json.vmwareApiSessionId }}"
          cluster-id: "{{ ontap_svm_id }}"
      when: ontap_svm_id != ''
      register: aggrinfo

    - name: Select Aggregate with max free capacity
      set_fact:
        aggr_name: "{{ aggrinfo.json | json_query(aggrquery) }}"
      vars:
        aggrquery: "max_by(records, &freeCapacity).name"

    - name: Convert datastore size in MB
      set_fact:
        datastoreSizeInMB: "{{ iscsi_datastore_size | human_to_bytes/1024/1024 | int }}"

    - name: Get vSphere Cluster Info
      uri:
        url: "https://{{ vcenter_hostname }}/api/vcenter/cluster?names={{ vsphere_cluster }}"
        validate_certs: false
        method: GET
        return_content: yes
        body_format: json
        headers:
          vmware-api-session-id: "{{ vclogin.json.value }}"
      when: vsphere_cluster != ''
      register: vcenterclusterid

    - name: Create iSCSI VMFS-6 Datastore with ONTAP tools
      uri:
        url: "https://{{ ontap_tools_ip }}:8143/api/rest/3.0/admin/datastore"
        validate_certs: false
        method: POST
        return_content: yes
        status_code: [200]
        body_format: json
        body:
          traditionalDatastoreRequest:
            name: "{{ iscsi_datastore_name }}"
            datastoreType: VMFS
            protocol: ISCSI
            spaceReserve: Thin
            clusterID:  "{{ ontap_cluster_id }}"
            svmID: "{{ ontap_svm_id }}"
            targetMoref: ClusterComputeResource:{{ vcenterclusterid.json[0].cluster }}
            datastoreSizeInMB: "{{ datastoreSizeInMB | int }}"
            vmfsFileSystem: VMFS6
            aggrName: "{{ aggr_name }}"
            existingFlexVolName: ""
            volumeStyle: FLEXVOL
            datastoreClusterMoref: ""
        headers:
          vmware-api-session-id: "{{ login.json.vmwareApiSessionId }}"
      when: ontap_cluster_id != '' and ontap_svm_id != '' and aggr_name != ''
      register: result
      changed_when: result.status == 200