VMware – LES GRAPHES DE PERFORMANCE VSAN

VMware – LES GRAPHES DE PERFORMANCE VSAN

11 avril 2016 1 Par Michael PERES

COMPRENDRE LES GRAPHES DE PERFORMANCE VSAN

 

Nous allons tenter d'expliquer certains des concepts et des terminologies clés relatifs à la performance de stockage applicable à VMware Virtual SAN.

Nous passerons par différentes analyses en utilisant les graphiques VSAN installé sur une plateforme vSphere 5.5 U1.

 

LE GRAPHIQUE "IOPS"

Comprendre les perfs vSAN_1

Les relevés IOPS donnent une mesure du nombre d'opérations d'entrée / sortie par seconde d'un système de stockage. Une opération d'I/O est typiquement une lecture ou une écriture et une taille. La quantité d'I/O peut varier de quelques octets à plusieurs méga-octets.

  • Si nous observons un nombre élevé en IOPS cela ne signifie pas forcément que nous avons un problème, mais plutôt que nous utilisons le stockage à son maximum. Le clone d'un disque ou le clone d'une VM utilise tous les IOPS disponibles afin de terminer l'opération le plus rapidement possible
  • De même, un taux d'IOPS faible ne signifie pas forcément qu'il y'a un problème. Il peut s'agir tout simplement du fait que la taille des I/O est large et pourrait donc conduire à un taux d'IOPS faible.

LE GRAPHIQUE "OUTSTANDING I/O"

Comprendre les perfs vSAN_2

Lorsqu'une machine virtuelle demande à effectuer certains I/O (lecture ou écriture), ces demandes sont envoyées aux périphériques de stockage. Tant que ces demandes sont entièrement terminées, elles sont appelées "Outstanding I/O". Un grand nombre d'I/O peut avoir un effet négatif sur la latence du périphérique de stockage. Les contrôleurs de stockage qui peuvent gérer une longue file d'attente (queue depth), peuvent gérer plus d'I/Os en circulation.

 

LE GRAPHIQUE "LATENCIES"

Comprendre les perfs vSAN_3

Le graphique des latences donne une mesure du temps qu'il faut pour terminer une opération d'I/O du point de vue applicatif. Comme nous le savons, les tailles d'I/O peuvent varier de quelques octets à plusieurs méga-octets, il en résulte que la latence peut varier en fonction de la taille d'I/O. VSAN utilise des disques SSD pour réduire la latence de manière efficace comme on le voit pour une VM.

Si nous observons une latence relativement élevée dans le graphe VSAN cela peut signifier :

  • Qu'une grande quantité d'I/O, conduit à une augmentation des latences
  • Que le taux d'I/O s'effectue principalement en écriture. Les SSD sont plus rapides en lecture qu'en écriture.
  • Qu'un nombre élevé d'I/O est en cours, ou tout simplement trop de VMs effectuent un grand nombre d'I/O
  • Un SSD trop lent qui a tout simplement du mal à suivre la quantité d'I/O.
  • Trop de lectures aléatoires causant des défauts de cache de lecture dans le SSD. Un grand nombre de requêtes de lecture aléatoire à partir d'une machine virtuelle peut entraîner des I/O ayant déjà servi, à partir des disques magnétiques sous-jacents plutôt qu'à partir du cache SSD

 

LE GRAPHIQUE "BRANDWIDTH"

Comprendre les perfs vSAN_4

Dans un environnement VSAN, la bande passante (brandwidth) mesure le taux de débit de données que le stockage supporte durant une période. Mais comment les IOPS et la bande passante peuvent-ils être influencés ?

  • Lorsque des I/O de petites tailles sont impliquées, un dispositif peut plafonner les IOPS au taux maximal avant d'épuiser la bande passante disponible fournie par le périphérique, le contrôleur, ou le lien physique sous-jacent.
  • Inversement, les I/O de la bande passante peuvent être limitées tant que le taux d'IOPS maximal d'un dispositif ou d'un contrôleur n'a pas été atteint.

Lors de l'analyse des performances de stockage, il est donc nécessaire d'évaluer :

  • Les taux d'IOPS,
  • Les tailles d'I/O,
  • Le taux "Outstanding I/O"
  • La latence

 

LE GRAPHIQUE "CONGESTION"

Comprendre les perfs vSAN_5

La congestion dans un environnement VSAN se produit lorsque des couches, généralement inférieures, ne parviennent pas à suivre la fréquence d'I/O des couches supérieures. Par exemple, lorsque les machines virtuelles effectuent un grand nombre d'opérations en écriture, peut conduire à la saturation des tampons en écriture. Ces tampons doivent alors être vidés sur les disques HDD, mais à un rythme plus lent que sur les SSD. Au niveau de VSAN, cela a eu pour effet l'introduction artificielle de latences dans les VM afin de ralentir les écritures de sorte que les tampons d'écriture puissent être purgés. La congestion n'est pas normale et dans la plupart des cas, elle devra être proche de zéro.

 

EXEMPLE D'ANALYSE

 

Nous allons rassembler toutes les explications des graphiques évoqués plus haut dans un exemple. Nous choisirons un disque "milieu de gamme" typique SATA SSD avec les caractéristiques suivantes.

  • 50000 IOPS en lecture à une taille de 4k
  • 40000 IOPS en écriture à une taille de 4k
  • Maximum d'IOPS à 4 "Outstanding IOs" (OIO)

La latence d'écriture peut être calculée comme suit:

  • Latence d'écriture = OIO / (Write IOPS) = 4/40000 = 0,1ms

La latence en lecture peut être calculée avec la même formule.

Si l'Outstanding I/O arrive à 16, la latence augmente.

Nous pouvons le constater en utilisant la même formule :

  • Latence Ecrire = 16 / 40000 = 0,4 ms

L'augmentation de la taille des I/O peut augmenter la latence, plus ou moins proportionnellement. Il y a cependant des exceptions à cette règle.

Pour plus de simplicité, nous allons prendre cela comme une indication approximative.

  • Latence d'écriture (I/O à 8k et 4 OIO) = 2x la latence de 4k en écriture I/O = 2 * 0,1 = 0.2ms
  • De même les IOPS en écriture à 8k réduit de moitié ~ 20000 IOPS

 

ARCHITECTURE VIRTUAL SAN

Comprendre les perfs vSAN_6

 

Il existe quatre principaux composants de haut niveau dans VSAN

VSAN client

  • C'est le client qui offre l'accès au stockage VSAN.Il fonctionne sur tous les hôtes sur lesquels des machines virtuelles sont hébergées et exécutent des I/O.

DOM Owner (Internal)

  • Fonctionne habituellement sur le même hôte que le client
  • Cette couche implémente le RAID et le Recovery et elle est responsable des opérations provenant de la resynchronisation et de la restauration.

VSAN Disks Layer

  • C'est la couche qui permet la distribution les I/O à partir de disques locaux à différents nœuds du cluster.
  • Les données nécessaires à une VM ne peuvent pas forcément résider sur le même hôte que la machine virtuelle.Dans ce cas, la couche de disques VSAN situé sur le noeud dans lequel résident les données, distribue ces mêmes données sur le réseau, au noeud qui en a fait la demande
  • Cette couche dispose également d'un ordonnanceur qui peut gérer la file d'attente d'I/Os (queue I/O), qui arrivent de manière équilibrée (équilibrage de charge I/O)

Disk deep-dive / physical devices (SSD/HDD)

  • C'est la couche qui gère réellement les lectures/écritures des I/Os sur les disques SSD et/ou HDD

Ces quatre blocs principaux sont directement "mappés" dans l'observateur UI de Virtual SAN afin de délivrer une meilleure analyse des statistiques de performance au niveau des différentes couches de VSAN.