lundi 18 janvier 2010

ALUA pour les nuls ...


Vous pouvez aussi retrouver cet article sur Forum-vmware.fr, le site officiel du User Group VMware France.

Tout d'abord, je tiens à préciser que ALUA n'est pas une forme de salutation ayant cours en Polynésie, pas plus que l'acronyme improbable de 'Abstraction Largement et Uniformément Appliquée' ... Non. comme nous allons le voir ALUA ou Assymetric Logical Unit Access, est un mode d'accès au stockage disque implémenté dans notre cher vSphere. Toutefois, pour partir sur de bonnes bases, non que je mette en doute votre culture informatique, je me propose de vous faire quelques rappels.

Qu'est-ce que le RAID ?

Si c''est d'abord un groupe d'élite de la Police Nationale, RAID signifie aussi Rundondant Array of inexpensives disks ou grappe de disques redondants pas chers. Voici les types les plus couramment usités :
- RAID 0 = Aggregation de disques sans redondance mais offrant une haute performance
- RAID 1 = Mirroir de disques pour les écritures et les lectures.
- RAID 5 = Aggrégation de disques avec parité répartie sur l'ensemble des disques. Le bons compromis financier entre redondance et sécurité.
- RAID 6 = Aggrégation de disques avec paritée répartie sur un ou deux autres disques de la grappe. Le RAID 6 s'apparente à un mélange de RAID 1 et de RAID 5 et supporte plus d'un disque deffectueux.
- RAID DP = inspiré du RAID 6 à ceci près que les données de parité sont écrites sur deux disques fixes avec deux algorithmes différents. Ce type de RAID est utilisé sur les NAS Network Appliance.
- RAID 0+1 = Mirroir de grappes RAID 0

Qu'est-ce qu'un contrôleur ?

Si c'est un élément que l'on peut rencontrer fréquemment dans un wagon de la SNCF, basiquement, c'est aussi une carte électronique qui pilote un ensemble de disques physiques et qui les associe ensemble pour former une grappe RAID. Cette grappe RAID contient elle un ou plusieurs volumes logiques appelés ARRAYs (litéralement un étalage). On en déduit donc qu'un même plateau de disque peut contenir plusieurs morceaux d'ARRAY avec des niveaux de RAID différents : RAID 5 pour le premier ARRAY, RAID 6 pour le second ...

La baie de stockage dépendra ensuite d'un savant équillibre entre le nombre de disques que l'on appelle alors AXES, le nombre de cartes contrôleurs; la performance, la sécurité et le temps de reconstruction attendus : plus il y a d'axes, plus les performances seront importantes puisque chaque disque manipulera moins d'informations pour chaque opération de lecture ou d'écriture (I/O).

A l'inverse, l'ensemble des disques composant une gpappe partageront l'ensemble de la bande passante du contrôleur qui les pilote Vous me suivez ? Par exemple un contrôleur Fiber Channel 4 Gb/s disposera d'une bande passante de 500 Mo/s soit l'équivalent de 7 disques SATA II à 65 Mo/s accédés simultanément. L'accès est dit non blocant ou à vitesse nominale.

Depuis une quinzaine d'années, les contrôleurs sont traditionnellement installés dans une tête SAN ou NAS, en fait une carte mère de serveur faisant tourner un système d'exploitation. Chez EMC cet OS a pour doux nom FLARE (un lointain cousin de Windows Storage Server) tandis que chez NetAPP il s'appelle Data ONTAP et s'apparente plutôt à un unix BSD de type Solaris.Le système d'exploitation pilote donc l'ensemble de la baie est responsable de son fonctionnement et inclut des fonctions annexes matérielles et logicielles telles que le cache mémoire ou la réplication.On parle alors de stockage monolithique

Certains ne faisant pas comme tout le monde, il existe des exceptions appelés stockages modulaires comme l'Axiom Pillar Data l'IBM XIV ou l'EMC vMax dont les fonctions sont disséminées dans les différents éléments de la baie. par exemple, les contrôleurs sont inclus dans les tiroirs de disques, les faisant fonctionner de manière totalement non blocante.

Qu'est-ce qu'un LUN ?

Un array est partagés sur le réseau de stockage sous un numéro unique appelé LUN (Logical Unit Number).

Qu'est-ce qu'un initiateur ?

C'est le port d'une machine qui cherche à accéder à un LUN au travers du protocole ISCSI, Fiber Channel ou en FCoE.

Qu'est-ce qu'un Target/Port Group Target ?

C'est la combinaison du ou un des ports physiques et du descripteur (nom logique) sur lesquels on peut se connecter pour avoir accès à un LUN.
En Iscsi, le descripteur aura un format iSCSI qualified name ou iqn. par exemple : iqn.1998-01.com.vmware:ESX4-1db07213 ; alors qu'en FC il aura la forme d'un World Wide Name par exemple : 22:00:00:0b:08:45:18 -ce qui rappel un peu l'adresse Mac d'une carte réseau Ethernet-

(Oui, on y arrive enfin !)
La redondance des contrôleurs avec ALUA et la vie est plus simple ...


Aujourd'hui la majorité des baies de stockage intègre des contrôleurs redondants pour piloter les LUNs : EMC Clariion, Network Appliance, IBM DS & NS, HP EVA, Pillar Data Axiom, Dell Equalogic ... Cependant, bien que redondants et similaires en terme d'administration, les caractéristiques d'accès aux LUNs peuvent varier pour les ports de chaque contrôleur ; elles diffèrent notamment en terme de performances. A un instant T, l'un des contrôleurs disposera d'un accès plus rapide sur le LUN que l'autre, on parle de chemin optimisé. C'est ce mode d'accès asymétrique au LUN que l'on nomme ALUA (Asymmetric logical Unit Access).

Jusqu'à la version 3.5, de VMware ESX, le mode ALUA n'était pas supporté nativement dans l'hyperviseur. On ne pouvait paramétrer que le mode Chemin Fixe, le plus récent (Most Recently Used) ou l'alternance avec le Round Robin. les deux derniers modes étaient susceptibles de provoquer des accès non optimisés aux LUNs..Il y avait intérêt à mettre tout le monde d'accord sous peine de se voir infliger des messages de type 'LUN Non Optimal Acces Path" pouvant aller jusqu'au reboot du contrôleur concerné, infligeant quelques menus désagréments aux VMs du genre écran noir, machine figée, vmdk HS.... l'avalanche des utilisateurs concernés, dont vous venez visiblement de couper un bras, dans votre bureau étant un plus.

Seule la présence de plug-in annexe tel que EMC powerPath permettait de s'affranchir de ces soucis en mettant d'accord host ESX et stockage sur le chemin optimal à utiliser. La version VMware vSphere implémente nativement deux APIs appelées Storage Array Type Plugins ou SATP chargée du Failover et Path Selection Plug-in (PSP) accès à l'équillibre de charge entre les chemins qui permettent de s'affranchir de la gestion des chemins optimisés.

Vous pouvez accéder à ces APIs au travers du mode console de vSPhere :

Commande pour lister les règles SATP connues du serveur vSphere

[root@XXXX ~]# esxcli nmp satp listrules

Name Vendor Model Claim Options Description

VMW_SATP_ALUA_CX DGC tpgs_on CLARiiON array in ALUA mode
VMW_SATP_EVA HSV111 tpgs_off active/active EVA 5000 GL
VMW_SATP_EVA HSV200 tpgs_off active/active EVA 4000/6000 XL
VMW_SATP_EVA HSV210 tpgs_off active/active EVA 8000/8100 XL
VMW_SATP_ALUA NETAPP tpgs_on NetApp with ALUA
VMW_SATP_ALUA HP ^MSA2* tpgs_on HP MSA A/A with ALUA
VMW_SATP_ALUA Pillar tpgs_on active/active Ctl Pillar Axiom ALUA Support

* tpgs_on signifie que SATP ne sera activé que si le failover est activé pour l'ensemble des Ports
Group Target du stockage.

Commande pour lister les PSP :

[root@XXXX ~]# esxcli nmp psp list

Name Description
VMW_PSP_MRU Most Recently Used Path Selection
VMW_PSP_RR Round Robin Path Selection
VMW_PSP_FIXED Fixed Path Selection

Par exemple, pour Utiliser par défaut les chemins en Round Robin, il vous faudra taper la commande : esxcli nmp satp setdefaultpsp --psp="VMW_PSP_RR" --satp="VMW_SATP_ALUA"

On peut même mettre sa propre une règle pour un stockage non listé par défaut : esxcli nmp satp addrule --vendor="Overland" --claim-option="tpgs_on" --satp="VMW_SATP_ALUA" --description="Overland Snap Server 620"

Et voila, vous avez révisé ce qu'est un stockage, ce que sont SATP, PSP, ALUA et vous savez les utiliser. A présent, à vous de jouer !

Aucun commentaire: