Multipathing de stockage
La prise en charge du multiacheminement dynamique est disponible pour les dorsaux de stockage Fibre Channel et iSCSI.
XenServer utilise le multipathing natif Linux (DM-MP), la solution générique de multipathing Linux, comme gestionnaire de chemins multiples. Cependant, XenServer complète ce gestionnaire par des fonctionnalités supplémentaires afin que XenServer puisse reconnaître les fonctionnalités spécifiques au fournisseur des périphériques de stockage.
La configuration du multiacheminement fournit une redondance pour le trafic de stockage distant en cas de perte de connectivité partielle. Le multiacheminement achemine le trafic de stockage vers un périphérique de stockage sur plusieurs chemins pour assurer la redondance et augmenter le débit. Vous pouvez utiliser jusqu’à 16 chemins vers un seul LUN. Le multiacheminement est une configuration active-active. Par défaut, le multiacheminement utilise l’équilibrage de charge circulaire ou multibus selon le type de baie de stockage. Tous les itinéraires sont soumis à un trafic actif pendant le fonctionnement normal, ce qui entraîne une augmentation du débit.
Important :
Nous vous recommandons d’activer le multiacheminement pour tous les hôtes de votre pool avant de créer le SR. Si vous créez le SR avant d’activer le multipathing, vous devez mettre vos hôtes en mode maintenance pour activer le multipathing.
La liaison NIC peut également fournir une redondance pour le trafic de stockage. Pour le stockage iSCSI, nous vous recommandons de configurer le multiacheminement au lieu de la liaison de carte réseau dans la mesure du possible.
Le multiacheminement n’est pas efficace dans les scénarios suivants :
- Périphériques de stockage NFS
- Vous disposez d’un nombre limité de cartes réseau et devez acheminer le trafic iSCSI et le trafic de fichiers (NFS ou SMB) sur la même carte réseau
Dans ces cas, envisagez plutôt d’utiliser la liaison NIC. Pour plus d’informations sur la liaison de carte réseau, consultez Mise en réseau.
Logiciels requis
Avant d’activer le multiacheminement, vérifiez que les instructions suivantes sont vraies :
-
Plusieurs cibles sont disponibles sur votre serveur de stockage.
Par exemple, un back-end de stockage iSCSI interrogé pour
sendtargets
sur un portail donné renvoie plusieurs cibles, comme dans l’exemple suivant :iscsiadm -m discovery --type sendtargets --portal 192.168.0.161 192.168.0.161:3260,1 iqn.strawberry:litchie 192.168.0.204:3260,2 iqn.strawberry:litchie
Toutefois, vous pouvez effectuer une configuration supplémentaire pour activer le multipath iSCSI pour les baies qui n’exposent qu’une seule cible. Pour plus d’informations, consultez Multipath iSCSI pour les baies qui n’exposent qu’une seule cible.
-
Pour iSCSI uniquement, le domaine de contrôle (dom0) possède une adresse IP sur chaque sous-réseau utilisé par le stockage multichemin.
Assurez-vous que pour chaque chemin d’accès au stockage, vous disposez d’une carte réseau et qu’une adresse IP est configurée sur chaque carte réseau. Par exemple, si vous voulez quatre chemins d’accès à votre stockage, vous devez disposer de quatre cartes réseau dont chacune possède une adresse IP configurée.
-
Pour iSCSI uniquement, chaque cible et chaque initiateur iSCSI possède un IQN unique.
-
Pour iSCSI uniquement, les ports cibles iSCSI fonctionnent en mode portail.
-
Pour les adaptateurs HBA uniquement, plusieurs adaptateurs HBA sont connectés à la structure de commutation.
-
Lorsque vous configurez des interfaces secondaires, chaque interface secondaire doit se trouver sur un sous-réseau distinct. Par exemple, si vous souhaitez configurer deux autres interfaces secondaires pour le stockage, vous avez besoin d’adresses IP sur trois sous-réseaux différents : un sous-réseau pour l’interface de gestion, un sous-réseau pour l’interface secondaire 1 et un sous-réseau pour l’interface secondaire 2.
Ce diagramme montre comment les deux cartes réseau de l’hôte dans une configuration iSCSI à chemins multiples doivent se trouver sur des sous-réseaux différents. Dans ce schéma, la carte réseau 1 de l’hôte ainsi que le commutateur 1 et la carte réseau 1 des deux contrôleurs de stockage se trouvent sur un sous-réseau différent de celui de la carte réseau 2, du commutateur 2 et de la carte réseau 2 des contrôleurs de stockage.
Activer le multiacheminement
Vous pouvez activer le multiacheminement dans XenCenter ou sur l’interface de ligne de commande xe.
Pour activer le multiacheminement à l’aide de XenCenter
-
Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezEnter Maintenance Mode.
-
Attendez que l’hôte réapparaisse dans le volet Ressources avec l’icône du mode de maintenance (un carré bleu) avant de continuer.
-
Dans l’onglet Général de l’hôte, cliquez sur Propriétés, puis sur l’onglet Multipathing .
-
Pour activer le multiacheminement, activez la case à cocher Activer le multiacheminement sur ce serveur .
-
Cliquez sur OK pour appliquer le nouveau paramètre. XenCenter enregistre la nouvelle configuration de stockage pendant un court délai.
-
Dans le volet Ressources, cliquez avec le bouton droit sur l’hôte et choisissez Quitter le mode de maintenance.
-
Répétez ces étapes pour activer le multiacheminement sur tous les hôtes du pool.
Assurez-vous d’activer le multiacheminement sur tous les hôtes du pool. Tous les câbles et, dans le cas d’iSCSI, les configurations de sous-réseau doivent correspondre aux cartes réseau correspondantes sur chaque hôte.
Pour activer le multiacheminement à l’aide de l’interface de ligne de commande xe
-
Ouvrez une console sur l’hôte XenServer.
-
Débranchez tous les PBD de l’hôte à l’aide de la commande suivante :
xe pbd-unplug uuid=<pbd_uuid> <!--NeedCopy-->
Vous pouvez utiliser la commande
xe pbd-list
pour trouver l’UUID des PBD. -
Définissez la valeur du paramètre
multipathing
surtrue
à l’aide de la commande suivante :xe host-param-set uuid=<host uuid> multipathing=true <!--NeedCopy-->
-
S’il existe des SR existants sur le serveur qui s’exécutent en mode chemin unique mais qui ont plusieurs chemins d’accès :
-
Migrez ou suspendez tous les invités en cours d’exécution avec des disques virtuels dans les SR concernés
-
Rebranchez le PBD de tous les SR concernés pour les reconnecter à l’aide du multiacheminement :
xe pbd-plug uuid=<pbd_uuid> <!--NeedCopy-->
-
-
Répétez ces étapes pour activer le multiacheminement sur tous les hôtes du pool.
Assurez-vous d’activer le multiacheminement sur tous les hôtes du pool. Tous les câbles et, dans le cas d’iSCSI, les configurations de sous-réseau doivent correspondre aux cartes réseau correspondantes sur chaque hôte.
Désactiver le multiacheminement
Vous pouvez désactiver le multiacheminement dans XenCenter ou sur l’interface de ligne de commande xe.
Pour désactiver le multiacheminement à l’aide de XenCenter
-
Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezEnter Maintenance Mode.
-
Attendez que l’hôte réapparaisse dans le volet Ressources avec l’icône du mode de maintenance (un carré bleu) avant de continuer.
-
Dans l’onglet Général de l’hôte, cliquez sur Propriétés, puis sur l’onglet Multipathing .
-
Pour désactiver le multiacheminement, désactivez la case à cocher Activer le multiacheminement sur ce serveur .
-
Cliquez sur OK pour appliquer le nouveau paramètre. XenCenter enregistre la nouvelle configuration de stockage pendant un court délai.
-
Dans le volet Ressources, cliquez avec le bouton droit sur l’hôte et choisissez Quitter le mode de maintenance.
-
Répétez ces étapes pour configurer le multiacheminement sur tous les hôtes du pool.
Pour désactiver le multiacheminement à l’aide de l’interface de ligne de commande xe
-
Ouvrez une console sur l’hôte XenServer.
-
Débranchez tous les PBD de l’hôte à l’aide de la commande suivante :
xe pbd-unplug uuid=<pbd_uuid> <!--NeedCopy-->
Vous pouvez utiliser la commande
xe pbd-list
pour trouver l’UUID des PBD. -
Définissez la valeur du paramètre
multipathing
surfalse
à l’aide de la commande suivante :xe host-param-set uuid=<host uuid> multipathing=false <!--NeedCopy-->
-
S’il existe des SR existants sur le serveur qui s’exécutent en mode chemin unique mais qui ont plusieurs chemins d’accès :
-
Migrez ou suspendez tous les invités en cours d’exécution avec des disques virtuels dans les SR concernés
-
Débranchez et rebranchez le PBD de tout SR affecté pour les reconnecter en utilisant le multiacheminement :
xe pbd-plug uuid=<pbd_uuid> <!--NeedCopy-->
-
-
Répétez ces étapes pour désactiver le multiacheminement sur tous les hôtes du pool.
Configurer le multiacheminement
Pour apporter des modifications temporaires supplémentaires à la configuration multichemin, créez des fichiers avec le suffixe .conf
dans le répertoire/etc/multipath/conf.d
. Ajoutez la configuration supplémentaire dans ces fichiers. Multipath recherche dans le répertoire par ordre alphabétique les fichiers se terminant par .conf
et lit les informations de configuration qui s’y trouvent.
Ne modifiez pas le fichier /etc/multipath.conf
. Ce fichier est remplacé par les mises à jour de XenServer. Si vous souhaitez apporter des modifications permanentes à votre configuration multichemin, contactez votre fournisseur de stockage qui peut demander à notre équipe d’ingénierie partenaire d’ajouter définitivement les modifications.
Multiacheminement iSCSI sur un seul sous-réseau
Vous pouvez configurer XenServer pour utiliser le multiacheminement iSCSI avec des baies de stockage qui exposent leurs cibles et leurs IQN sur un seul sous-réseau. Par exemple, vous pouvez suivre ces étapes pour configurer les baies de stockage unifiées Dell EqualLogic série PS et FS.
Par défaut, XenServer établit une seule connexion par cible iSCSI. Par conséquent, avec la configuration par défaut, il est recommandé d’utiliser la liaison de carte réseau pour réaliser le basculement et l’équilibrage de charge. La procédure de configuration décrite dans cette section décrit une configuration alternative, dans laquelle plusieurs connexions iSCSI sont établies pour un seul sous-réseau ou une seule cible. La liaison NIC n’est pas requise.
Remarque :
La configuration suivante n’est prise en charge que pour les serveurs exclusivement connectés à des baies de stockage qui exposent leurs cibles et leurs IQN via un seul sous-réseau. Ces baies de stockage doivent être qualifiées pour cette procédure avec XenServer.
Pour configurer le multipath :
-
Sauvegardez toutes les données que vous souhaitez protéger.
-
Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezEnter Maintenance Mode.
-
Attendez que l’hôte réapparaisse dans le volet Ressources avec l’icône du mode de maintenance (un carré bleu) avant de continuer.
-
Dans l’onglet Général de l’hôte, cliquez sur Propriétés, puis sur l’onglet Multipathing .
-
Pour activer le multiacheminement, activez la case à cocher Activer le multiacheminement sur ce serveur .
-
Cliquez sur OK pour appliquer le nouveau paramètre. XenCenter enregistre la nouvelle configuration de stockage pendant un court délai.
-
Dans la console hôte, configurez deux à quatre interfaces Open-iSCSI. Chaque interface iSCSI est utilisée pour établir un chemin distinct. Les étapes suivantes illustrent le processus pour deux interfaces :
-
Configurez deux interfaces iSCSI, exécutez les commandes suivantes :
iscsiadm -m iface --op new -I c_iface1 iscsiadm -m iface --op new -I c_iface2
Assurez-vous que les noms d’interface comportent le préfixe
c_
. Si les interfaces n’utilisent pas cette norme de dénomination, elles sont ignorées et l’interface par défaut est utilisée à la place.Remarque :
Cette configuration entraîne l’utilisation de l’interface par défaut pour toutes les connexions. Cela indique que toutes les connexions sont établies à l’aide d’une seule interface.
-
Liez les interfaces iSCSI à xenbr1 et xenbr2, à l’aide des commandes suivantes :
iscsiadm -m iface --op update -I c_iface1 -n iface.net_ifacename -v xenbr1 iscsiadm -m iface --op update -I c_iface2 -n iface.net_ifacename -v xenbr2
Remarque :
Cette configuration suppose que les interfaces réseau configurées pour le domaine de contrôle (y compris xenbr1 et xenbr2) et xenbr0 sont utilisées pour la gestion. Il suppose également que les cartes NIC utilisées pour le réseau de stockage sont NIC1 et NIC2. Si ce n’est pas le cas, reportez-vous à la topologie de votre réseau pour découvrir les interfaces réseau et les cartes réseau à utiliser dans ces commandes.
-
-
Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezQuitter le mode de maintenance. Ne reprenez pas encore vos machines virtuelles.
-
Dans la console hôte, exécutez les commandes suivantes pour découvrir les sessions et vous y connecter :
iscsiadm -m discovery -t st -p <IP of SAN> iscsiadm -m node -L all
-
Supprimez les entrées périmées contenant les anciennes informations de session à l’aide des commandes suivantes :
cd /var/lib/iscsi/send_targets/<IP of SAN and port, use ls command to check that> rm -rf <iqn of SAN target for that particular LUN> cd /var/lib/iscsi/nodes/ rm -rf <entries for that particular SAN>
-
Détachez le LUN et attachez-le à nouveau. Vous pouvez pour cela procéder de plusieurs façons :
- Après avoir effectué les étapes précédentes sur tous les hôtes d’un pool, vous pouvez utiliser XenCenter pour détacher et rattacher le LUN à l’ensemble du pool.
-
Vous pouvez également débrancher et détruire le PBD de chaque hôte, puis réparer le SR.
-
Exécutez les commandes suivantes pour débrancher et détruire le PBD :
-
Trouvez l’UUID du SR :
xe sr-list
-
Obtenez la liste des PBD associés au SR :
xe pbd-list sr-uuid=<sr_uuid>
-
Dans la sortie de la commande précédente, recherchez l’UUID du PBD du référentiel de stockage iSCSI dont l’ID SCSI ne correspond pas.
-
Débranchez et détruisez le PBD que vous avez identifié.
xe pbd-unplug uuid=<pbd_uuid> xe pbd-destroy uuid=<pbd_uuid>
-
-
Réparez le stockage dans XenCenter.
-
-
Vous pouvez désormais reprendre vos machines virtuelles.