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

Stockage de données vSphere VMFS - Backend de stockage iSCSI avec ONTAP

Contributeurs kevin-hoke

Cette section couvre la création d'une banque de données VMFS avec stockage iSCSI ONTAP .

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

Ce dont vous avez besoin

  • Les compétences de base nécessaires pour gérer un environnement vSphere et ONTAP.

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

  • Informations d'identification ONTAP (nom SVM, ID utilisateur et mot de passe)

  • Informations sur le port réseau ONTAP , le SVM et le LUN pour iSCSI

  • "Une feuille de configuration iSCSI complétée"

  • Informations d'identification du serveur vCenter

  • Informations sur l'hôte(s) vSphere

    • {vsphere_version}

  • Informations IP de l'adaptateur iSCSI VMKernel

  • Commutateur(s) réseau

    • Avec les ports de données réseau du système ONTAP et les hôtes vSphere connectés

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

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

  • Outil ONTAP pour VMware vSphere déployé, configuré et prêt à être utilisé

Étapes

  1. Vérifiez la compatibilité avec le "Outil de 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érifier 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érifiez que le protocole iSCSI est activé sur le SVM."

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

    Remarque Lorsqu'un SVM est créé à l'aide de l'interface graphique utilisateur, des 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 politique de service default-data-blocks.

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

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

  8. "Créez et mappez le LUN."Ignorez cette étape si vous utilisez les ONTAP tools for VMware vSphere. Répétez cette étape 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 préférées pour de meilleures performances et une meilleure tolérance aux pannes.

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

  3. "Configurer 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 montante.

    • Utilisez le mappage d’adaptateur 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. "Liez l'adaptateur logiciel iSCSI aux adaptateurs iSCSI VMKernel."

  8. "Provisionner la banque de données VMFS avec les outils ONTAP" . Répétez cette étape pour tous les magasins de données.

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

Quelle est la prochaine étape ?

Une fois ces tâches terminées, la banque de données VMFS est prête à être utilisée pour le provisionnement des machines virtuelles.

Manuel de jeu 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