Activer et configurer un cache de disque de machine virtuelle Azure avec le portail Azure

Effectué

Nous avons vu les paramètres et les propriétés que vous pouvez sélectionner pour prédire les performances de votre disque. Maintenant, examinons les façons d’améliorer cela par le biais de la mise en cache.

Mise en cache du disque

Un cache est un composant spécialisé qui stocke des données, généralement en mémoire afin qu’elles soient accessibles plus rapidement. Les données dans un cache sont souvent des données qui ont été lues précédemment, ou bien des données résultant d’un calcul antérieur. L’objectif est d’accéder aux données plus rapidement qu’à partir du disque.

La mise en cache utilise un stockage temporaire spécialisé, et parfois coûteux, ayant de meilleures performances en lecture et en écriture qu’un stockage permanent. Étant donné que le stockage de cache est souvent limité, vous devez prendre des décisions en déterminant les opérations de données qui en bénéficient le plus. Mais même dans les cas où le cache peut être rendu largement disponible, comme dans Azure, il est tout de même important de connaître les modèles de charge de travail de chaque disque avant de décider du type de mise en cache à utiliser.

La mise en cache en lecture tente d’accélérer l’extraction de données. Au lieu de lire à partir d’un stockage permanent, les données sont lues à partir du cache plus rapide. Les lectures de données atteignent le cache dans les conditions suivantes :

  • Les données ont été lues précédemment et existent dans le cache.
  • Le cache est suffisamment grand pour contenir toutes les données.

Il est important de noter que la mise en cache en lecture est bénéfique quand il existe une certaine prévisibilité de la file d’attente de lecture, comme un ensemble de lectures séquentielles. Pour les E/S aléatoires, où les données auxquelles vous accédez sont disséminées dans le stockage, la mise en cache apporte peu d’avantages, voire aucun, et elle peut même réduire les performances des disques.

La mise en cache en écriture tente d’accélérer l’écriture des données vers le stockage persistant. Lorsqu’une application utilise un cache d’écriture, elle peut prendre en compte les données à enregistrer. En réalité, les données sont mises dans un cache en attendant d’être écrites sur un disque. Comme vous pouvez l’imaginer, ce mécanisme peut être un point de défaillance, par exemple, quand le système s’arrête avant que les données mises en cache n’aient été écrites. Certains systèmes, tels que SQL Server, gèrent eux-mêmes l’écriture des données mises en cache vers un stockage persistant sur disque.

Mise en cache du disque Azure

Il existe deux types de mise en cache de disque concernant le stockage sur disque :

  • Mise en cache de stockage Azure
  • Mise en cache de disque de machine virtuelle Azure

La mise en cache de stockage Azure fournit des services de cache pour le stockage d’objets blob Azure, Azure Files et d’autres contenus dans Azure. La configuration de ces types de caches dépasse le cadre de ce module.

La mise en cache de disque de machine virtuelle Azure optimise les accès en lecture et en écriture des fichiers de disque dur virtuel (VHD) attachés aux machines virtuelles Azure. Dans ce module, nous nous concentrons sur la mise en cache de disque.

La mise en cache de disque n’est pas prise en charge pour les disques Ultra ou SSD Premium v2, mais ils bénéficient déjà d’une latence plus faible, ce qui résout certains des problèmes principaux de la mise en cache de disque.

Types de disque de machine virtuelle Azure

Trois types de disque sont utilisés avec les machines virtuelles Azure :

  • Disque de système d’exploitation : Quand vous créez une machine virtuelle Azure, Azure attache automatiquement un VHD (disque dur virtuel) pour l’OS (système d’exploitation).

  • Disque temporaire : Quand vous créez une machine virtuelle Azure, Azure ajoute automatiquement un disque temporaire. Ce disque est utilisé pour les données, par exemple les fichiers d’échange. Les données sur ce disque peuvent être perdues pendant une maintenance ou un redéploiement de la machine virtuelle. Ne l’utilisez pas pour stocker des données permanentes, par exemple des fichiers de base de données ou des journaux des transactions.

  • Disques de données : Un disque de données est un VHD attaché à une machine virtuelle pour stocker des données d’application ou d’autres données que vous devez conserver.

Les disques de système d’exploitation et les disques de données tirent parti de la mise en cache de disque de machine virtuelle Azure. La taille du cache pour un disque de machine virtuelle dépend de la taille de l’instance de machine virtuelle et du nombre de disques qui y sont montés. Vous pouvez activer la mise en cache uniquement pour des disques de 4 Tio ou moins.

Options de cache pour les machines virtuelles Azure

Il existe trois options courantes pour la mise en cache de disque de machine virtuelle :

  • Lecture/écriture : réécrit le cache. Utilisez cette option uniquement si votre application gère correctement l’écriture des données mises en cache sur les disques persistants quand cela est nécessaire.
  • Lecture seule : les lectures sont effectuées à partir du cache.
  • Aucun : aucun cache. Sélectionnez cette option pour les disques de données lourds ou en écriture seule. Les fichiers journaux sont un bon candidat, car ce sont des opérations d’écriture intensives.

Toutes les options de mise en cache ne sont pas disponibles pour chaque type de disque. Le tableau suivant vous montre les options de mise en cache pour chaque type de disque :

Lecture seule Lecture/écriture Aucune
Disque de système d’exploitation Oui Oui (par défaut) Oui
Disque de données Oui (par défaut) Oui Oui
Disque temporaire non non non

Notes

Vous ne pouvez pas modifier les options de mise en cache du disque pour les machines virtuelles des série L et série B.

Considérations sur les performances de la mise en cache de disque de machine virtuelle Azure

Dans quelle mesure vos paramètres de cache peuvent-ils donc affecter les performances de vos charges de travail en cours d’exécution sur des machines virtuelles Azure ?

Disque de système d’exploitation

Le comportement par défaut d’un disque de système d’exploitation de machine virtuelle consiste à utiliser le cache en mode lecture/écriture. Par conséquent, si vous avez des applications qui stockent des fichiers de données sur le disque du système d’exploitation et effectuent de nombreuses opérations de lecture/écriture aléatoires dans les fichiers de données, il peut être préférable de déplacer ces fichiers vers un disque de données sur lequel la mise en cache est désactivée. Pourquoi ? En effet, si la file d’attente en lecture ne contient pas de lectures séquentielles, la mise en cache offre peu d’avantages, voire aucun. La surcharge engendrée par le maintien du cache, comme si les données étaient séquentielles, peut réduire les performances du disque.

Disques de données

Pour les applications sensibles aux performances, vous devez utiliser des disques de données plutôt qu’un disque de système d’exploitation. L’utilisation de disques séparés vous permet de configurer les paramètres de cache appropriés pour chacun.

Par exemple, sur les machines virtuelles Azure exécutant SQL Server, l’activation de la mise en cache Lecture seule sur les disques de données (pour les données normales et TempDB) peut entraîner une amélioration significative des performances. Les fichiers journaux, en revanche, conviennent aux disques de données sans mise en cache.

Avertissement

La modification du paramètre de cache d’un disque Azure détache, puis rattache le disque cible. S’il s’agit du disque du système d’exploitation, la machine virtuelle redémarre. Arrêtez toutes les applications et services qui risquent d’être affectés par cette indisponibilité avant de changer le paramètre de cache du disque.

Vous pouvez configurer les paramètres de cache des disques de machine virtuelle avec l’un des outils suivants :

  • Portail Azure
  • Azure CLI
  • Azure PowerShell
  • Modèles Resource Manager

Utilisation du portail Azure pour configurer la mise en cache

Quand vous provisionnez une nouvelle machine virtuelle à l’aide du portail Azure, vous ne pouvez pas changer la configuration de la mise en cache par défaut (lecture/écriture) pour le disque du système d’exploitation jusqu’à ce que la machine virtuelle soit déployée.

Quand vous ajoutez un disque de données à une machine virtuelle existante, vous pouvez configurer l’option de cache avant le déploiement du disque sur la machine virtuelle.

Ensuite, nous allons créer une machine virtuelle et modifier les paramètres de cache à l’aide du portail Azure.