layout: doc description: Understand the concepts involved in XenServer storage.—

Stockage

Cette section décrit comment le matériel de stockage physique est mappé aux machines virtuelles (VM) et les objets logiciels utilisés par l’API de gestion pour effectuer des tâches liées au stockage. Les sections détaillées sur chacun des types de stockage pris en charge incluent les informations suivantes :

Référentiels de stockage (SR)

Un référentiel de stockage (SR) est une cible de stockage particulière, dans laquelle les images de disque virtuel (VDI) de machine virtuelle (VM) sont stockées. Un VDI est une abstraction de stockage qui représente un disque dur virtuel (HDD).

Les SR sont flexibles et prennent en charge les lecteurs suivants :

Connecté localement :

Le matériel de stockage physique local peut être un disque dur (HDD) ou un disque SSD.

Connexion à distance :

Remarque :

NVMe over Fibre Channel et NVMe over TCP ne sont pas pris en charge.

Les abstractions SR et VDI permettent d’exposer des fonctionnalités de stockage avancées sur des cibles de stockage qui les prennent en charge. Par exemple, des fonctionnalités avancées telles que le provisionnement dynamique, les instantanés VDI et le clonage rapide. Pour les sous-systèmes de stockage qui ne prennent pas directement en charge les opérations avancées, une pile logicielle implémentant ces fonctionnalités est fournie. Cette pile logicielle est basée sur la spécification de disque dur virtuel (VHD) de Microsoft.

Un référentiel de stockage est une structure de données persistante sur disque. Pour les types de SR qui utilisent un périphérique de stockage en mode bloc sous-jacent, le processus de création d’un SR implique l’effacement de toutes les données existantes sur la cible de stockage spécifiée. D’autres types de stockage, tels que NFS, créent un conteneur sur la baie de stockage en parallèle aux SR existants.

Chaque hôte XenServer peut utiliser plusieurs SR et différents types de SR simultanément. Ces SR peuvent être partagées entre des hôtes ou dédiées à des hôtes particuliers. Le stockage partagé est mis en pool entre plusieurs hôtes au sein d’un pool de ressources défini. Un SR partagé doit être accessible en réseau à chaque hôte du pool. Tous les hôtes d’un même pool de ressources doivent avoir au moins un SR partagé en commun. Le stockage partagé ne peut pas être partagé entre plusieurs pools.

Les commandes SR fournissent des opérations de création, de destruction, de redimensionnement, de clonage, de connexion et de découverte des VDI individuels qu’elles contiennent. Les opérations CLI pour gérer les référentiels de stockage sont décrites dans les commandes SR.

Avertissement :

XenServer ne prend pas en charge les snapshots au niveau du SAN externe d’un LUN, quel que soit le type de SR.

Image de disque virtuel (VDI)

Une image de disque virtuel (VDI) est une abstraction de stockage qui représente un disque dur virtuel (HDD). Les VDI constituent l’unité fondamentale du stockage virtualisé dans XenServer. Les VDI sont des objets persistants sur disque qui existent indépendamment des hôtes XenServer. Les opérations CLI pour gérer les VDI sont décrites dans les commandes VDI. La représentation des données sur disque varie selon le type de SR. Une interface de plug-in de stockage distincte pour chaque SR, appelée API SM, gère les données.

Périphériques physiques en mode bloc (PBD)

Les périphériques de blocs physiques représentent l’interface entre un serveur physique et un SR connecté. Les PBD sont des objets de connecteur qui permettent de mapper un SR donné à un hôte. Les PBD stockent les champs de configuration des périphériques utilisés pour se connecter et interagir avec une cible de stockage donnée. Par exemple, la configuration du périphérique NFS inclut l’adresse IP du serveur NFS et le chemin associé monté par l’hôte XenServer. Les objets PBD gèrent l’attachement au moment de l’exécution d’un SR donné à un hôte XenServer donné. Les opérations CLI relatives aux PBD sont décrites dans les commandes PBD.

Périphériques en mode bloc virtuels (VBD)

Les Virtual Block Devices sont des objets de connecteur (similaires au PBD décrit ci-dessus) qui permettent les mappages entre les VDI et les VM. En plus de fournir un mécanisme permettant d’associer un VDI à une machine virtuelle, les VBD permettent d’affiner les paramètres concernant la priorité des E/S du disque et les statistiques d’un VDI donné, et de déterminer si ce VDI peut être démarré. Les opérations CLI relatives aux VBD sont décrites dans les commandes VBD.

Récapitulatif des objets de stockage

L’image suivante est un résumé de la manière dont les objets de stockage présentés jusqu’à présent sont liés :

Présentation graphique des référentiels de stockage et des objets associés

Formats de données des disques virtuels

En général, il existe les types suivants de mappage du stockage physique vers un VDI :

  1. Disque dur virtuel basé sur un volume logique sur un LUN : le stockage par blocs XenServer par défaut insère un gestionnaire de volumes logiques sur un disque. Ce disque est soit un périphérique connecté localement (LVM), soit un LUN connecté au SAN sur Fibre Channel, iSCSI ou SAS. Les VDI sont représentés sous forme de volumes dans le gestionnaire de volumes et stockés au format VHD pour permettre le provisionnement fin des nœuds de référence sur le snapshot et le clone.

  2. QCOW2 basé sur des fichiers sur un LUN : les images de machine virtuelle sont stockées sous forme de fichiers au format QCOW2 à provisionnement fin sur un système de fichiers à disque partagé GFS2 sur un LUN connecté via un initiateur logiciel iSCSI ou un adaptateur HBA matériel.

  3. Disque dur virtuel basé sur des fichiers sur un système de fichiers : les images de machine virtuelle sont stockées en tant que fichiers au format VHD à provisionnement dynamique sur un système de fichiers local non partagé (EXT3/EXT4 type SR), une cible NFS partagée (type NFS SR) ou une cible SMB distante (type SMB SR).

  4. QCOW2 basé sur des fichiers sur un système de fichiers : les images de machines virtuelles sont stockées sous forme de fichiers au format QCOW2 à provisionnement fin sur un système de fichiers XFS local non partagé.

Types VDI

Pour les SR GFS2 et XFS, des VDI QCOW2 sont créés.

Pour les autres types de SR, des VDI au format VHD sont créés. Vous pouvez choisir d’utiliser raw au moment de la création du VDI. Cette option ne peut être spécifiée qu’à l’aide de l’interface de ligne de commande xe.

Remarque :

Si vous créez un VDI brut sur un SR basé sur un LVM ou un adaptateur HBA/LUN par VDI SR, cela peut permettre à la machine virtuelle propriétaire d’accéder aux données qui faisaient partie d’un VDI précédemment supprimé (quel que soit son format) appartenant à une machine virtuelle. Nous vous recommandons de prendre en compte vos exigences de sécurité avant d’utiliser cette option.

Les VDI bruts sur un NFS, un EXT ou un SR SMB n’autorisent pas l’accès aux données des VDI précédemment supprimés appartenant à une machine virtuelle.

Pour vérifier si un VDI a été créé avectype=raw, vérifiez sasm-configcarte. Les commandes sr-param-list et vdi-param-list xe peuvent être utilisées respectivement à cette fin.

Créer un disque virtuel brut à l’aide de l’interface de ligne de commande xe

  1. Exécutez la commande suivante pour créer un VDI en fonction de l’UUID du SR dans lequel vous souhaitez placer le disque virtuel :

    xe vdi-create sr-uuid=sr-uuid type=user virtual-size=virtual-size \
            name-label=VDI name sm-config:type=raw
    <!--NeedCopy-->
    
  2. Connectez le nouveau disque virtuel à une machine virtuelle. Utilisez les outils de disque de la machine virtuelle pour partitionner et formater, ou utilisez le nouveau disque. Vous pouvez utiliser la commande vbd-create pour créer un VBD pour mapper le disque virtuel dans votre machine virtuelle.

Conversion entre les formats VDI

Il n’est pas possible d’effectuer une conversion directe entre le format brut et le format VHD. Au lieu de cela, vous pouvez créer un VDI (brut, comme décrit ci-dessus, ou VHD), puis y copier des données à partir d’un volume existant. Utilisez l’interface de ligne de commande xe pour vous assurer que le nouveau VDI a une taille virtuelle au moins égale à celle du VDI à partir duquel vous copiez. Vous pouvez le faire en vérifiant son champ virtual-size, par exemple à l’aide de la commande vdi-param-list. Vous pouvez ensuite attacher ce nouveau VDI à une machine virtuelle et utiliser votre outil préféré au sein de la machine virtuelle pour effectuer une copie en bloc directe des données. Par exemple, les outils de gestion de disque standard dans Windows ou la commande dd sous Linux. Si le nouveau volume est un volume VHD, utilisez un outil qui évitera d’écrire des secteurs vides sur le disque. Cette action peut garantir une utilisation optimale de l’espace dans le référentiel de stockage sous-jacent. Une approche de copie basée sur des fichiers peut être plus appropriée.

VDI basés sur VHD et QCow2

Les images VHD et QCOW2 peuvent être chaînées, ce qui permet à deux VDI de partager des données communes. Dans les cas où une machine virtuelle basée sur VHD ou basée sur QCow2 est clonée, les machines virtuelles résultantes partagent les données sur disque communes au moment du clonage. Chaque machine virtuelle procède à ses propres modifications dans une version isolée de copie sur écriture du VDI. Cette fonctionnalité permet de cloner rapidement ces machines virtuelles à partir de modèles, ce qui facilite le provisionnement et le déploiement très rapides de nouvelles machines virtuelles.

Au fur et à mesure que les VM et leurs VDI associés sont clonés au fil du temps, cela crée des arborescences de VDI chaînés. Lorsque l’un des VDI d’une chaîne est supprimé, XenServer rationalise les autres VDI de la chaîne pour supprimer les VDI inutiles. Ce processus de coalescence s’exécute de manière asynchrone. La quantité d’espace disque récupéré et le temps nécessaire à l’exécution du processus dépendent de la taille du VDI et de la quantité de données partagées.

Les formats VHD et QCOW2 prennent en charge le Thin Provisioning. Le fichier image est automatiquement étendu en petits morceaux granulaires lorsque la machine virtuelle écrit des données sur le disque. Pour le disque dur virtuel basé sur fichiers et le QCOW2 basé sur GFS2, cette approche présente l’avantage considérable que les fichiers d’image de machine virtuelle occupent uniquement autant d’espace que nécessaire sur le stockage physique. Avec un disque dur virtuel basé sur LVM, le conteneur de volume logique sous-jacent doit être dimensionné à la taille virtuelle du VDI. Toutefois, l’espace inutilisé sur le disque d’instance de copie sur écriture sous-jacent est récupéré lors d’un snapshot ou d’un clone. La différence entre les deux comportements peut être décrite de la manière suivante :

Lors du clonage de machines virtuelles basées sur un seul VHD ou un modèle QCOW2, chaque machine virtuelle enfant forme une chaîne dans laquelle les nouvelles modifications sont écrites sur la nouvelle machine virtuelle. Les anciens blocs sont directement lus à partir du modèle parent. Si la nouvelle machine virtuelle a été convertie en un autre modèle et que d’autres machines virtuelles ont été clonées, la chaîne résultante entraîne une dégradation des performances. XenServer prend en charge une longueur de chaîne maximale de 30. Ne vous approchez pas de cette limite sans raison valable. En cas de doute, « copiez » la machine virtuelle à l’aide de XenCenter ou utilisez la commande vm-copy, qui réinitialise la longueur de la chaîne à 0.

Remarques spécifiques au VHD sur la fusion

Un seul processus de coalescence est actif pour un SR. Ce fil de processus s’exécute sur le coordinateur du pool SR.

Si des machines virtuelles critiques s’exécutent sur le coordinateur du pool, vous pouvez prendre les mesures suivantes pour éviter la lenteur occasionnelle des E/S :