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 yRemarque :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.
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 :
- Créez la partition sur le périphérique à chemins multiples à l'aide d'un éditeur de partition, par exemple, fdisk /dev/mapper/mpath0 .
- 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).
- 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.