<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Credstore_admin.pl on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/credstore_admin.pl/</link><description>Recent content in Credstore_admin.pl 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/credstore_admin.pl/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>Erreur hpssaduesxi et esxcli depuis vSphere 6</title><link>https://blog.zwindler.fr/2016/01/30/erreur-hpssaduesxi-esxcli-vsphere-6/</link><pubDate>Sat, 30 Jan 2016 14:00:16 +0000</pubDate><guid>https://blog.zwindler.fr/2016/01/30/erreur-hpssaduesxi-esxcli-vsphere-6/</guid><description>&lt;img src="https://blog.zwindler.fr/2016/01/VSA-StoreVirtual-1.webp" alt="Featured image of post Erreur hpssaduesxi et esxcli depuis vSphere 6" /&gt;&lt;h2 id="contexte"&gt;Contexte
&lt;/h2&gt;&lt;p&gt;J’ai eu une petite mésaventure avec mes amis d’HP lors d’un incident sur une plateforme HP VSA storeVirtual et j’ai perdu pas mal de temps avec l’utilitaire &lt;strong&gt;hpssaduesxi&lt;/strong&gt; qui ne fonctionnait pas.&lt;/p&gt;
&lt;p&gt;Rapidement pour ceux qui ne savent pas de quoi il s’agit, c’est le pendant virtuel de la solution de virtualisation du stockage HP LeftHand (appliances physiques).&lt;/p&gt;
&lt;p&gt;Vos nœuds de &lt;em&gt;compute&lt;/em&gt; (hyperviseurs) ESXi ou Hyper-V distribuent la totalité du stockage interne ou DAS (ou autre) à une machine virtuelle (HP VSA, 1 pour chaque serveur). Elles se coordonnent ensuite en cluster pour vous fournir un espace de stockage réparti sur tous vos serveurs. Cela permet entre autre d’obtenir à moindre cout du stockage hautement disponible et scalable.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/01/VSA-StoreVirtual-1.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Je reviendrais peut être là dessus dans un autre article.&lt;/p&gt;
&lt;h2 id="hpssaduesxi-esxcli-et-vsphere-6"&gt;hpssaduesxi, esxcli et vSphere 6
&lt;/h2&gt;&lt;p&gt;Comme je le dis en introduction, j’ai eu incident lié au stockage après l’intégration de ma plateforme HP VSA et j’ai donc du ouvrir un ticket auprès de mon support HP.&lt;/p&gt;
&lt;p&gt;Sans surprise, la première chose qu’on m’a demandé de faire pour pouvoir traiter ma demande était de collecter les logs de la carte RAID des serveurs ESXi concernés (rapport ADU de son petit nom). Si vous êtes familier des serveurs HP, vous savez qu’un des moyens de récupérer ces informations est de lancer l’utilitaire &lt;strong&gt;hpssadu&lt;/strong&gt;, présent sur les différents OS lorsque vous installez les pilotes HP Smart Storage.&lt;/p&gt;
&lt;p&gt;Dans mon cas, on m’a demandé de réaliser cet extrait de configuration et de logs à partir d’un serveur Microsoft ayant accès aux serveurs et la CLI VMware d’installée.&lt;/p&gt;
&lt;p&gt;Ok, pas de soucis, le technicien me donne la procédure. J’installe la dernière version de la CLI trouvée sur le site de VMware (lien mort, comme tout chez VMware), j’installe le « &lt;em&gt;HP Smart Storage Administrator Diagnostic Utility (HP SSADU) CLI&lt;/em&gt;« .&lt;/p&gt;
&lt;p&gt;Anecdote amusante : le technicien &lt;strong&gt;&lt;em&gt;HP&lt;/em&gt;&lt;/strong&gt; me donne le lien pour la CLI &lt;em&gt;VMware&lt;/em&gt;, mais pas le lien pour le logiciel de sa propre entreprise&amp;hellip; Et quand on connait un peu les méandres du site d’HP (surtout en pleine scission Hewlett Parkard vs HPe) c’est très drôle. Peut être que lui non plus ne sait pas où il est ? Pour vous éviter des sueurs froides et des accès de rage, &lt;a class="link" href="http://h20564.www2.hpe.com/hpsc/swd/public/detail?swItemId=MTX_98b4bd5f4ffb4a59bc17709594&amp;amp;swEnvOid=4168" target="_blank" rel="noopener"
&gt;il est ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L’étape d’après consiste à installer la CLI, &lt;strong&gt;PUIS&lt;/strong&gt; de copier le binaire &lt;strong&gt;hpssaduesxi.exe&lt;/strong&gt; dans le dossier C:\Program Files (x86)\VMware\VMware vSphere CLI\bin (installation par défaut de la CLI vSphere). A quoi bon l’installer alors, si c’est pour le copier à la main ? Mais bon, passons ces détails insignifiants ;-). **&lt;br&gt;
**&lt;/p&gt;
&lt;p&gt;Et c’est bon, le technicien est formel, ça devrait marcher maintenant : vous pouvez extraire votre rapport ADU en tapant la commande suivante dans un prompt (cmd ou PowerShell) dans le bon dossier.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;C:\Program Files (x86)\VMware\VMware vSphere CLI\bin&amp;gt; hpssaduesxi.exe --server=[ip_serveur] --user=root --password=[password] report.zip
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Coup de théâtre : ça ne fonctionne pas.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/01/hpssaduesxi2.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Retrieving report...
HPSSADUESXI requires the use of the vSphere CLI (esxcli) client
application. Make certain that this client has been installed
and is available from this directory. If vSphere CLI has been
installed, check the correctness of the inputted parameters.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mieux, aucun des techniciens que j’ai eu chez HP ne savait pourquoi. Le niveau 1 je peux comprendre. Mais le plateau entier de niveau 2 ?&lt;/p&gt;
&lt;p&gt;A force de perdre du temps, j’ai essayé de générer le rapport ADU directement sur les ESXi.&lt;/p&gt;
&lt;p&gt;Mais bien sûr, ça ne fonctionne pas. C’est la raison pour laquelle le rapport ADU doit être généré sur un serveur Windows depuis &lt;strong&gt;hpssaduesxi.exe&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="solution"&gt;Solution
&lt;/h2&gt;&lt;p&gt;En fait, sans trop de surprises, &lt;strong&gt;hpssaduesxi&lt;/strong&gt; n’est qu’une surcouche à &lt;strong&gt;esxcli&lt;/strong&gt;. Et du coup l’erreur est tout de suite apparue lorsque j’ai essayé simplement de me connecter en &lt;strong&gt;esxcli&lt;/strong&gt; aux serveurs VMware.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/01/esxcli2.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;C:\Program Files (x86)\VMware\VMware vSphere CLI\bin&amp;gt; esxcli.exe --server=[ip_serveur] --user=root --password=[password]
Connect to [ip_serveur] failed. Server SHA-1 thumbprint: BD:F9:D9:40:35:77:E9:AA:8F:BC:04:42:97:AA:A7:4E:AA:E5:BB:4D (not trusted).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le problème vient du fait que depuis la version 6, VMware a renforcé la sécurité et qu’on ne peut plus « ignorer » les certificats qui ne sont pas acceptés. Tout est expliqué ici (lien mort, comme tout chez VMware).&lt;/p&gt;
&lt;p&gt;Le site de VMware donne plusieurs solutions, notamment celle d’ajouter le certificat du vCenter comme autorité de certification dans le serveur Windows. Je n’ai malheureusement pas réussi à faire fonctionner cette solution, qui est pourtant selon moi la meilleure.&lt;/p&gt;
&lt;p&gt;En revanche, j’ai réussi à faire fonctionner &lt;strong&gt;esxcli&lt;/strong&gt; et par conséquent &lt;strong&gt;hpssaducli&lt;/strong&gt; en ajoutant l&amp;rsquo;empreinte SHA-1 de mes serveurs ESXi dans le « credstore », à l’aide de la commande suivante sur le serveur Windows :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;C:\Program Files (x86)\VMware\VMware vSphere CLI\Perl\apps\general&amp;gt; credstore_admin.pl add --server [ip_serveur] --thumbprint BD:F9:D9:40:35:77:E9:AA:8F:BC:04:42:97:AA:A7:4E:AA:E5:BB:4D
PS C:\Program Files (x86)\VMware\VMware vSphere CLI\bin&amp;gt; .\hpssaduesxi.exe --server=[ip_serveur] --user=root --password=[mdp] report_esxi.zip
Retrieving report... Decoding... report_esxi.zip saved.
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="mot-de-la-fin"&gt;Mot de la fin
&lt;/h2&gt;&lt;p&gt;Je suis vraiment dépité que personne chez HP ne se soit posé la question de l’impact que ça avait sur leur binaire et que personne n’ait mis à jour la documentation fournie au support pour indiquer la marche à suivre en cas d’erreur !&lt;/p&gt;
&lt;p&gt;J’espère être mal tombé et que ce problème est connu chez HP, car le fait que ça ait été à moi de leur trouver la réponse me dépasse&amp;hellip;&lt;/p&gt;</description></item></channel></rss>