Les APIs VMware vSphere : intégration de baie (VAAI), vous pouvez déléguer certaines opérations liées au stockage à votre baie de stockage si celle-ci supporte le VAAI.
VAAI fournit une assistance matérielle aux fournisseurs de stockage.
En effet, les opérations liées au stockage (telles que le clonage ou la migration d'une VM, la mise à zéro des blocs d'un disque virtuel créé en provisionnement statique, ...) sont souvent couteuses en termes de ressources.
Grâce à VAAI, ces opérations seront effectuées par votre baie de stockage. Ce qui allègera la charge de travail de vos hôtes VMware ESXi.
Notez que VAAI peut être utilisé par VMware vSphere pour toutes les opérations qui restent internes à une baie de stockage.
Donc, si vous créez plusieurs banques de données qui se trouvent dans la même baie de stockage, les opérations seront tout de même gérées par la baie de stockage (grâce au support du VAAI).
Les APIs sont composées de plusieurs primitives de stockage qui permettent d'effectuer certaines opérations sur la baie de stockage. Plus votre baie de stockage supporte de primitives de stockage, plus l'hôte pourra déléguer certains types d'opérations au niveau du stockage.
Comme vous pouvez le voir sur le schéma ci-dessous:
Sans le support du VAAI, toutes les opérations effectuées sur le stockage seraient effectuées par le vSphere VMkernel Data Mover. Ce qui signifie que les ressources des hôtes VMware ESXi seront beaucoup plus utilisées.
Important : à l'origine, depuis VMware vSphere 4.1, il n'y avait que 3 primitives VAAI et cela était supporté uniquement pour le stockage en mode blocs (iSCSI, FC et FCoE).
Néanmoins, depuis VMware vSphere 5.0, de nouvelles primitives de stockages sont apparues pour les NAS et le provisionnement dynamique de VMware vSphere.
Lorsque vous créez une banque de données, le système de fichiers généralement utilisé est VMFS.
Dans VMFS, de nombreuses opérations nécessitent l'utilisation de verrous pour éviter la corruption de données.
En effet, étant donné que les banques de données peuvent être utilisées simultanément par plusieurs hôtes, ces verrous permettent d'éviter qu'un hôte ne tente de modifier un fichier ou des métadonnées qui seraient en cours de modification par un autre hôte.
Sans le support d'ATS, VMware vSphere utilise des réservations SCSI sur les volumes VMFS comme système de verrouillage pour éviter que 2 hôtes ne puissent modifier les mêmes métadonnées au même moment.
L'inconvénient est qu'une réservation verrouille un LUN entier. Ce qui peut créer des problèmes de contention si de nombreuses machines virtuelles se trouvent sur la même banque de données.
Avec le support d'ATS qui est un système de verrouillage amélioré, les verrous sont gérés par la baie de stockage.
De plus, grâce à ATS, il est possible de modifier uniquement un secteur de disque sur un volume VMFS sans verrouiller entièrement le LUN.
Sans le support de VAAI, le clonage ou la migration d'une machine virtuelle (Storage vMotion) est géré par le vSphere VMkernel Data Mover.
Ce qui implique que l'hôte lise et écrive de grandes quantités de données sur baie de stockage. Ce qui utilise les ressources (CPU et autres) de l'hôte, ainsi que le réseau entre l'hôte et la baie de stockage.
Or, si votre baie de stockage supporte la primitive de stockage "XCOPY" (qui fait partie de VAAI), votre hôte devra uniquement demander à votre baie de copier les données nécessaires.
Autrement dit, votre hôte pourra demander par exemple de copier tel fichier "vmdk" à sa place sans qu'il n'ait à le lire entièrement pour le réécrire sur la même baie de stockage.
Ce qui allège fortement la charge de travail de votre hôte VMware ESXi, ainsi que l'utilisation de la bande passante réseau.
Sans le support de VAAI, lorsque vous créez un disque dur virtuel avec un type de provisionnement statique immédiatement mis à zéro, une commande SCSI est utilisée pour mettre à zéro tous les blocs nécessaires à la création de celui-ci.
Ce qui consomme à nouveau des ressources CPU, ainsi que le tampon DMA et ce qui remplit également la file d'attente HBA.
Avec le support de VAAI, vos hôtes VMware ESXi pourront mettre à zéro un grand nombre de blocs en utilisant la commande SCSI WRITE_SAME. Ce qui évite de transférer inutilement des données (via le réseau pour le iSCSI) entre l'hôte et la baie de stockage.
Notez que cette primitive permet d'accélérer les tâches liées au provisionnement lors de :
Notez que les baies de stockage n'écrivent pas toutes les zéros directement sur le disque.
Certaines baies de stockage utilisent un fichier de métadonnées. Ce qui peut donner des performances différentes.
La primitive VAAI "UNMAP" permet à un hôte VMware ESXi d'informer la baie de stockage de l'espace libéré après la migration ou la suppression d'une machine virtuelle. UNMAP est aussi connu sous le nom "Récupération de l'espace mort".
Précédemment, sous vSphere 5.0, cette opération UNMAP était effectuée de manière automatique (par exemple : juste après la migration d'une machine virtuelle). Néanmoins, cela posait des problèmes de performances.
Ensuite, cette opération devait être effectuée manuellement.
Néanmoins, depuis vSphere 6.5, cette primitive UNMAP est de nouveau automatique si vous formatez votre banque de données en VMFS6. En effet, pour les banques de données VMFS6, un robot UNMAP automatisé fonctionne en continu en arrière-plan pour informer la baie de l'espace libéré sur celles-ci.
Source : Demandes de récupération d'espace des banques de données VMFS - VMware Docs.
Depuis vSphere 6.0, un OS invité peut également informer une baie de l'espace libéré lorsque celui-ci est installé sur un disque dur virtuel avec un provisionnement dynamique.
Le support natif de UNMAP était limité à Windows Server 2012 R2. Les distributions Linux ne pouvaient pas effectuer cette opération UNAMP, car la version SCSI utilisée par le matériel virtuel était la version 2 et que la version minimum requise était la version 5.
Grâce au support SPC-4 apparu avec vSphere 6.5 pour le matériel virtuel, les distributions Linux sont maintenant en mesure d'effectuer ses opérations UNMAP.
Important : il est recommandé que la taille des blocs utilisée pour les partitions du système d'exploitation invité soit de 1 Mo pour que UNMAP puisse fonctionner correctement.
Source : VMware vSphere APIs: Array Integration (VAAI) | VMware.
Pour vérifier si VAAI est supporté par votre baie de stockage, ainsi que savoir quelles primitives VAAI elle supporte, vous pouvez accéder à la page "VMware Compatibility Guide - Storage/SAN".
Pour l'exemple, nous allons chercher la baie de stockage "HPE LeftHand" :
Cliquez sur le nom de votre baie de stockage.
Dans notre cas : Lefthand.
Choisissez votre version de VMware ESXi dans la liste en haut à gauche et consultez les informations concernant la version du firmware qu'elle possède.
Dans notre cas, nous pouvons voir que celle-ci supporte tous les primitives VAAI, y compris UNMAP :
Pour vérifier si votre baie de stockage supporte le VAAI, sélectionnez votre hôte VMware ESXi et allez dans "Configurer -> Stockage -> Adaptateurs de stockage".
Ensuite, sélectionnez le "iSCSI Software Adapter" et allez dans l'onglet "Périphériques" (en bas de page).
S'il est indiqué "Pris en charge" dans la colonne "Accélération matérielle", c'est que le VAAI est supporté par la baie de stockage où se trouve sur le disque iSCSI souhaité.
Dans le cas contraire, il sera indiqué "Non pris en charge".
Important : le fait qu'il soit indiqué "Pris en charge" ne veut pas dire que l'UNMAP (qui est une des fonctionnalités du VAAI) est aussi supporté.
Pour le vérifier, vous devrez vous connecter en ligne de commandes (SSH) à votre hôte VMware ESXi.
Comme vous pouvez le voir :
Source : Does W2K12R2 Storage Server integrate into VMware with VAAI?
Pour connaitre précisément quelles fonctionnalités VAAI sont supportées, allez dans "Configurer -> Système -> Services" et démarrez le service "SSH".
Connectez-vous à votre hôte VMware ESXi en SSH.
Tapez la commande :
Plain Text
esxcli storage core device vaai status get
Comme vous pouvez le voir :
Source : Listing VAAI Filters and Plug-ins – teaser.
Plain Text
eui.0ca9aa96ed2401f9 VAAI Plugin Name: ATS Status: supported Clone Status: supported Zero Status: supported Delete Status: unsupported ... eui.47f31a4cc14db26c VAAI Plugin Name: ATS Status: supported Clone Status: supported Zero Status: supported Delete Status: unsupported naa.60003ff44dc75adcafe8cc13f634ba70 VAAI Plugin Name: VMW_VAAIP_MASK ATS Status: unsupported Clone Status: unsupported Zero Status: unsupported Delete Status: unsupported
Si vous souhaitez tester la différence entre sans et avec le support du VAAI, il vous suffit de créer une machine virtuelle sur un stockage qui le supporte et en créer une autre sur un stockage qui ne le supporte pas.
Vous remarquerez que grâce au VAAI vous bénéficierez de meilleures performances que sans.
Pour commencer, sélectionnez votre hôte VMware ESXi et cliquez sur : Actions -> Nouvelle machine virtuelle.
Dans l'assistant "Nouvelle machine virtuelle" qui apparait, sélectionnez "Créer une machine virtuelle" et cliquez sur Next.
Sélectionnez un disque iSCSI dont l'accélération matérielle (VAAI) n'est pas prise en charge.
Utilisez un provisionnement statique immédiatement mis à zéro pour son disque dur virtuel.
Patientez pendant la création de la machine virtuelle.
Calculez le temps que la création de cette machine virtuelle a pris en vous basant sur l'heure de début et celle de fin.
Maintenant, créez une nouvelle machine virtuelle en sélectionnant un stockage fourni par une baie de stockage supportant les primitives VAAI.
Dans notre cas, nous sélectionnons notre banque de données "SW iSCSI DS 1" créé sur un disque iSCSI fourni par notre baie de stockage StarWind Virtual SAN.
A nouveau, utilisez un provisionnement statique immédiatement mis à zéro pour son disque dur virtuel.
Patientez pendant la création de cette machine virtuelle.
Si vous comparez le temps passé, vous verrez que la création de la même machine virtuelle prendra moins de temps avec le support du VAAI, car la mise à zéro du disque dur virtuel sera géré par la baie de stockage et non par l'hôte VMware ESXi.
Note : dans notre cas, étant donné que tout est virtualisé, il n'y a pas vraiment de différence lors de nos tests. Mais dans un environnement professionnel avec de vraies baies de stockage, vous pourrez voir la différence en effectuant ces tests.
VMware 20/7/2022
VMware 26/8/2022
VMware 27/3/2024
VMware 10/5/2024
Contenu épinglé
Contact
® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.
Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.
Vous devez être connecté pour pouvoir poster un commentaire