Contrôle des E/S de stockage
Le contrôle des E/S de stockage (SIOC, Storage I/O Control) est une nouvelle fonctionnalité conçue pour hiérarchiser les E/S des machines virtuelles exécutées sur un groupe d’hôtes vSphere qui accèdent à un pool de stockage partagé. Cette fonctionnalité étend les concepts habituels de partage et de limite, qui existent pour le CPU et la mémoire, pour les appliquer à l’utilisation du stockage. Pour ce faire, elle procède à l’allocation dynamique des créneaux dans la file d’attente des E/S à l’échelle d’un groupe de serveurs.
Les partages de CPU et de mémoire traditionnels concernent les ressources d’un hôte VMware ESXi unique. Les machines, pour la plupart virtuelles, doivent entrer en concurrence pour accéder aux ressources mémoire et CPU limitées disponibles sur un hôte unique. Les ressources de stockage partagé d’une infrastructure vSphere offrent une alternative différente car, comme son nom l’indique, le stockage est partagé. Cela signifie que vSphere doit gérer les accès au niveau de plusieurs hôtes et non pas sur une base par hôte. Le contrôle des E/S de stockage s'applique à un groupe d'hôtes partageant une banque de données commune et qui est géré par une instance unique de vCenter Server. Les schémas suivants illustrent les différences entre la gestion des accès aux ressources de stockage au niveau de l'hôte, et via un groupe d'hôtes qui partagent des banques de données communes.
Le schéma ci-dessous représente trois machines virtuelles. VM001 et VM002 sont hébergées sur ESX01 et VM003 est hébergée sur ESX02. Chaque machine virtuelle dispose de partages de disque définis sur la valeur 1 000. Le contrôle des E/S de stockage est désactivé dans cet exemple, et aucun mécanisme ne vient donc réguler les E/S au niveau de la banque de données. La partie inférieure du schéma représente la file d’attente de la baie de stockage. Il s’agit des opérations de lecture et d’écriture réelles envoyées à la baie de stockage pour traitement. Comme vous le voyez, VM003 parvient à obtenir plus de ressources que VM001 et VM002, malgré le fait que les valeurs de partage des ressources de stockage de chaque machine virtuelle soient égales. En effet, VM003 a accès à toutes les ressources de stockage de l’hôte ESX02, alors que VM001 et VM002 se partagent les ressources de l’hôte ESX01.
Dans le schéma suivant, le contrôle des E/S de stockage a été activé. Ici, en cas de conflit, toutes les machines virtuelles qui accèdent à une banque de données spécifique voient leur accès en E/S limité en fonction de leurs valeurs de partage respectives, et non de l’hôte. Comme vous le voyez, VM003 est désormais limitée par sa valeur de partage égale à 1 000.
Une fois que le contrôle des E/S de stockage a été activé pour une banque de données spécifique, la surveillance de cette dernière commence. Si le seuil de latence spécifié a été atteint dans la banque de données (par défaut, la latence d’E/S moyenne est de 30 MS), le contrôle des E/S de stockage se déclenche pour résoudre ce déséquilibre possible. Le service limite alors la quantité d’opérations d’E/S qu’un hôte peut émettre pour cette banque de données spécifique. Pour cela, la fonction limite la file d’attente du périphérique hôte (illustré dans le schéma, sous le libellé « Device Queue Depth » - Profondeur de file d’attente de périphériques). Dans cet exemple, la profondeur de file d’attente de périphériques d’ESX02 est réduite à 16.
Le contrôle des E/S de stockage fonctionne comme un planificateur de disque à l’échelle de la banque de données. Lorsqu’il est activé pour une banque de données, le contrôle des E/S de stockage résume les partages de disque pour chacun des fichiers VMDK de la banque. Le service calcule ensuite les droits aux créneaux d’E/S par hôte VMware ESXi à partir du pourcentage de partages dont les machines virtuelles exécutées sur cet hôte disposent, par rapport au total des partages de tous les hôtes qui accèdent à cette banque de données.
Pour que le contrôle des E/S de stockage mette en œuvre une optimisation des E/S sur une banque de données spécifique, deux conditions doivent être remplies :
- Cette fonction doit être activée sur la banque de données. (Son activation s’effectue lors de la configuration des propriétés de la banque de données).
- Une latence moyenne prolongée doit avoir été détectée sur l’ensemble des hôtes vSphere qui partagent la banque de données. Le seuil par défaut est de 30 ms, cette valeur pouvant être modifiée par les options de configuration avancée des propriétés de la banque de données.
Une fois que ces deux conditions ont été remplies, le contrôle des E/S de stockage met en place une gestion proactive des files d’attente d’E/S à l’échelle de tous les serveurs VMware ESXi qui partagent la banque de données.
Améliorations de vSphere 5.0
Le contrôle des E/S de stockage de vSphere 5.0 prend en charge des partages et des limites pour les banques de données par blocs et NFS. Cela signifie qu’aucune machine virtuelle isolée ne doit pouvoir créer de goulet d'étranglement dans un environnement, quel que soit le type de stockage partagé utilisé.
Améliorations de vSphere 5.1
Le seuil de latence par défaut pour le contrôle des E/S de stockage est défini à 30 ms. Tous les périphériques de stockage n’étant pas égaux, cette valeur par défaut est définie sur une valeur médiane. Certains périphériques atteignent leur point de conflit avant d’autres, par exemple les SSD, pour lesquels le seuil doit être réduit par l’utilisateur.
Toutefois, il peut s’avérer difficile de déterminer la latence appropriée. Par conséquent, il est nécessaire de déterminer automatiquement le seuil de latence pour chaque dispositif. Au lieu d’utiliser un seuil de latence par défaut/sélectionné par l’utilisateur, le contrôle des E/S de stockage de vSphere 5.1 peut déterminer automatiquement le meilleur seuil d’une banque de données.
Le seuil de latence est défini sur la valeur déterminée par l’injecteur d’E/S (composant du contrôle des E/S de stockage). Lorsque l’injecteur d’E/S calcule le débit de pointe, il identifie la valeur de débit de 90 % et mesure la latence à partir de ce point pour déterminer le seuil.
Les administrateurs vSphere peuvent remplacer cette valeur de 90 % par un autre pourcentage ou continuer à entrer une valeur en millisecondes s’ils préfèrent.
Avec vSphere 5.1, le contrôle des E/S de stockage est activé automatiquement sur toutes les banques de données en mode « statistiques uniquement ». Cela signifie que les statistiques de stockage, qui sont généralement présentées uniquement lorsque le contrôle des E/S de stockage est activé, sont désormais disponibles immédiatement. Cela signifie également que
Storage DRS dispose désormais de statistiques à l’avance pour les nouvelles banques ajoutées au cluster de banques de données.
VmObservedLatency
VmObservedLatency est une nouvelle mesure de contrôle des E/S de stockage intégrée à vSphere 5.1. Elle remplace la mesure de latence de banque de données utilisée dans les versions précédentes. Cette nouvelle mesure détermine le temps écoulé entre la réception par VMkernel des E/S provenant de la machine virtuelle et la réception de la réponse de la banque de données. Auparavant, la latence était seulement mesurée une fois que les E/S avaient quitté l’hôte VMware ESXi. La nouvelle mesure détermine également la latence au niveau de l’hôte. Cette nouvelle mesure sera visible sur vSphere Client™.