vSphere VMFS 데이터 저장소 - ONTAP를 사용하는 iSCSI 스토리지 백엔드
이 섹션에서는 ONTAP iSCSI 스토리지를 사용하여 VMFS 데이터 저장소를 생성하는 방법에 대해 설명합니다.
자동 프로비저닝을 수행하려면 다음 스크립트를 사용하십시오. [Ansible].
필요한 것
-
vSphere 환경 및 ONTAP를 관리하는 데 필요한 기본 기술
-
{ONTAP_VERSION}을 실행하는 ONTAP 스토리지 시스템(FAS/AFF/CVO/ONTAP Select/ASA
-
ONTAP 자격 증명(SVM 이름, userID 및 암호)
-
iSCSI를 위한 ONTAP 네트워크 포트, SVM 및 LUN 정보
-
vCenter Server 자격 증명
-
vSphere 호스트 정보입니다
-
{vSphere_version}
-
-
iSCSI VMkernel 어댑터 IP 정보입니다
-
네트워크 스위치
-
ONTAP 시스템 네트워크 데이터 포트 및 연결된 vSphere 호스트를 사용합니다
-
iSCSI에 대해 구성된 VLAN입니다
-
(선택 사항) ONTAP 네트워크 데이터 포트에 대해 구성된 Link Aggregation입니다
-
-
구축, 구성 및 바로 사용할 수 있는 VMware vSphere용 ONTAP 툴
단계
-
과의 호환성을 확인하십시오 "상호 운용성 매트릭스 툴(IMT)".
-
다음 ONTAP 및 vSphere 작업을 완료합니다.
ONTAP 작업
-
"iSCSI에 대한 ONTAP 라이센스를 확인합니다"..
-
'system license show' 명령어를 사용하여 iSCSI가 나열되는지 확인한다.
-
사용권을 추가하려면 'license add-license-code <license code>'를 사용하십시오.
-
-
SVM에서 iSCSI 네트워크 논리 인터페이스를 사용할 수 있는지 확인합니다.
GUI를 사용하여 SVM을 생성할 때 iSCSI 네트워크 인터페이스도 생성됩니다. -
네트워크 인터페이스를 보거나 변경하려면 네트워크 인터페이스 명령을 사용합니다.
노드당 두 개의 iSCSI 네트워크 인터페이스를 사용하는 것이 좋습니다. -
"iSCSI 네트워크 인터페이스를 생성합니다." 기본 데이터 블록 서비스 정책을 사용할 수 있습니다.
-
"데이터 iSCSI 서비스가 서비스 정책에 포함되어 있는지 확인합니다." 네트워크 인터페이스 service-policy show를 사용하여 확인할 수 있습니다.
-
"LUN을 생성하고 매핑합니다." VMware vSphere용 ONTAP 툴을 사용하는 경우 이 단계를 건너뛰십시오. 각 LUN에 대해 이 단계를 반복합니다.
VMware vSphere 작업
-
iSCSI VLAN에 사용할 수 있는 NIC가 하나 이상 있는지 확인합니다. 성능 및 내결함성을 향상시키기 위해 2개의 NIC가 선호됩니다.
-
"iSCSI 이니시에이터를 구성합니다." 일반적인 사용 사례는 소프트웨어 iSCSI 이니시에이터입니다.
-
"iSCSI 포트 그룹을 사용할 수 있는지 확인합니다".
-
일반적으로 업링크 포트가 여러 개인 단일 가상 스위치를 사용합니다.
-
1:1 어댑터 매핑을 사용합니다.
-
-
iSCSI VMkernel 어댑터가 NIC 수와 일치하도록 설정되어 있고 IP가 할당되어 있는지 확인합니다.
-
"ONTAP 툴을 사용하여 VMFS 데이터 저장소를 프로비저닝합니다". 모든 데이터 저장소에 대해 이 단계를 반복합니다.
다음 단계
이러한 작업이 완료되면 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