GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comprendre le multipath Linux (dm-multipath)

Qu'est-ce que les chemins multiples ?

Le multipathing permet la combinaison de plusieurs connexions physiques entre un serveur et une baie de stockage en un seul périphérique virtuel. Cela peut être fait pour fournir une connexion plus résiliente à votre stockage (un chemin descendant n'entravera pas la connectivité) ou pour agréger la bande passante de stockage pour de meilleures performances.

Par exemple, le serveur dans le schéma suivant possède deux adaptateurs HBA, chacun connecté à un commutateur Fibre Channel distinct, qui sont à leur tour connectés à des contrôleurs distincts sur la baie de stockage.

Red Hat Enterprise Linux 7 prend en charge les chemins multiples à l'aide de dm-multipath sous-système. Cela utilise le système de mappage de périphérique du noyau pour générer des périphériques virtuels, gérés par le démon multipathd et l'outil de ligne de commande multipath.

Les binaires, démons et modules de noyau nécessaires sont disponibles dans le package device-mappermultipath. Une fois device-mapper-multipath installé, configuré et démarré, les nœuds de périphérique pour les périphériques à chemins multiples seront créés sous deux emplacements différents.

À des fins administratives, les périphériques multivoies sont créés sous /dev/mapper . Ils peuvent être nommés mpathN[pM] si des noms conviviaux sont choisis, ou ils peuvent être nommés d'après le World Wide ID (WWID) du périphérique de stockage. Un administrateur peut également définir des noms personnalisés pour les périphériques à chemins multiples. Ces noms personnalisés sont établis à l'aide de l'option alias dans la section multipaths du fichier de configuration multipath.

Les périphériques multipath sont également créés sous /dev sous la forme /dev/dm-N pour correspondre à ceux créés sous /dev/mapper. Ces dispositifs sont strictement destinés à l'usage interne du système et ne doivent donc jamais être utilisés directement à des fins administratives.

Remarque :Le multipathing offre une protection contre la panne d'un chemin d'accès au stockage. Si le stockage lui-même devient indisponible, l'accès au stockage sera perdu.

Pour créer un périphérique multipath, différents chemins seront combinés en groupes, en fonction des paramètres de /etc/multipath.conf fichier de configuration. Généralement, un seul groupe sera actif à la fois, mais un groupe peut être composé de plusieurs chemins. Lorsqu'un groupe échoue, le démon multipath bascule le trafic de stockage vers un autre groupe.

Configuration du multiacheminement

Pour configurer le multipathing, assurez-vous d'abord que le package device-mapper-multipath est installé.

# yum -y install device-mapper-multipath

Une fois le package device-mapper-multipath installé, un fichier de configuration doit être créé pour le démon multipath, /etc/multipath.conf. Le moyen le plus simple de créer ce fichier est d'utiliser le mpathconf utilitaire.

S'il existe déjà un fichier appelé /etc/multipath.conf, la commande mpathconf modifiera ce fichier. Si un tel fichier n'existe pas, mpathconf copiera la configuration par défaut depuis /usr/share/doc/device-mapper-multipath-*/multipath.conf . Si ce fichier n'existe pas, mpathconf créera un nouveau fichier de configuration à partir de zéro.

Pour créer une configuration par défaut, puis démarrer et activer le démon multipathd, utilisez la commande suivante :

# mpathconf --enable --with_multipathd y --with_chkconfig y
Remarque :Dans le fichier de configuration par défaut créé par mpathconf, les noms conviviaux sont activés avec l'option user_friendly_names. Les noms conviviaux entraîneront le nom des périphériques à chemins multiples mpathN. Bien que cela puisse être utile s'il n'y a qu'un seul périphérique à chemins multiples, cela peut devenir déroutant lorsqu'il y a plusieurs périphériques à chemins multiples. Pour désactiver les noms conviviaux, utilisez le –user_friendly_names n option à mpathconf. Cela se traduira par le fait que les périphériques à chemins multiples seront nommés d'après leurs WWID.

Si vous souhaitez affiner la configuration multipath avant de démarrer le démon multipathd, utilisez la commande mpathconf avec uniquement l'option –enable :

# mpathconf --enable

Après avoir modifié le fichier de configuration, activez et démarrez le démon multipathd comme d'habitude avec la commande systemctl.

Le fichier de configuration multipath.conf

Le fichier de configuration multipath.conf se compose de cinq sections :

section multipath.conf Description
liste noire'{} Cette section définit les périphériques à exclure de la découverte de la topologie multivoie.
liste noire_exceptions {} Cette section définit les périphériques qui doivent être inclus dans la découverte de la topologie multivoie, bien qu'ils soient répertoriés dans la section liste noire.
par défaut {} Cette section définit les paramètres par défaut à utiliser pour tous les multipaths, à moins qu'ils ne soient explicitement remplacés dans la section devices {} ou multipaths {}.
appareils {} Cette section contient des remplacements pour la section par défaut {} pour des types spécifiques d'appareils, à moins qu'ils ne soient remplacés à partir de la section multipaths {}. Les périphériques sont identifiés en fonction de leurs mots-clés de fournisseur, de produit et de révision (expressions régulières correspondant aux informations de sysfs).
multichemins {} Cette section contient des paramètres pour des chemins multiples spécifiques. Cette section remplace ce qui est défini dans la section defaults {} and devices {}. Les chemins multiples sont identifiés en fonction de leurs WWID (obtenus à l'aide de la fonction getuid_callout).

Un moyen simple de se souvenir des remplacements est :multipaths> appareils> valeurs par défaut .

Liste noire

Les appareils peuvent être mis sur liste noire dans le fichier de configuration à l'aide de la liste noire{} section de multipath.conf. Si la liste noire utilise des caractères génériques, les appareils individuels peuvent être exemptés de la liste noire à l'aide de la section blacklist_exceptions {}. Les appareils peuvent être mis sur liste noire à l'aide de leur nœud d'appareil ou de leur WWID. L'exemple suivant montre un exemple des deux :

blacklist {
    devnode "^cciss" 
    wwid 1234567890abcde
}

Pour déterminer le WWID d'un périphérique de disque, utilisez l'utilitaire scsi_id.

/usr/lib/udev/scsi_id -g -u /dev/sdN 
360014053bd9ea2a35914e39a556051cf

Par défaut

Les valeurs par défaut pour tous les chemins multiples peuvent être définies dans les defaults{} section de multipath.conf. La liste complète de toutes les valeurs par défaut intégrées se trouve dans le fichier /usr/share/doc/devicemapper-multipath-*/multipath.conf.defaults. Certains des paramètres les plus intéressants sont :

  • path_selector :L'algorithme qui détermine quel chemin à l'intérieur d'un groupe de priorité utiliser pour la prochaine E/S. La valeur par défaut de "round-robin 0 ” distribue les E/S sur tous les chemins du groupe. Le nombre de requêtes à envoyer en utilisant un chemin avant de passer au suivant est déterminé par le rr_min_io_rq paramètre. Les alternatives sont "queue-length 0 ", qui enverra la prochaine requête d'E/S au chemin avec la file d'attente la plus courte de requêtes en attente, et "service-time 0 ", qui enverra la prochaine requête 1/0 au chemin qui a le temps de service estimé le plus court.
  • path_grouping_policy :Ce paramètre définit la façon dont plusieurs chemins sont combinés en groupes de priorité. Dans la valeur par défaut de basculement , chaque chemin sera placé dans un groupe séparé. En revanche, avec le multibus stratégie, tous les chemins possibles sont regroupés dans un seul groupe. Avant de configurer un périphérique multichemin pour utiliser la stratégie multibus, assurez-vous que le contrôleur de stockage prend en charge les connexions actives-actives.
  • path_checker :Ce paramètre détermine comment le démon multipathd déterminera si un chemin est sain. Autre que les options indépendantes du matériel de directio et readsector0 , il existe un certain nombre de vérificateurs indépendants du matériel. Bien que la valeur par défaut de cette option soit directio, elle est généralement remplacée dans l'un des périphériques par défaut spécifiés dans la section {} des périphériques.
  • fonctionnalités :Cette option spécifie les fonctionnalités multi-accès à activer. La syntaxe est la forme de num list , où num représente le nombre de fonctionnalités activées et list représente la liste des fonctionnalités activées. Les deux fonctionnalités disponibles sont queue_if_no_path et no_partitions .
  • user_friendly_names  :Ce paramètre détermine si les chemins multiples sans alias défini seront nommés mpathN (lorsqu'il est défini sur oui), ou s'ils seront nommés d'après leur WWID.
Remarque :Si la fonctionnalité queue_if_no_path est activée avec le paramètre, fonctionnalités "1 queue_if_no_path" et que les chemins échouent, les processus émettant des E/S se bloqueront jusqu'à ce que les chemins soient restaurés. Ce comportement n'est pas souhaitable dans les implémentations de cluster car un nœud bloqué en bloquant sur 1/0 vers un périphérique de stockage défaillant peut empêcher le reste du cluster d'accéder à la ressource de stockage. Pour éviter cette situation, spécifiez une valeur d'échec pour le paramètre no-path_retry. Cela entraînera l'échec de la sauvegarde immédiate des E/S vers des couches supérieures plutôt que de bloquer indéfiniment sur 1/0 jusqu'à ce que les chemins soient récupérés.Remarque :La section commentée des valeurs par défaut {} dans le fichier multipath.conf produit par mpathconf ne reflète pas les valeurs par défaut intégrées réelles du démon multipath.

La section {} des appareils

Dans les appareils{} section, les valeurs par défaut pour des périphériques spécifiques peuvent être remplacées. À l'intérieur de la section des appareils {}, il y a des sous-sections d'appareils individuels {} détaillant les paramètres pour des appareils spécifiques. La plupart des matériels de stockage courants ont déjà leur propre section définie dans les valeurs par défaut intégrées pour le démon multipath. Si un matériel n'est pas (encore) répertorié, une section pour le matériel peut être ajoutée manuellement. Voici un exemple de définition pour un matériel de stockage inexistant. L'appareil lui-même est sélectionné à l'aide d'une combinaison de fournisseur , produit , et révision .

devices { 
    device { 
        vendor "MegaHyperSuperStorage" 
        product "BAS" 
        revision "513/B" 
        features "1 queue_if_no_path" 
        path_grouping_policy multibus 
        path_checker tur 
    }
}

Dans les exemples précédents, la ligne de fonctionnalités indique que les nouvelles demandes d'E/S seront acceptées et mises en file d'attente même lorsqu'aucun chemin n'est actuellement disponible.

La section multi-chemins {}

Dans les multichemins{} section, des remplacements peuvent être définis pour des multi-chemins spécifiques. Cela peut être utilisé pour définir différentes politiques path_grouping pour un multipath spécifique. L'une des autres utilisations courantes de la section multipaths {} consiste à définir un alias pour un multipath. Lorsqu'un alias est défini. le nom du nœud de périphérique dans /dev/mapper/ pour ce multipath sera basé sur l'alias, ce qui facilitera la distinction entre les différents multipaths.

Par exemple, la configuration suivante définira un alias de clusterstorage pour le multipath avec un WWID de "1234567890abcdef", ainsi qu'un path_selector de queue-length.

multipaths { 
    multipath { 
        wwid "1234567890abcdef" 
        alias "clusterstorage" 
        path_selector "queue-length 0"
    }
}

Ajouter des partitions

Pour ajouter une partition sur un périphérique à chemins multiples, procédez comme suit :

  1. Créez la partition sur le périphérique à chemins multiples à l'aide d'un éditeur de partition, par exemple, fdisk /dev/mapper/mpath0 .
  2. Exécuter la partprobe commande pour mettre à jour la vue du noyau de la table de partition sur tous les périphériques (y compris les périphériques regroupés dans un multipath).
  3. Exécutez la commande, kpartx -a , sur le périphérique multichemin pour créer des périphériques de mappage de périphériques pour la ou les partitions nouvellement créées.

Suppression d'un multichemin

Après avoir supprimé tous les chemins d'un multipath, supprimez le périphérique multipath en exécutant la commande multipath -f [device] . Si le démon multipathd a été arrêté et qu'il existe encore des nœuds de périphérique pour les périphériques multipath, videz tous les périphériques multipath en exécutant multipath -F . Cela peut être utile lorsque vous testez différentes configurations et que vous voyez des restes d'anciennes configurations persister.


Cent OS
  1. Comprendre l'utilitaire multipath pour configurer DM-Multipath

  2. Comprendre les identificateurs dm-Multipath sous Linux

  3. Comprendre le fichier de configuration dm-multipath /etc/multipath.conf

  4. Comprendre le démon DM-multipath (multipathd)

  5. Comprendre le fichier /etc/inittab sous Linux

Comprendre les autorisations de fichiers Linux

Le fichier Hosts sous Linux

Comprendre les processus sous Linux

Comprendre les autorisations de fichiers Linux

Comprendre les autorisations de fichiers de base et la propriété sous Linux

Comprendre le fichier /etc/fstab sous Linux