Skip to main content
NetApp virtualization solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

vSphere VMFS 데이터스토어 - ONTAP 사용한 iSCSI 스토리지 백엔드

기여자 kevin-hoke

이 섹션에서는 ONTAP iSCSI 스토리지를 사용하여 VMFS 데이터스토어를 만드는 방법에 대해 설명합니다.

자동 프로비저닝을 위해 다음 스크립트를 사용하세요.[Ansible] .

당신에게 필요한 것

  • vSphere 환경과 ONTAP 관리하는 데 필요한 기본 기술입니다.

  • {ontap_version}을 실행하는 ONTAP 스토리지 시스템(FAS/ AFF/CVO/ ONTAP Select/ ASA)

  • ONTAP 자격 증명(SVM 이름, 사용자 ID 및 비밀번호)

  • iSCSI에 대한 ONTAP 네트워크 포트, SVM 및 LUN 정보

  • "완료된 iSCSI 구성 워크시트"

  • vCenter Server 자격 증명

  • vSphere 호스트 정보

    • {vsphere_버전}

  • iSCSI VMKernel 어댑터 IP 정보

  • 네트워크 스위치

    • ONTAP 시스템 네트워크 데이터 포트 및 연결된 vSphere 호스트 사용

    • iSCSI에 대해 구성된 VLAN

    • (선택 사항) ONTAP 네트워크 데이터 포트에 대해 구성된 링크 집계

  • VMware vSphere용 ONTAP 도구가 배포, 구성 및 사용 준비가 되었습니다.

단계

  1. 호환성을 확인하세요 "상호 운용성 매트릭스 도구(IMT)" .

  2. "iSCSI 구성이 지원되는지 확인하세요."

  3. 다음 ONTAP 및 vSphere 작업을 완료하세요.

ONTAP 작업

  1. "iSCSI에 대한 ONTAP 라이센스 확인" .

    1. 사용하세요 system license show iSCSI가 나열되어 있는지 확인하는 명령입니다.

    2. 사용 license add -license-code <license code> 라이센스를 추가하세요.

  2. "SVM에서 iSCSI 프로토콜이 활성화되어 있는지 확인하세요."

  3. SVM에서 iSCSI 네트워크 논리 인터페이스를 사용할 수 있는지 확인합니다.

    참고 GUI를 사용하여 SVM을 생성하면 iSCSI 네트워크 인터페이스도 생성됩니다.
  4. 사용하세요 Network interface 네트워크 인터페이스를 보거나 변경하기 위한 명령입니다.

    팁 노드당 2개의 iSCSI 네트워크 인터페이스가 권장됩니다.
  5. "iSCSI 네트워크 인터페이스를 생성합니다."default-data-blocks 서비스 정책을 사용할 수 있습니다.

  6. "서비스 정책에 data-iscsi 서비스가 포함되어 있는지 확인하세요."사용할 수 있습니다 network interface service-policy show 확인하기 위해.

  7. "점보 프레임이 활성화되어 있는지 확인하세요."

  8. "LUN을 생성하고 매핑합니다."ONTAP tools for VMware vSphere 사용하는 경우 이 단계를 건너뜁니다. 각 LUN에 대해 이 단계를 반복합니다.

VMware vSphere 작업

  1. iSCSI VLAN에 대해 최소한 하나의 NIC를 사용할 수 있는지 확인하세요. 더 나은 성능과 내결함성을 위해서는 두 개의 NIC가 더 선호됩니다.

  2. "vSphere 호스트에서 사용 가능한 물리적 NIC의 수를 식별합니다."

  3. "iSCSI 초기자를 구성합니다."일반적인 사용 사례는 소프트웨어 iSCSI 이니시에이터입니다.

  4. "iSCSI용 TCPIP 스택이 사용 가능한지 확인하세요." .

  5. "iSCSI 포트 그룹을 사용할 수 있는지 확인하세요." .

    • 일반적으로 여러 개의 업링크 포트가 있는 단일 가상 스위치를 사용합니다.

    • 1:1 어댑터 매핑을 사용하세요.

  6. iSCSI VMKernel 어댑터가 NIC 수와 일치하도록 활성화되어 있고 IP가 할당되었는지 확인합니다.

  7. "iSCSI 소프트웨어 어댑터를 iSCSI VMKernel 어댑터에 연결합니다."

  8. "ONTAP 도구를 사용하여 VMFS 데이터 저장소 프로비저닝" . 모든 데이터 저장소에 대해 이 단계를 반복합니다.

  9. "하드웨어 가속 지원을 확인하세요."

다음은 무엇인가요?

이러한 작업이 완료되면 VMFS 데이터 저장소를 가상 머신 프로비저닝에 사용할 준비가 됩니다.

앤서블 플레이북
## 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