Skip to main content
NetApp virtualization solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

vSphere VMFS Datastore - backend de armazenamento iSCSI com ONTAP

Colaboradores kevin-hoke

Esta seção aborda a criação de um armazenamento de dados VMFS com armazenamento ONTAP iSCSI.

Para provisionamento automatizado, use o seguinte script:[Ansible] .

O que você precisa

  • As habilidades básicas necessárias para gerenciar um ambiente vSphere e ONTAP.

  • Um sistema de armazenamento ONTAP (FAS/ AFF/ CVO / ONTAP Select/ ASA) executando {ontap_version}

  • Credenciais ONTAP (nome SVM, ID de usuário e senha)

  • Porta de rede ONTAP , SVM e informações de LUN para iSCSI

  • "Uma planilha de configuração iSCSI concluída"

  • Credenciais do vCenter Server

  • Informações do(s) host(s) vSphere

    • {versão_vsphere}

  • Informações de IP do adaptador iSCSI VMKernel

  • Comutadores de rede

    • Com portas de dados de rede do sistema ONTAP e hosts vSphere conectados

    • VLAN(s) configurada(s) para iSCSI

    • (Opcional) Agregação de links configurada para portas de dados de rede ONTAP

  • Ferramenta ONTAP para VMware vSphere implantada, configurada e pronta para consumo

Passos

  1. Verifique a compatibilidade com o "Ferramenta de Matriz de Interoperabilidade (IMT)" .

  2. "Verifique se a configuração iSCSI é suportada."

  3. Conclua as seguintes tarefas do ONTAP e do vSphere.

Tarefas ONTAP

  1. "Verifique a licença ONTAP para iSCSI" .

    1. Use o system license show comando para verificar se o iSCSI está listado.

    2. Usar license add -license-code <license code> para adicionar a licença.

  2. "Verifique se o protocolo iSCSI está habilitado no SVM."

  3. Verifique se as interfaces lógicas de rede iSCSI estão disponíveis no SVM.

    Observação Quando uma SVM é criada usando a GUI, interfaces de rede iSCSI também são criadas.
  4. Use o Network interface comando para visualizar ou fazer alterações na interface de rede.

    Dica São recomendadas duas interfaces de rede iSCSI por nó.
  5. "Crie uma interface de rede iSCSI."Você pode usar a política de serviço default-data-blocks.

  6. "Verifique se o serviço data-iscsi está incluído na política de serviço."Você pode usar network interface service-policy show para verificar.

  7. "Verifique se os quadros jumbo estão habilitados."

  8. "Crie e mapeie o LUN."Pule esta etapa se estiver usando ONTAP tools for VMware vSphere. Repita esta etapa para cada LUN.

Tarefas do VMware vSphere

  1. Verifique se pelo menos uma NIC está disponível para a VLAN iSCSI. Duas NICs são preferenciais para melhor desempenho e tolerância a falhas.

  2. "Identifique o número de NICs físicas disponíveis no host vSphere."

  3. "Configure o iniciador iSCSI."Um caso de uso típico é um iniciador iSCSI de software.

  4. "Verifique se a pilha TCPIP para iSCSI está disponível" .

  5. "Verifique se os grupos de portas iSCSI estão disponíveis" .

    • Normalmente usamos um único switch virtual com várias portas de uplink.

    • Use o mapeamento do adaptador 1:1.

  6. Verifique se os adaptadores iSCSI VMKernel estão habilitados para corresponder ao número de NICs e se os IPs estão atribuídos.

  7. "Vincule o adaptador de software iSCSI ao(s) adaptador(es) iSCSI VMKernel."

  8. "Provisione o armazenamento de dados VMFS com ferramentas ONTAP" . Repita esta etapa para todos os armazenamentos de dados.

  9. "Verifique o suporte à aceleração de hardware."

O que vem a seguir?

Após a conclusão dessas tarefas, o armazenamento de dados VMFS estará pronto para ser consumido para provisionamento de máquinas virtuais.

Manual do 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