IntelliCache
Remarque :
Cette fonctionnalité n’est prise en charge que lors de l’utilisation de Citrix Hypervisor avec Citrix Virtual Desktops.
Intellicache n’est pas pris en charge pour les machines virtuelles utilisant un GFS2 SR.
L’utilisation de Citrix Hypervisor avec IntelliCache rend les déploiements d’infrastructure de bureaux virtuels hébergés plus rentables en vous permettant d’utiliser une combinaison de stockage partagé et de stockage local. C’est particulièrement intéressant lorsque de nombreuses machines virtuelles (VM) partagent toutes une image de système d’exploitation commune. La charge sur la baie de stockage est réduite et les performances sont améliorées. En outre, le trafic réseau à destination et en provenance du stockage partagé est réduit car le stockage local met en cache l’image principale à partir du stockage partagé.
IntelliCache fonctionne en mettant en cache les données du VDI parent d’une machine virtuelle dans le stockage local sur l’hôte de la machine virtuelle. Ce cache local est ensuite rempli au fur et à mesure que les données sont lues à partir du VDI parent. Lorsque de nombreuses machines virtuelles partagent un VDI parent commun, une machine virtuelle peut utiliser les données lues dans le cache à partir d’une autre machine virtuelle. Il n’est pas nécessaire d’accéder davantage à l’image principale sur le stockage partagé.
Un SR local à provisionnement fin est requis pour IntelliCache. Le Thin Provisioning est un moyen d’optimiser l’utilisation du stockage disponible. Cette approche vous permet d’utiliser davantage le stockage local que le stockage partagé. Elle repose sur l’allocation à la demande de blocs de données. Dans d’autres approches, tous les blocs sont attribués à l’avance.
Important :
Le Thin Provisioning modifie le type de stockage local par défaut de l’hôte de LVM à EXT4. Le Thin Provisioning doit être activé pour que la mise en cache locale de Citrix Virtual Desktops fonctionne correctement.
Le Thin Provisioning permet à l’administrateur de présenter aux machines virtuelles se connectant au référentiel de stockage (SR) plus d’espace de stockage que ce qui est disponible sur le SR. Il n’y a aucune garantie d’espace et l’allocation d’un LUN ne réclame aucun bloc de données tant que la machine virtuelle n’a pas écrit les données.
Avertissement :
Les SR à provisionnement fin peuvent manquer d’espace physique, car les machines virtuelles qui s’y trouvent peuvent croître pour consommer de la capacité de disque à la demande. Les machines virtuelles IntelliCache gèrent cette condition en revenant automatiquement au stockage partagé lorsque le cache SR local est plein. Ne mélangez pas des machines virtuelles traditionnelles et des machines virtuelles IntelliCache sur le même SR, car la taille des machines virtuelles IntelliCache peut augmenter rapidement.
déploiement IntelliCache
IntelliCache doit être activé pendant l’installation de l’hôte ou être activé manuellement sur un hôte en cours d’exécution à l’aide de l’interface de ligne
Nous vous recommandons d’utiliser un périphérique de stockage local hautes performances pour garantir le transfert de données le plus rapide possible. Par exemple, utilisez un Solid State Disk ou une matrice RAID hautes performances. Tenez compte à la fois du débit de données et de la capacité de stockage lors du dimensionnement des disques locaux. Le type de stockage partagé, utilisé pour héberger l’image de disque virtuel (VDI) source, doit être basé sur NFS ou EXT3/EXT4.
Activer lors de l’installation de l’hôte
Pour activer IntelliCache lors de l’installation de l’hôte, sur l’écran Virtual Machine Storage, sélectionnez Activer le Thin Provisioning. Cette option sélectionne le SR local de l’hôte à utiliser pour la mise en cache locale des VDI de machine virtuelle.
Convertir un hôte existant pour utiliser le provisionnement léger
Pour supprimer un SR local LVM existant et le remplacer par un SR EXT3/EXT4 à provisionnement fin, entrez les commandes suivantes.
Avertissement :
Ces commandes suppriment votre SR locale existante, et les machines virtuelles présentes sur la SR sont définitivement supprimées.
localsr=`xe sr-list type=lvm host=hostname params=uuid --minimal`
echo localsr=$localsr
pbd=`xe pbd-list sr-uuid=$localsr params=uuid --minimal`
echo pbd=$pbd
xe pbd-unplug uuid=$pbd
xe pbd-destroy uuid=$pbd
xe sr-forget uuid=$localsr
sed -i "s/'lvm'/'ext'/" /etc/firstboot.d/data/default-storage.conf
rm -f /var/lib/misc/ran-storage-init
systemctl restart storage-init.service
xe sr-list type=ext
<!--NeedCopy-->
Pour activer la mise en cache locale, entrez les commandes suivantes :
xe host-disable host=hostname
localsr=`xe sr-list type=ext host=hostname params=uuid --minimal`
xe host-enable-local-storage-caching host=hostname sr-uuid=$localsr
xe host-enable host=hostname
<!--NeedCopy-->
Comportement des machines virtuelles avec Intellicache
L’indicateur VDI on-boot
dicte le comportement d’un VDI de machine virtuelle lorsque celle-ci est démarrée et l’indicateur VDI allow-caching
dicte le comportement de mise en cache.
Les valeurs à utiliser pour ces paramètres dépendent du type de machine virtuelle que vous créez et de son utilisation prévue :
-
Pour les machines partagées ou attribuées de manière aléatoire :
- Définissez le paramètre
on-boot
surreset
. - Réglez le paramètre
allow-caching
surtrue
Par exemple :
xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true <!--NeedCopy-->
Lors du démarrage de la machine virtuelle, le VDI est rétabli à l’état dans lequel il se trouvait au démarrage précédent. Toutes les modifications pendant l’exécution de la machine virtuelle sont perdues lors du prochain démarrage de la machine virtuelle. Les nouvelles données de machine virtuelle sont écrites uniquement sur le stockage local. Il n’y a aucune écriture sur le stockage partagé. Cette approche signifie que la charge sur le stockage partagé est réduite. Cependant, la machine virtuelle ne peut pas être migrée entre les hôtes.
Sélectionnez cette option si vous prévoyez de fournir des postes de travail standardisés auxquels les utilisateurs ne peuvent pas apporter de modifications permanentes.
- Définissez le paramètre
-
Pour les machines statiques ou dédiées :
- Définissez le paramètre
on-boot
surpersist
. - Réglez le paramètre
allow-caching
surtrue
Par exemple :
xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true <!--NeedCopy-->
Au démarrage de la machine virtuelle, le VDI est dans l’état dans lequel il était laissé lors du dernier arrêt. Les nouvelles données de VM sont écrites sur le stockage local et partagé. Les lectures de données mises en cache ne nécessitent pas de trafic d’E/S vers le stockage partagé, ce qui réduit la charge sur le stockage partagé. La migration de machines virtuelles vers un autre hôte est autorisée et le cache local du nouvel hôte est rempli au fur et à mesure de la lecture des données.
Sélectionnez cette option si vous prévoyez d’autoriser les utilisateurs à apporter des modifications permanentes à leurs postes de travail.
- Définissez le paramètre
Remarque :
Pour les machines virtuelles dont les VDI sont situés sur une SR GFS2, le comportement au démarrage des machines virtuelles est différent de celui des machines virtuelles dotées de VDI sur d’autres types de SR. Pour les VDI sur un GFS2 SR, l’option de démarrage est appliquée lors de l’arrêt de la machine virtuelle, et non lors du démarrage de la machine virtuelle.
Détails de mise en œuvre et résolution
Q : IntelliCache est-il compatible avec la migration en direct et la haute disponibilité ?
R : Vous pouvez utiliser la migration en direct et la haute disponibilité avec IntelliCache lorsque les bureaux virtuels sont en mode privé, c’est-à-dire lorsque on-boot=persist
Avertissement :
Une machine virtuelle ne peut pas être migrée si l’un de ses VDI possède des indicateurs de comportement de mise en cache définis sur
on-boot=reset
etallow-caching=true
. Les tentatives de migration des machines virtuelles dotées de ces propriétés échouent.
Q : Où se trouve le cache local sur le disque local ?
R : Le cache se trouve dans un référentiel de stockage (SR). Chaque hôte a un paramètre de configuration (appelé local-cache-sr) indiquant quel SR (local) doit être utilisé pour les fichiers de cache. En règle générale, ce SR est un SR de type EXT3/EXT4. Lorsque vous exécutez des machines virtuelles avec IntelliCache, vous voyez des fichiers dans le SR avec des noms uuid.vhdcache
. Ce fichier est le fichier de cache du VDI avec l’UUID indiqué. Ces fichiers ne sont pas affichés dans XenCenter. La seule façon de les voir est de vous connecter à dom0 et de répertorier le contenu de /var/run/sr-mount/sr-uuid
Q : Comment puis-je spécifier un SR particulier pour l’utiliser comme cache ?
R : Le champ de l’objet hôte local-cache-sr
fait référence à une demande de service locale. Vous pouvez afficher sa valeur en exécutant la commande suivante :
xe sr-list params=local-cache-sr,uuid,name-label
<!--NeedCopy-->
Ce champ est défini soit :
-
Après l’installation de l’hôte, si vous avez sélectionné l’option « Activer le provisionnement dynamique » dans le programme d’installation de l’hôte, ou
-
En courant
xe host-enable-local-storage-caching host=host sr-uuid=sr
. La commande nécessite la désactivation de l’hôte spécifié. Arrêtez les machines virtuelles lorsque vous utilisez cette commande.
La première option utilise le SR local de type EXT3/EXT4 et est créée lors de l’installation de l’hôte. La deuxième option utilise le SR spécifié sur la ligne de commande.
Avertissement :
Ces étapes ne sont nécessaires que pour les utilisateurs qui ont configuré plusieurs SR locaux.
Q : Quand le cache local est-il supprimé ?
R : Un fichier de cache VDI n’est supprimé que lorsque le VDI lui-même est supprimé. Le cache est réinitialisé lorsqu’un VDI est connecté à une machine virtuelle (par exemple au démarrage de la machine virtuelle). Si l’hôte est hors ligne lorsque vous supprimez le VDI, la synchronisation SR qui s’exécute au démarrage collecte le fichier de cache.
Remarque :
Le fichier de cache n’est pas supprimé de l’hôte lorsqu’une machine virtuelle migre vers un autre hôte ou est arrêtée.