XenServer

IntelliCache™

L’utilisation de XenServer® avec IntelliCache rend les déploiements d’infrastructure de postes de travail virtuels hébergés plus rentables en vous permettant d’utiliser une combinaison de stockage partagé et de stockage local. C’est particulièrement avantageux lorsque de nombreuses machines virtuelles (VM) partagent toutes une image de système d’exploitation commune (l’image principale). La charge sur la baie de stockage est réduite et les performances sont améliorées. De plus, le trafic réseau vers et depuis le stockage partagé est réduit, car le stockage local met en cache l’image principale du stockage partagé.

IntelliCache fonctionne en mettant en cache les données d’une machine virtuelle dans le stockage local de l’hôte de la machine virtuelle. Ces données mises en cache localement incluent :

  • Une copie mise en cache de l’image principale (VDI parent d’une machine virtuelle). Ce fichier est provisionné de manière dynamique (thin provisioned) et en lecture seule. Il est rempli au fur et à mesure que les données sont lues à partir du VDI de l’image principale sur le stockage partagé. Lorsque de nombreuses machines virtuelles partagent un VDI d’image principale commun, une machine virtuelle peut utiliser les données lues dans le cache à partir d’une autre machine virtuelle. Un accès supplémentaire à l’image principale sur le stockage partagé n’est pas nécessaire.
  • Une copie mise en cache du disque delta par VDI. Les modifications peuvent être écrites sur ce disque delta local. Pour les machines virtuelles non persistantes, les données du disque delta mis en cache localement sont supprimées au démarrage de la machine virtuelle. Pour les machines virtuelles persistantes, les données du disque delta mis en cache localement sont réécrites sur le disque delta du stockage partagé au démarrage de la machine virtuelle.

Prérequis

La fonctionnalité IntelliCache présente les exigences suivantes :

  • Licence Premium Edition : IntelliCache n’est pris en charge que lors de l’utilisation de XenServer Premium Edition avec Citrix Virtual Desktops.

  • Stockage : Pour utiliser IntelliCache, vous avez besoin à la fois d’un SR local pour les données mises en cache et d’un SR partagé pour l’image de disque virtuel (VDI) source. Utilisez ces SR uniquement pour les machines virtuelles IntelliCache. Ne mélangez pas les machines virtuelles traditionnelles et les machines virtuelles IntelliCache sur le même SR.

    • Stockage partagé : Le stockage partagé utilisé pour héberger le VDI source doit être de l’un des types suivants :

      • NFS
      • SMB3
      • LVM partagé (iSCSI ou HBA)
    • Stockage local : 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 disque SSD (Solid State Disk) ou une baie RAID hautes performances. Tenez compte du débit de données et de la capacité de stockage lors du dimensionnement des disques locaux.

      Un SR local EXT3/EXT4 à provisionnement dynamique est requis pour IntelliCache. Le provisionnement dynamique doit être activé pour que la mise en cache locale de Citrix Virtual Desktops fonctionne correctement. Vous pouvez activer le provisionnement dynamique lors de l’installation de XenServer ou ultérieurement, à l’aide de la ligne de commande. Le provisionnement dynamique modifie le type de stockage local par défaut de l’hôte de LVM à EXT4. Pour plus d’informations, consultez Déploiement d’IntelliCache.

      Le provisionnement dynamique est un moyen d’optimiser l’utilisation du stockage disponible. Cette approche vous permet d’utiliser davantage le stockage local plutôt que le stockage partagé. Elle repose sur l’allocation à la demande de blocs de données. Dans d’autres approches, tous les blocs sont alloués à l’avance. Le provisionnement dynamique permet à l’administrateur de présenter plus d’espace de stockage aux machines virtuelles se connectant au référentiel de stockage (SR) qu’il n’y en a de disponible sur le SR. Il n’y a aucune garantie d’espace, et l’allocation d’un LUN ne revendique aucun bloc de données tant que la machine virtuelle n’écrit pas de données.

      Les SR à provisionnement dynamique peuvent manquer d’espace physique, car les machines virtuelles qu’ils contiennent peuvent augmenter pour consommer de la capacité disque à la demande. Les machines virtuelles IntelliCache gèrent cette condition en basculant automatiquement vers le stockage partagé lorsque le cache SR local est plein. Ne mélangez pas les machines virtuelles traditionnelles et les machines virtuelles IntelliCache sur le même SR, car les machines virtuelles IntelliCache peuvent augmenter rapidement en taille.

Déploiement d’IntelliCache

Pour utiliser la fonctionnalité IntelliCache, vous devez l’activer à la fois sur XenServer et sur Citrix Virtual Apps and Desktops™.

Sur XenServer

Pour utiliser IntelliCache, le provisionnement dynamique du SR local doit être activé soit pendant l’installation de l’hôte, soit manuellement sur un hôte en cours d’exécution à l’aide de la CLI. Le provisionnement dynamique modifie le type de stockage local par défaut de l’hôte de LVM à EXT4.

Activer lors de l’installation de l’hôte

Pour activer le provisionnement dynamique lors de l’installation de l’hôte, sur l’écran Stockage de la machine virtuelle, sélectionnez Activer le provisionnement dynamique. Cette option sélectionne le SR local de l’hôte comme celui à utiliser pour la mise en cache locale des VDI de machines virtuelles.

Le panneau Stockage de la machine virtuelle dans les écrans d'installation.

Convertir un hôte existant pour utiliser le provisionnement dynamique

Pour supprimer un SR local LVM existant et le remplacer par un SR EXT3/EXT4 à provisionnement dynamique, entrez les commandes suivantes.

Avertissement :

Ces commandes suppriment votre SR local existant, et les machines virtuelles sur le 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-->

Sur Citrix Virtual Apps and Desktops

Lors de la connexion de Citrix Virtual Apps and Desktops à XenServer dans Citrix Studio, sélectionnez d’utiliser IntelliCache. Si le provisionnement léger du SR local a été activé dans XenServer, Citrix Studio affiche l’option Utiliser IntelliCache pour réduire la charge sur le périphérique de stockage partagé lors de la création de la connexion à XenServer.

Pour plus d’informations, consultez la documentation produit de Citrix Virtual Apps and Desktops.

Comportement des machines virtuelles avec IntelliCache

L’indicateur VDI on-boot dicte le comportement d’un VDI de machine virtuelle lorsque la machine virtuelle 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 allouées de manière aléatoire :

    • Définissez le paramètre on-boot sur reset.
    • Définissez le paramètre allow-caching sur true

    Par exemple :

     xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true
     <!--NeedCopy-->
    

    Au démarrage de la machine virtuelle, le VDI est restauré à l’état dans lequel il se trouvait lors du démarrage précédent. Toutes les modifications effectuées pendant l’exécution de la machine virtuelle sont perdues lors du prochain démarrage de la machine virtuelle. Les nouvelles données de la machine virtuelle sont écrites uniquement sur le stockage local. Il n’y a pas d’écritures 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 bureaux standardisés auxquels les utilisateurs ne peuvent pas apporter de modifications permanentes.

  • Pour les machines statiques ou dédiées :

    • Définissez le paramètre on-boot sur persist.
    • Définissez le paramètre allow-caching sur true

    Par exemple :

     xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true
     <!--NeedCopy-->
    

    Au démarrage de la VM, le VDI est dans l’état où il se trouvait lors du dernier arrêt. Les nouvelles données de la VM sont écrites à la fois 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 la VM vers un autre hôte est autorisée et le cache local sur le nouvel hôte est rempli au fur et à mesure que les données sont lues.

    Sélectionnez cette option si vous prévoyez d’autoriser les utilisateurs à apporter des modifications permanentes à leurs bureaux.

Remarque :

Pour les machines virtuelles dont les VDI se trouvent sur un SR GFS2, le comportement de démarrage de la VM est différent de celui des machines virtuelles avec des VDI sur d’autres types de SR. Pour les VDI sur un SR GFS2, l’option de démarrage est appliquée à l’arrêt de la VM, et non au démarrage de la VM.

Détails d’implémentation et dépannage

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 VM ne peut pas être migrée si l’un de ses VDI a des indicateurs de comportement de mise en cache définis sur on-boot=reset et allow-caching=true. Les tentatives de migration pour les VM avec 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 dispose d’un paramètre de configuration (appelé local-cache-sr) indiquant quel SR (local) doit être utilisé pour les fichiers de cache. Généralement, ce SR est un SR de type EXT3/EXT4. Lorsque vous exécutez des VM avec IntelliCache, vous voyez des fichiers à l’intérieur du SR avec les noms uuid.vhdcache. Ce fichier est le fichier de cache pour le VDI avec l’UUID donné. Ces fichiers ne sont pas affichés dans XenCenter. La seule façon de les voir est de se connecter à dom0 et de lister le contenu de /var/run/sr-mount/sr-uuid

Q : Comment spécifier un SR particulier à utiliser comme cache ?

R : Le champ d’objet hôte local-cache-sr référence un SR local. 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 choisi l’option « Activer le provisionnement léger » dans l’installateur de l’hôte, ou

  • En exécutant xe host-enable-local-storage-caching host=host sr-uuid=sr. La commande nécessite que l’hôte spécifié soit désactivé. 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 de type EXT3/EXT4 spécifié sur la ligne de commande.

Avertissement :

Ces étapes ne sont nécessaires que pour les utilisateurs ayant configuré plus d’un SR local.

Q : Quand le cache local est-il supprimé ?

R : Le cache local comprend deux types d’informations :

  • Un cache partagé pour le disque d’image principal. Ce fichier de cache partagé reflète le VDI en lecture seule du stockage partagé et n’est pas supprimé ou réinitialisé lorsque des actions sont effectuées sur des VDI individuels.
  • Un cache de disque delta par VDI pour chaque VDI. Pour une machine virtuelle non persistante, le cache de disque delta est réinitialisé lorsqu’un VDI est attaché à une machine virtuelle (par exemple, au démarrage de la machine virtuelle). Ce fichier de cache n’est supprimé que lorsque le VDI lui-même est supprimé. Si l’hôte est hors ligne lorsque vous supprimez le VDI, la synchronisation SR qui s’exécute au démarrage récupère le fichier de cache.

    Remarque :

    Le fichier de cache de disque delta n’est pas supprimé de l’hôte lorsqu’une machine virtuelle migre vers un autre hôte ou est arrêtée.

IntelliCache™