Skip to main content
NetApp 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.

Armazenamento de dados do vSphere VMFS - back-end de armazenamento iSCSI com ONTAP

Colaboradores

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

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

O que você precisa

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

  • Um sistema de armazenamento ONTAP (FAS/AFF/CVO/ONTAP Select/ASA) executando o ONTAP_version

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

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

  • "Uma folha de cálculo de configuração iSCSI concluída"

  • Credenciais do vCenter Server

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

    • o que é o vsphere_version

  • Informações IP do adaptador iSCSI VMkernel

  • Switch(es) de rede

    • Com as portas de dados de rede do sistema ONTAP e os hosts vSphere conetados

    • VLAN(s) configurada(s) para iSCSI

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

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

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

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

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

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

  2. "Verifique se o protocolo iSCSI está ativado na SVM."

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

    Observação Quando um SVM é criado usando a GUI, interfaces de rede iSCSI também são criadas.
  4. Use o Network interface comando para exibir 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 blocos de dados padrão.

  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 ativados."

  8. "Crie e mapeie o LUN." Ignore esta etapa se você estiver usando as ferramentas do ONTAP para VMware vSphere. Repita este passo para cada LUN.

Tarefas do VMware vSphere

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

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

  3. "Configurar 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 uplink.

    • Use o mapeamento do adaptador 1:1.

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

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

  8. "Provisione o datastore VMFS com as Ferramentas do ONTAP". Repita esta etapa para todos os datastores.

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

O que se segue?

Depois que essas tarefas forem concluídas, o datastore VMFS estará pronto para consumir para provisionar 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