<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VNX on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/vnx/</link><description>Recent content in VNX on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Wed, 24 May 2017 14:15:45 +0000</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/vnx/index.xml" rel="self" type="application/rss+xml"/><item><title>Erreur multipath « Path not correctly configured for failover »</title><link>https://blog.zwindler.fr/2017/05/24/erreur-multipath-path-not-correctly-configured-for-failover/</link><pubDate>Wed, 24 May 2017 14:15:45 +0000</pubDate><guid>https://blog.zwindler.fr/2017/05/24/erreur-multipath-path-not-correctly-configured-for-failover/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/05/path_failover2.webp" alt="Featured image of post Erreur multipath « Path not correctly configured for failover »" /&gt;&lt;h2 id="path-not-correctly-configured-for-failover"&gt;Path not correctly configured for failover
&lt;/h2&gt;&lt;p&gt;Il y a quelque temps, nous avons du décommissionner une vieille baie HP EVA (qui nous coutait plus cher en maintenance que d’acquérir une baie neuve) et migrer les LUNs vers une baie EMC VNX, elle encore sous maintenance. Cependant, lorsque la migration a été faite, le consultant qui s’est chargé de reconfigurer multipath pour migrer d’une baie à l’autre l’a un peu fait « rapidement ».&lt;/p&gt;
&lt;p&gt;Quelques mois plus tard, lors d’une maintenance classique sur une des baies EMC, de grosses anomalies ont été détectés. Lors de la coupure d’un contrôleur pour mise à jour, certains serveurs hébergeant une partie de nos progiciels, encore sous Redhat 4, se bloquaient au niveau I/O au lieu de basculer sur les chemins encore disponibles. L’occasion rêvée pour refaire un peu de multipath !&lt;/p&gt;
&lt;p&gt;Dans cet article, je vais donc passer en revue quelques unes des erreurs que j’ai pu rencontrer, et comment les corriger.&lt;/p&gt;
&lt;h2 id="liloo-dallas-multipath-"&gt;Liloo Dallas Multipath ?
&lt;/h2&gt;&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/05/multipass.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;D’abord un bref rappel.&lt;/p&gt;
&lt;p&gt;Pour ceux qui ne connaissent pas multipath, il s’agit d’un module de Linux qui permet de gérer les chemins multiples vers une même disque. On l’utilise sur des réseaux de stockage d’entreprises qui disposent de plusieurs niveaux de tolérance aux pannes.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/05/multipath01.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Chacun des chemins SAN menant à un même disque (LUN A sur le schéma ci dessus) sont indexés côté OS par leur propre &lt;em&gt;special device&lt;/em&gt; du type &lt;strong&gt;/dev/sd[n]&lt;/strong&gt; (4 chemins : sde, sdf, sdg et sdh dans l’exemple).&lt;/p&gt;
&lt;p&gt;On ne peut pas directement les utiliser puisqu’on utiliserait dans ce cas là qu’un seul des chemins disponibles. Et écrire en direct sur 2 chemins menant vers un même disque en même temps serait catastrophique.&lt;/p&gt;
&lt;p&gt;Heureusement, Multipath détecte de lui même (via l’UUID du disque) que les chemins sont en fait un même périphérique et créé pour nous un fichier spécial &lt;strong&gt;/dev/dm-[n]&lt;/strong&gt; qui permet de pointer vers le disque via l’ensemble de ses chemins.&lt;/p&gt;
&lt;h2 id="vérifier-le-plus-évident"&gt;Vérifier le plus évident
&lt;/h2&gt;&lt;p&gt;Initialement, l’anomalie n’était pas visible car les vérifications de l’état de multipath n’avaient été faites qu’avec le niveau de détail standard : les chemins sont bien déclarés, visibles et fonctionnels&amp;hellip; RAS de ce côté.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# multipath -l
mpath9 (36006016067302f00e4588d06345ee111)
[size=100 GB][features=&amp;#34;1 queue_if_no_path&amp;#34;][hwhandler=&amp;#34;1 emc&amp;#34;]
\_ round-robin 0 [active]
\_ 0:0:5:3 sdd 8:48 [active]
\_ 1:0:5:3 sdh 8:112 [active]
\_ round-robin 0 [enabled]
\_ 0:0:4:3 sdc 8:32 [active]
\_ 1:0:4:3 sdg 8:96 [active]
[…]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;De même les modules multipath étaient bien chargés dans le kernel :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# lsmod |grep dm
dm_mirror 32585 0
dm_round_robin 5185 1
dm_emc 7745 1
dm_multipath 22865 3 dm_round_robin,dm_emc
dm_mod 76585 7 dm_mirror,dm_multipath
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cependant, le démon multipathd qui permet de gérer les bascules de chemins est lui hors service&amp;hellip;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# service multipathd status
multipathd est arrêté
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ATTENTION : Le démarrage du démon multipath peut éventuellement provoquer une coupure des chemins, ce qui va planter le serveur et les traitements en cours. Il faut donc bien prendre garde que le serveur ne soit pas utilisé lors de son activation.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;chkconfig multipathd on
chkconfig --add multipathd
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="doublons-dans-les-user-friendly-device-names"&gt;Doublons dans les user-friendly device names
&lt;/h2&gt;&lt;p&gt;Une fois les problèmes basiques réglés, nous avons remarqué que le consultant en question ne s’était pas trop embêté avec les &lt;em&gt;user-friendly names&lt;/em&gt;. Voici ce que la commande suivante renvoyait :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# multipath -v2
remove: mpath9 (dup of mpath2)
mpath9: map in use
remove: mpath23 (dup of mpath2)
mpath23: map in use
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Bien que non bloquant, ceci est clairement peu élégant ;-).&lt;/p&gt;
&lt;p&gt;Comme je l’explique plus haut, multipath agrège les &lt;strong&gt;/dev/sd[n]&lt;/strong&gt; en un seul et unique &lt;strong&gt;/dev/dm-[n]&lt;/strong&gt;. Cependant, il est déconseillé d’utiliser directement le fichier &lt;strong&gt;/dev/dm-[n]&lt;/strong&gt;. En effet, tout comme les &lt;strong&gt;/dev/sd[n]&lt;/strong&gt; (que ce soit dans le cadre de multipath ou pas d’ailleurs), les fichiers &lt;strong&gt;/dev/dm-[n]&lt;/strong&gt; sont susceptibles de changer au cours de la vie du serveur ! De quoi avoir une mauvaise surprise après maintenance&amp;hellip;&lt;/p&gt;
&lt;p&gt;Pour résoudre ce problème, plusieurs solutions sont conseillées. Soit on utilise le WWID du disque qui est garanti unique, soit on utilise le device mapper qui transpose ce &lt;strong&gt;dm-[n]&lt;/strong&gt; un &lt;em&gt;user-friendly name&lt;/em&gt; du type &lt;strong&gt;/dev/mpath[n]&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Dans le cas présent, au gré de la migration, les WWID avaient générés plusieurs &lt;strong&gt;mpath&lt;/strong&gt; pour un même disque et il n’y avait plus de cohérence !&lt;/p&gt;
&lt;p&gt;Pour régler le problème, le plus simple est de couper toutes les applications, puis d’effacer la configuration (pas les données, hein, juste les chemins et la table de correspondance) pour repartir de zéro. On récupère les WWID de chaque disques, puis on supprime tous les chemins courants avec les commandes suivantes :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;multipath -ll #affiche les chemins et leurs informations
multipath -F #flush de tous les chemins enregistrés
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Une fois les chemins supprimés, il faut modifier le fichier de configuration &lt;strong&gt;/etc/multipath.conf&lt;/strong&gt; pour y ajouter en fin de fichier la déclaration des WWID à associer à des &lt;em&gt;friendly_names&lt;/em&gt; fixés manuellement :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[...]
multipaths {
multipath {
wwid &amp;#34;360060160da302f009cd38abe2f5ee111&amp;#34;
alias mpath0
}
multipath {
wwid &amp;#34;36006016067302f00e458ad06345ee111&amp;#34;
alias mpath2
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En enfin, on peut les réenregistrer à l’aide de la commande :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;multipath -v2
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="mode-alua-4pnr-1-pour-les-luns"&gt;Mode ALUA 4/PNR 1 pour les LUNs
&lt;/h2&gt;&lt;p&gt;Pour autant, la vraie cause de l’anomalie n’a pu être détectée que lorsque le mode de détails supérieur a été utilisé pour afficher les chemins (option -ll). Plusieurs messages d’erreurs relativement explicites se sont affichés, et notamment :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la mention &lt;em&gt;Path not correctly configured for failover&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;les chemins en &lt;em&gt;« [active][faulty] »&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;multipath -ll
Path not correctly configured for failover
Path not correctly configured for failover
Path not correctly configured for failover
Path not correctly configured for failover
mpath9 (36006016067302f00e4588d06345ee111)
[size=100 GB][features=&amp;#34;1 queue_if_no_path&amp;#34;][hwhandler=&amp;#34;1 emc&amp;#34;]
\_ round-robin 0 [active]
\_ 0:0:5:3 sdd 8:48 [active][faulty]
\_ 1:0:5:3 sdh 8:112 [active][faulty]
\_ round-robin 0 [enabled]
\_ 0:0:4:3 sdc 8:32 [active][faulty]
\_ 1:0:4:3 sdg 8:96 [active][faulty]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Après consultation de ressources en lignes et du « [Host Connectivity Guide for Linux][3] », il apparait que le mode « ALUA 4 actif actif» n’est pas supporté sur les serveurs Redhat Entreprise Linux 4. Il faut utiliser le mode « PNR 1 actif passif» qui lui est bien certifié.&lt;/p&gt;
&lt;p&gt;Dans notre cas, c’est pourtant bien ce mode « ALUA 4 » qui avait été déclaré côté baie EMC pour les chemins vers l’hôte. A l’inverse, la configuration qui avait été appliquée côté serveur était bien en mode « PNR 1 ». Il y avait donc une incohérence de ce côté-là.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/05/multipath02.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="changer-le-mode-des-luns-sur-une-baie-vnx"&gt;Changer le mode des LUNs sur une baie VNX
&lt;/h2&gt;&lt;p&gt;La modification du type de Failover pour un LUN donné peut se faire depuis la console Unisphere mais ce n’est pas évident à trouver !&lt;/p&gt;
&lt;p&gt;Une fois connecté, il faut choisir une des baies, ouvrir le menu « Hosts » puis « Host List ». Sélectionner le serveur concerné dans la liste, puis ouvrir l’onglet « Initiators » en bas de page.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/05/multipath03.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Sélectionner un port, puis cliquer sur « Edit », et reconfigurer les 4 chemins.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/05/multipath04.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Valider, et recommencer l’opération autant de fois que nécessaire.&lt;/p&gt;
&lt;h2 id="le-mot-de-la-fin"&gt;Le mot de la fin
&lt;/h2&gt;&lt;p&gt;Dans notre cas, beaucoup d’erreurs avaient été faites lors de la configuration des LUNs, de la baie de disques et de multipath. Ça donne donc un bon tour d’horizon des premières choses à vérifier si jamais votre multipath sous Linux fonctionne mal.&lt;/p&gt;
&lt;p&gt;Lorsque vous avez comme nous des baies EMC, j’aimerais insister sur le fait que le &lt;a class="link" href="https://web.archive.org/web/20190717113830/https://www.emc.com/collateral/TechnicalDocument/docu5128.pdf" target="_blank" rel="noopener"
&gt;Host Connectivity Guide for Linux (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt; est vraiment un document très important, qui vous aidera à correctement tout configurer. N’hésitez pas à le lire en détail !&lt;/p&gt;</description></item><item><title>NaviSecCLI pour piloter ses baies EMC² VNX depuis Linux</title><link>https://blog.zwindler.fr/2017/04/18/naviseccli-pour-piloter-ses-baies-emc-vnx-depuis-linux/</link><pubDate>Tue, 18 Apr 2017 11:35:31 +0000</pubDate><guid>https://blog.zwindler.fr/2017/04/18/naviseccli-pour-piloter-ses-baies-emc-vnx-depuis-linux/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/04/vnx5300-2.webp" alt="Featured image of post NaviSecCLI pour piloter ses baies EMC² VNX depuis Linux" /&gt;&lt;h2 id="naviseccli--à-quoi-bon-snapshoter-nos-luns-si-on-ne-peut-pas-le-scripter-"&gt;NaviSecCLI : à quoi bon snapshoter nos LUNs si on ne peut pas le scripter ?
&lt;/h2&gt;&lt;p&gt;Lorsque j’ai intégré mes premières baies EMC² VNX (lien mort, pas dispo sur Internet Archive) 5300 en 2012, on m’a présenté les avantages de la baies (et notamment la possibilité de réaliser des clones et des snapshots comme toutes les autres baies) , la première chose que j’ai demandé c’est « Oui mais est ce qu’on peut le scripter ». Et heureusement la réponse a été « Oui avec NaviCLI » (ou la version « sécurisée » NaviSecCLI).&lt;/p&gt;
&lt;p&gt;Note : Vous connaissez peut être NaviCLI (la CLI Navisphere) disponible sur les CLARiiON, sachez qu’elle a été remplacée par NaviSecCLI. La version non sécurisée ne fonctionnera pas sur les VNX mais rassurez vous, les commandes sont identiques !&lt;/p&gt;
&lt;p&gt;Quelques exemples de ce que j’avais en tête et que nous avons mis en production assez rapidement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Créer un script permettant de disposer d’une préproduction ISO-prod en terme de données, rafraichie toutes les semaines tout en limitant l’interruption pour la production ET la préproduction. Ce script par une brève coupure de la base de données de production pendant une fenêtre de maintenance, créé un snapshot de baie et monte la préproduction dessus&lt;/li&gt;
&lt;li&gt;Créer un script Nagios pour vérifier qu’il reste des RLP (Reserved LUN Pool) pour que les snapshots de la préproduction ne se bloquent pas en cas d’écriture intensive côté production (ou préproduction)&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/04/vnx5300.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Le but de cette procédure est de lister les étapes permettant d’installer la NaviSecCLI sur un serveur Redhat Entreprise Linux.&lt;/p&gt;
&lt;h2 id="installation"&gt;Installation
&lt;/h2&gt;&lt;p&gt;Pour une installation de la CLI sous Redhat, EMC² propose un RPM (c’est sympa de leur part). Enfin bon, encore faut il le trouver ! EMC² a vraiment du travail à faire pour simplifier la recherche de fichiers sur leur site&amp;hellip; Je ne me risquerais pas à vous fournir un lien, j’ai peur qu’il ne soit pas valide longtemps. Sachez qu’il faut trouver un fichier du type « NaviCLI-Linux-64-x86-xxx.rpm ».&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install NaviCLI-Linux-64-x86-en_US-7.32.0.5.54-1.x86_64.rpm #version compatible sur les RHEL 5
yum install NaviCLI-Linux-64-x86-en_US-7.33.3.0.72-1.x86_64.rpm #version nécessaire pour les RHEL 6
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Normalement, le RPM est assez basique et il y a peu de chance que l’opération échoue. Une fois installé, il faut ensuite sélectionner le niveau de sécurité que l’on souhaite appliquer sur le serveur en question. Pour être parfaitement honete, je ne suis pas complètement certain de comprendre les différence entre les deux niveaux proposés (moyen ou élevé). J’imagine qu’il s’agit probablement de paramètres disponibles pour assurer de la rétrocompatibilité avec des matériels plus anciens.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/opt/Navisphere/bin/setlevel_cli.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il faut ensuite rajouter des variables d’environnement dans le fichier .profile de &lt;strong&gt;l’utilisateur que l’on souhaite utiliser&lt;/strong&gt; pour lancer les scripts. Voici les lignes à intégrer dans un fichier (type .bashrc par exemple si l’utilisateur utilise bash comme interpréteur de commandes)&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;PATH=/usr/sbin:$PATH:/sbin:/home/root:/opt/Navisphere/bin
SHLIB_PATH=$SHLIB_PATH:/opt/Navisphere/lib/seccli
NAVI_SECCLI_CONF=$NAVI_SECCLI_CONF:/opt/Navisphere/seccli
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Enfin, toujours sur le même utilisateur, il faut initialiser un fichier de sécurité (certificat) qui permettra de ne pas spécifier en clair les mots de passes des baies (dans un script, par exemple) à chaque utilisation&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;naviseccli -user admin_de_la_baie -password passwordpassecure -scope 0 -AddUserSecurity
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pour tester si NavisecCLI peut adresser la baie sans mettre le user/password. Le contrôleur interrogé renverra des informations :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;naviseccli –h 10.1.1.10 getagent
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="aller-plus-loin"&gt;Aller plus loin
&lt;/h2&gt;&lt;p&gt;Et bien maintenant il ne vous reste plus qu’à écrire vos scripts ! L’ensemble des commandes disponibles sont listées dans ce guide d’utilisation disponible &lt;a class="link" href="https://web.archive.org/web/20150724000538/http://www.emc.com/collateral/support-training/support/069001038-navisphere-cli.pdf" target="_blank" rel="noopener"
&gt;sur le site d’EMC (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vous voulez un exemple de script utilisant la NaviSecCLI pour surveiller le nombre de RLP encore disponible et compatible avec Nagios, je vous invite &lt;a class="link" href="https://github.com/zwindler/check_emc_rlp" target="_blank" rel="noopener"
&gt;sur mon Github check_emc_rlp.pl&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Configuration multipath ALUA 4 / PNR 1 sur EMC VNX pour RedHat 4</title><link>https://blog.zwindler.fr/2015/11/07/configuration-multipath-alua-4-pnr-1-sur-emc-vnx-pour-redhat-4/</link><pubDate>Sat, 07 Nov 2015 11:30:18 +0000</pubDate><guid>https://blog.zwindler.fr/2015/11/07/configuration-multipath-alua-4-pnr-1-sur-emc-vnx-pour-redhat-4/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/10/vnx5300.webp" alt="Featured image of post Configuration multipath ALUA 4 / PNR 1 sur EMC VNX pour RedHat 4" /&gt;&lt;p&gt;Suite à une migration de baies HP EVA vers des EMC² VNX, une partie de mes vieux serveurs Linux m’ont générés quelques incidents, suite à la modification de la configuration multipath consécutive à cette migration.&lt;/p&gt;
&lt;p&gt;Lors d’une coupure d’un chemin (notamment lors de la mise à jour d’un &lt;em&gt;Service Processor&lt;/em&gt; par exemple), les E/S sur les disques SAN se bloquaient sur certains serveurs Linux, induisant un empilement des traitements (et donc du load average) jusqu’à bloquer l’accès au serveur et planter les procédures en cours.&lt;/p&gt;
&lt;p&gt;Les causes de ces dysfonctionnements étaient multiples. Voilà ce que j’ai repéré sur les serveurs lors de mes investigations.&lt;/p&gt;
&lt;h2 id="symptômes"&gt;Symptômes
&lt;/h2&gt;&lt;h3 id="doublons-dans-les-friendly_names"&gt;Doublons dans les friendly_names
&lt;/h3&gt;&lt;p&gt;Lorsque la migration a été faite, nous nous sommes appuyés sur le fait que nos volumes étaient répartis sur des miroirs LVM pour rendre la migration transparente. Les données ont été copiées sur un 3ème membre de miroir sur la nouvelle baie, puis un membre a été retiré sur l’ancienne baie. Et ainsi de suite jusqu’à ce que le miroir ne soit plus que sur les nouvelles baies.&lt;/p&gt;
&lt;p&gt;Cependant, lorsque cette opération a été réalisée, l’OS s’est mélangé les pinceaux. Pour lui, il y avait eu plusieurs devices mpath bien distincts qui ont pourtant le même friendly_name.&lt;/p&gt;
&lt;p&gt;Lors de la découverte des chemins multipaths à l’aide de la commande suivante, des messages d’erreur faisant état de doublons dans les noms mpathX s’affichaient :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# multipath -v2
remove: mpath9 (dup of mpath1)
mpath9: map in use
remove: mpath13 (dup of mpath2)
mpath13: map in use
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="mode-alua-4--pnr-1-pour-les-luns"&gt;Mode ALUA 4 / PNR 1 pour les LUNs
&lt;/h3&gt;&lt;p&gt;Plus grave, lorsque le mode de détail supérieur est utilisé pour afficher les chemins (multipath -ll), de nombreux messages d’erreurs s’affichent !&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;multipath -ll
Path not correctly configured for failoverPath not correctly configured for failoverPath not correctly configured for failoverPath not correctly configured for failovermpath9 (36006016067302f00e4588d06345ee111)
[size=100 GB][features=&amp;#34;1 queue_if_no_path&amp;#34;][hwhandler=&amp;#34;1 emc&amp;#34;]
\_ round-robin 0 [active]
\_ 0:0:5:3 sdd 8:48 [active][faulty]
\_ 1:0:5:3 sdh 8:112 [active][faulty]
\_ round-robin 0 [enabled]
\_ 0:0:4:3 sdc 8:32 [active][faulty]
\_ 1:0:4:3 sdg 8:96 [active][faulty]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;On remarque les erreurs en début de commande &lt;em&gt;Path not correctly configured for failover&lt;/em&gt; et surtout le fait que le chemin soit &lt;em&gt;[active][faulty]&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Après consultation de ressources en lignes et du « &lt;a class="link" href="https://web.archive.org/web/20190806192128/https://www.emc.com/collateral/TechnicalDocument/docu5128.pdf" target="_blank" rel="noopener"
&gt;EMC Host Connectivity Guide for Linux&lt;/a&gt; » (lien mort, j&amp;rsquo;utilise Internet Archive), il semblerait que le mode « ALUA 4 actif actif» ne soit pas (totalement) supporté sur les serveurs Redhat Entreprise Linux 4, ce qui est exactement la version de mes serveurs Linux.&lt;/p&gt;
&lt;p&gt;Il faut utiliser le mode « PNR 1 actif passif» qui lui est bien certifié.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/10/02_Correction_Configuration_Multipath.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Après vérification, c’est pourtant bien ce mode « ALUA 4 » qui a été déclaré dans la baie EMC pour les chemins vers l’hôte au niveau du &lt;em&gt;Failover Mode&lt;/em&gt;. On a là la première cause du dysfonctionnement.&lt;/p&gt;
&lt;h3 id="démon-multipathd"&gt;Démon multipathd
&lt;/h3&gt;&lt;p&gt;Les chemins étaient bien déclarés, visibles et fonctionnels, les modules multipath étaient bien chargés dans le kernel :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# multipath -l
mpath9 (36006016067302xxxx4588d06345ee111)
[size=100 GB][features=&amp;#34;1 queue_if_no_path&amp;#34;][hwhandler=&amp;#34;1 emc&amp;#34;]
_ round-robin 0 [active]
_ 0:0:5:3 sdd 8:48 [active]
_ 1:0:5:3 sdh 8:112 [active]
_ round-robin 0 [enabled]
_ 0:0:4:3 sdc 8:32 [active]
_ 1:0:4:3 sdg 8:96 [active]
[...]
# lsmod |grep dm
dm_mirror 32585 0
dm_round_robin 5185 1
dm_emc 7745 1
dm_multipath 22865 3 dm_round_robin,dm_emc
dm_mod 76585 7 dm_mirror,dm_multipath
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cependant, le démon &lt;strong&gt;multipathd&lt;/strong&gt; qui permet de gérer les bascules de chemins était lui hors service, ce qui est la seconde cause du non fonctionnement des bascules.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# service multipathd status
multipathd est arrêté
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="modification-de-la-configuration-pour-correction"&gt;Modification de la configuration pour correction
&lt;/h2&gt;&lt;p&gt;Idéalement pour toutes ces corrections, le serveur doit être non sollicités, les applications arrêtées. Les modifications qui sont effectuées peuvent très probablement avoir un impact sur les traitements en cours.&lt;/p&gt;
&lt;h3 id="doublons-dans-les-friendly_names-1"&gt;Doublons dans les friendly_names
&lt;/h3&gt;&lt;p&gt;Pour résoudre le problème des doublons dans les friendly_names, il faut commencer récupérer les WWID de chaque disques, puis supprimer tous les chemins avec les commandes suivante :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;multipath -l #affiche les chemins et leurs informations
multipath -F #flush de tous les chemins enregistrés
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Une fois les chemins supprimés, il faut modifier le fichier de configuration &lt;strong&gt;/etc/multipath.conf&lt;/strong&gt; pour y ajouter en fin de fichier la déclaration des WWID à associer à des friendly_names fixes :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;multipaths {
multipath {
wwid &amp;#34;360060160da302fxxxxd388be2f5ee111&amp;#34;
alias mpath0
}
multipath {
wwid &amp;#34;36006016067302fxxxx588d06345ee111&amp;#34;
alias mpath1
}
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Réenregistrer les chemins à l’aide de la commande :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# multipath -v2
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="mode-alua-pour-les-luns"&gt;Mode ALUA pour les LUNs
&lt;/h3&gt;&lt;p&gt;Pour modifier le mode de configuration des LUNs, il faut se connecter sur la console Unisphere des baies de disques.&lt;/p&gt;
&lt;p&gt;Une fois connecté, il faut ouvrir choisir une des baies, ouvrir le menu « Hosts » puis « Host List »&lt;/p&gt;
&lt;p&gt;Sélectionner le serveur concerné dans la liste, puis ouvrir l’onglet « Initiators » en bas de page.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/10/03_Correction_Configuration_Multipath.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Sélectionner un port, puis cliquer sur « Edit », et reconfigurer les 4 chemins.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/10/04_Correction_Configuration_Multipath.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Valider, et recommencer l’opération sur l’autre baie de disques.&lt;/p&gt;
&lt;h3 id="démon-multipathd-1"&gt;Démon multipathd
&lt;/h3&gt;&lt;p&gt;ATTENTION : Le démarrage du démon multipath peut éventuellement provoquer une coupure des chemins, ce qui va planter le serveur et les traitements en cours s’il y en a. Il faut donc bien prendre garde que le serveur n’est plus utilisé lors de son activation.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;chkconfig multipathd on
chkconfig --add multipathd
reboot #éventuellement
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A partir de là, tout devrait revenir à la normale. En cas de coupure d’un chemin, multipathd se chargera de basculer sur un autre chemin (passif) et cela fonctionnera car nous sommes en mode PNR 1, qui est supporté sous RHEL 4.&lt;/p&gt;
&lt;h2 id="retour-arrière"&gt;Retour arrière
&lt;/h2&gt;&lt;p&gt;Si pour une raison ou pour une autre la correction des anomalies ne se passaient pas comme elle le devrait, je vous laisse également quelques instructions provenant de mon plan de retour arrière.&lt;/p&gt;
&lt;h3 id="doublons-dans-les-friendly_names-2"&gt;Doublons dans les friendly_names
&lt;/h3&gt;&lt;p&gt;Pas de procédure de retour arrière à proprement parlé. Une fois que les chemins ont été détruits puis reconfigurés, il ne devrait pas y avoir de problèmes.&lt;/p&gt;
&lt;p&gt;On peut néanmoins revenir sur le fichier de configuration ne prenant pas en compte les nouveaux &lt;strong&gt;friendly_names&lt;/strong&gt; déclarés&lt;/p&gt;
&lt;h3 id="mode-alua-pour-les-luns-1"&gt;Mode ALUA pour les LUNs
&lt;/h3&gt;&lt;p&gt;Retourner sur les baies de disques, et repasser l’ensemble des chemins en mode « ALUA 4 » avec la même procédure que plus haut.&lt;/p&gt;
&lt;h3 id="démon-multipathd-2"&gt;Démon multipathd
&lt;/h3&gt;&lt;p&gt;Dans le cas où un retour arrière est nécessaire, il suffit de passer les commandes suivantes pour désactiver multipathd :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;chkconfig multipathd off
chkconfig --del multipathd
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>