XenServer

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.

    Schéma iSCSI à chemins multiples

    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

  1. Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezEnter Maintenance Mode.

  2. 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.

  3. Dans l’onglet Général de l’hôte, cliquez sur Propriétés, puis sur l’onglet Multipathing .

  4. Pour activer le multiacheminement, activez la case à cocher Activer le multiacheminement sur ce serveur .

  5. Cliquez sur OK pour appliquer le nouveau paramètre. XenCenter enregistre la nouvelle configuration de stockage pendant un court délai.

  6. Dans le volet Ressources, cliquez avec le bouton droit sur l’hôte et choisissez Quitter le mode de maintenance.

  7. 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

  1. Ouvrez une console sur l’hôte XenServer.

  2. 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.

  3. Définissez la valeur du paramètre multipathing sur true à l’aide de la commande suivante :

    xe host-param-set uuid=<host uuid> multipathing=true
    <!--NeedCopy-->
    
  4. 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-->
      
  5. 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

  1. Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezEnter Maintenance Mode.

  2. 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.

  3. Dans l’onglet Général de l’hôte, cliquez sur Propriétés, puis sur l’onglet Multipathing .

  4. Pour désactiver le multiacheminement, désactivez la case à cocher Activer le multiacheminement sur ce serveur .

  5. Cliquez sur OK pour appliquer le nouveau paramètre. XenCenter enregistre la nouvelle configuration de stockage pendant un court délai.

  6. Dans le volet Ressources, cliquez avec le bouton droit sur l’hôte et choisissez Quitter le mode de maintenance.

  7. 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

  1. Ouvrez une console sur l’hôte XenServer.

  2. 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.

  3. Définissez la valeur du paramètre multipathing sur false à l’aide de la commande suivante :

    xe host-param-set uuid=<host uuid> multipathing=false
    <!--NeedCopy-->
    
  4. 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-->
      
  5. Répétez ces étapes pour désactiver le multiacheminement sur tous les hôtes du pool.

Configurer le multiacheminement

Pour effectuer une configuration multipath supplémentaire, 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.

Outils multipath

La prise en charge des chemins multiples dans XenServer repose sur le mappeur de périphériques. multipathd components L’API Storage Manager gère automatiquement l’activation et la désactivation des nœuds multipath. Contrairement aux outils dm-multipath standard de Linux, les nœuds de mappage de périphériques ne sont pas créés automatiquement pour tous les LUN du système. Les nœuds de mappage de périphériques ne sont provisionnés que lorsque les LUN sont activement utilisés par la couche de gestion du stockage. Par conséquent, il n’est pas nécessaire d’utiliser l’un des outils de la dm-multipath CLI pour interroger ou actualiser les nœuds de table DM dans XenServer.

S’il est nécessaire d’interroger manuellement l’état des tables de mappage de périphériques ou de répertorier les nœuds multipath actifs du mappeur de périphériques sur le système, utilisez l’utilitaire mpathutil suivant :

mpathutil list
<!--NeedCopy-->
mpathutil status
<!--NeedCopy-->

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 :

  1. Sauvegardez toutes les données que vous souhaitez protéger.

  2. Dans le volet XenCenter Resources, cliquez avec le bouton droit sur l’hôte et choisissezEnter Maintenance Mode.

  3. 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.

  4. Dans l’onglet Général de l’hôte, cliquez sur Propriétés, puis sur l’onglet Multipathing .

  5. Pour activer le multiacheminement, activez la case à cocher Activer le multiacheminement sur ce serveur .

  6. Cliquez sur OK pour appliquer le nouveau paramètre. XenCenter enregistre la nouvelle configuration de stockage pendant un court délai.

  7. 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 :

    1. 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.

    2. 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.

  8. 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.

  9. 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
    
  10. 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>
    
  11. 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.

      1. Exécutez les commandes suivantes pour débrancher et détruire le PBD :

        1. Trouvez l’UUID du SR :

          xe sr-list
          
        2. Obtenez la liste des PBD associés au SR :

          xe pbd-list sr-uuid=<sr_uuid>
          
        3. 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.

        4. Débranchez et détruisez le PBD que vous avez identifié.

          xe pbd-unplug uuid=<pbd_uuid>
          xe pbd-destroy uuid=<pbd_uuid>
          
      2. Réparez le stockage dans XenCenter.

  12. Vous pouvez désormais reprendre vos machines virtuelles.

Multipathing de stockage