vSphere VMFS データストア - iSCSI ストレージバックエンド( ONTAP を使用)
このセクションでは、 ONTAP iSCSI ストレージを使用した VMFS データストアの作成について説明します。
自動プロビジョニングの場合は、次のスクリプトを使用します。 [Ansible]。
必要なもの
-
vSphere 環境と ONTAP を管理するために必要な基本的なスキル。
-
{ ONTAP_version } を実行している ONTAP ストレージシステム( FAS/AFF/CVO/ONTAP Select / ASA )
-
ONTAP クレデンシャル( SVM 名、ユーザ ID 、パスワード)
-
iSCSI の ONTAP ネットワークポート、 SVM 、および LUN の情報
-
vCenter Server クレデンシャル
-
vSphere ホスト情報
-
{ vsphere_version }
-
-
iSCSI VMkernelアダプタIP情報
-
ネットワークスイッチ
-
ONTAP システムのネットワークデータポートと接続された vSphere ホストで使用
-
iSCSI 用に設定されている VLAN
-
(任意) ONTAP ネットワークデータポート用に設定されたリンクアグリゲーション
-
-
ONTAP ツール for VMware vSphere の導入、設定、利用可能な状態
手順
-
との互換性を確認します "Interoperability Matrix Tool ( IMT )"。
-
次の ONTAP および vSphere タスクを実行します。
ONTAP タスク
-
"iSCSI の ONTAP ライセンスを確認します"です。
-
「 system license show 」コマンドを使用して、 iSCSI がリストされているかどうかを確認します。
-
ライセンスを追加するには 'license add-license-code <license code> を使用します
-
-
iSCSI ネットワーク論理インターフェイスが SVM で使用可能であることを確認します。
GUI を使用して SVM を作成すると、 iSCSI ネットワークインターフェイスも作成されます。 -
ネットワークインターフェイスを表示または変更するには ' ネットワークインタフェースコマンドを使用します
ノードごとに 2 つの iSCSI ネットワークインターフェイスを推奨します。 -
"iSCSI ネットワークインターフェイスを作成" default-data-blocks サービスポリシーを使用できます。
-
"データ iSCSI サービスがサービスポリシーに含まれていることを確認します。" 確認には、「 network interface service-policy show 」を使用できます。
-
"LUN を作成してマッピングします。" VMware vSphere 用の ONTAP ツールを使用する場合は、この手順を省略してください。LUN ごとにこの手順を繰り返します。
VMware vSphere タスク
-
iSCSI VLAN で少なくとも 1 つの NIC が使用可能であることを確認します。パフォーマンスとフォールトトレランスを向上させるために、 2 枚の NIC を推奨します。
-
"iSCSI イニシエータを設定します。" 一般的なユースケースとしては、ソフトウェア iSCSI イニシエータがあります。
-
"iSCSI ポートグループが使用可能であることを確認します"。
-
通常、複数のアップリンクポートを持つ単一の仮想スイッチを使用します。
-
1:1 のアダプタマッピングを使用します。
-
-
iSCSI VMkernel アダプタが有効になっていて NIC の数が一致していて、 IP が割り当てられていることを確認します。
-
"ONTAP Tools を使用して 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