Stockage de données vSphere VMFS - Backend de stockage iSCSI avec ONTAP
Cette section couvre la création d'une banque de données VMFS avec stockage iSCSI ONTAP .
Pour un provisionnement automatisé, utilisez le script suivant :[Ansible] .
Ce dont vous avez besoin
-
Les compétences de base nécessaires pour gérer un environnement vSphere et ONTAP.
-
Un système de stockage ONTAP (FAS/ AFF/CVO/ ONTAP Select/ ASA) exécutant {ontap_version}
-
Informations d'identification ONTAP (nom SVM, ID utilisateur et mot de passe)
-
Informations sur le port réseau ONTAP , le SVM et le LUN pour iSCSI
-
Informations d'identification du serveur vCenter
-
Informations sur l'hôte(s) vSphere
-
{vsphere_version}
-
-
Informations IP de l'adaptateur iSCSI VMKernel
-
Commutateur(s) réseau
-
Avec les ports de données réseau du système ONTAP et les hôtes vSphere connectés
-
VLAN(s) configuré(s) pour iSCSI
-
Agrégation de liens (facultative) configurée pour les ports de données réseau ONTAP
-
-
Outil ONTAP pour VMware vSphere déployé, configuré et prêt à être utilisé
Étapes
-
Vérifiez la compatibilité avec le "Outil de matrice d'interopérabilité (IMT)" .
-
Effectuez les tâches ONTAP et vSphere suivantes.
Tâches ONTAP
-
"Vérifier la licence ONTAP pour iSCSI" .
-
Utilisez le
system license show
commande pour vérifier si iSCSI est répertorié. -
Utiliser
license add -license-code <license code>
pour ajouter la licence.
-
-
Vérifiez que les interfaces logiques du réseau iSCSI sont disponibles sur le SVM.
Lorsqu'un SVM est créé à l'aide de l'interface graphique utilisateur, des interfaces réseau iSCSI sont également créées. -
Utilisez le
Network interface
commande pour afficher ou apporter des modifications à l'interface réseau.Deux interfaces réseau iSCSI par nœud sont recommandées. -
"Créez une interface réseau iSCSI."Vous pouvez utiliser la politique de service default-data-blocks.
-
"Vérifiez que le service data-iscsi est inclus dans la politique de service."Vous pouvez utiliser
network interface service-policy show
à vérifier. -
"Créez et mappez le LUN."Ignorez cette étape si vous utilisez les ONTAP tools for VMware vSphere. Répétez cette étape pour chaque LUN.
Tâches VMware vSphere
-
Vérifiez qu’au moins une carte réseau est disponible pour le VLAN iSCSI. Deux cartes réseau sont préférées pour de meilleures performances et une meilleure tolérance aux pannes.
-
"Identifiez le nombre de cartes réseau physiques disponibles sur l’hôte vSphere."
-
"Configurer l'initiateur iSCSI."Un cas d’utilisation typique est un initiateur iSCSI logiciel.
-
"Vérifiez que les groupes de ports iSCSI sont disponibles" .
-
Nous utilisons généralement un seul commutateur virtuel avec plusieurs ports de liaison montante.
-
Utilisez le mappage d’adaptateur 1:1.
-
-
Vérifiez que les adaptateurs iSCSI VMKernel sont activés pour correspondre au nombre de cartes réseau et que les adresses IP sont attribuées.
-
"Liez l'adaptateur logiciel iSCSI aux adaptateurs iSCSI VMKernel."
-
"Provisionner la banque de données VMFS avec les outils ONTAP" . Répétez cette étape pour tous les magasins de données.
Quelle est la prochaine étape ?
Une fois ces tâches terminées, la banque de données VMFS est prête à être utilisée pour le provisionnement des machines virtuelles.
## 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