Skip to main content
NetApp Solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Datastore vSphere VMFS - backend storage iSCSI con ONTAP

Collaboratori

In questa sezione viene descritta la creazione di un datastore VMFS con lo storage iSCSI ONTAP.

Per il provisioning automatico, utilizzare il seguente script: [Ansible].

Di cosa hai bisogno

  • Le competenze di base necessarie per gestire un ambiente vSphere e ONTAP.

  • Un sistema storage ONTAP (FAS/AFF/CVO/ONTAP Select/ASA) con {ontap_version}

  • Credenziali ONTAP (nome SVM, ID utente e password)

  • Informazioni su porta di rete ONTAP, SVM e LUN per iSCSI

  • "Un foglio di lavoro di configurazione iSCSI completo"

  • Credenziali vCenter Server

  • Informazioni sugli host vSphere

    • {vsphere_version}

  • Informazioni IP adattatore VMkernel iSCSI

  • Switch di rete

    • Con porte dati di rete del sistema ONTAP e host vSphere collegati

    • VLAN configurate per iSCSI

    • (Opzionale) link aggregation configurato per le porte dati di rete ONTAP

  • Tool ONTAP per VMware vSphere implementato, configurato e pronto all'uso

Fasi

  1. Verificare la compatibilità con "Tool di matrice di interoperabilità (IMT)".

  2. "Verificare che la configurazione iSCSI sia supportata."

  3. Completare le seguenti attività di ONTAP e vSphere.

Attività di ONTAP

  1. "Verificare la licenza ONTAP per iSCSI".

    1. Utilizzare system license show Comando per verificare se iSCSI è presente nell'elenco.

    2. Utilizzare license add -license-code <license code> per aggiungere la licenza.

  2. "Verificare che il protocollo iSCSI sia attivato su SVM."

  3. Verificare che le interfacce logiche di rete iSCSI siano disponibili su SVM.

    Nota Quando si crea una SVM utilizzando la GUI, vengono create anche le interfacce di rete iSCSI.
  4. Utilizzare Network interface per visualizzare o apportare modifiche all'interfaccia di rete.

    Suggerimento Si consigliano due interfacce di rete iSCSI per nodo.
  5. "Creare un'interfaccia di rete iSCSI." È possibile utilizzare la policy di servizio default-data-block.

  6. "Verificare che il servizio dati-iscsi sia incluso nella politica di servizio." È possibile utilizzare network interface service-policy show per verificare.

  7. "Verificare che i frame jumbo siano attivati."

  8. "Creare e mappare il LUN." Saltare questo passaggio se si utilizzano i tool ONTAP per VMware vSphere. Ripetere questo passaggio per ogni LUN.

Attività di VMware vSphere

  1. Verificare che almeno una NIC sia disponibile per la VLAN iSCSI. Due schede di rete sono preferite per migliorare le performance e la tolleranza agli errori.

  2. "Identificare il numero di NIC fisiche disponibili sull'host vSphere."

  3. "Configurare iSCSI Initiator." Un caso d'utilizzo tipico è un iniziatore iSCSI software.

  4. "Verificare che lo stack TCPIP per iSCSI sia disponibile".

  5. "Verificare che i portgroup iSCSI siano disponibili".

    • In genere utilizziamo un singolo switch virtuale con più porte di uplink.

    • Utilizzare la mappatura dell'adattatore 1:1.

  6. Verificare che gli adattatori VMkernel iSCSI siano abilitati per corrispondere al numero di NIC e che gli IP siano assegnati.

  7. "Collegare l'adattatore software iSCSI agli adattatori VMkernel iSCSI."

  8. "Eseguire il provisioning del datastore VMFS con gli strumenti ONTAP". Ripetere questo passaggio per tutti gli archivi dati.

  9. "Verificare il supporto dell'accelerazione hardware."

Quali sono le prossime novità?

Una volta completate queste attività, il datastore VMFS è pronto per il provisioning delle macchine virtuali.

Ansible Playbook
## 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