Le problème
Les commandes LVM signalent les noms de VG en double. Lorsque vgdisplay est exécuté pour vérifier l'espace libre, le message suivant est reçu :
# vgdisplay WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU
La cause première
Vous trouverez ci-dessous quelques-unes des modifications pouvant entraîner ce problème :
1. Certaines modifications ont été apportées à la configuration LVM, comme l'ajout d'un nouveau LUN à partir du SAN qui était auparavant utilisé comme LVM sur un autre système mis hors service et a été ajouté au nouveau système sans nettoyage approprié du côté SAN et a des métadonnées précédentes.
2. Un nouveau VG a été créé en utilisant le même nom qui existe déjà sur le système.
Les messages "WARNING:Duplicate VG name" des commandes LVM indiquent que plusieurs groupes de volumes indépendants ont été découverts avec le même nom lors de l'analyse. Ce problème n'est pas une indication d'un filtre incorrect et n'est pas le résultat de l'utilisation de multipath. Le message d'avertissement ici indique spécifiquement que deux groupes de volumes existent avec des UUID différents mais le même nom. Étant donné que LVM est incapable d'activer deux groupes de volumes portant le même nom, il en choisit un (en commençant par celui dont creation_host correspond au nom d'hôte local) et l'active.
Remarque :Pour plus d'informations sur un problème similaire où un périphérique de stockage cloné entraîne un doublon de VG avec le même UUID, nous devons suivre les étapes ci-dessous et la procédure est différente.
vgimportclone [-n|--basevgname VolumeGroupName] [-i|--import] PhysicalVolume [PhysicalVolume...]
Par exemple :
# vgimportclone --basevgname test_vg_snap /dev/loop2 /dev/loop3
Ce message est uniquement spécifique aux situations dans lesquelles le VG en double contient un UUID différent (c'est-à-dire qu'il n'est pas un clone).
Étapes de diagnostic
Dans ces situations, vous devrez généralement déterminer quel périphérique et/ou UUID correspond au groupe de volumes "d'origine" et lequel correspond au groupe de volumes "dupliqué". Vous ne pouvez pas simplement utiliser vgdisplay ou lvs pour obtenir des informations sur chaque groupe de volumes, car ils ne pourront pas déterminer le groupe de volumes que vous demandez et choisiront simplement l'un d'entre eux sur lequel opérer. Par exemple, pour voir les volumes logiques dans les deux groupes de volumes de test, il n'est pas possible d'utiliser uniquement lvs :
# lvs testvg2 WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU LV VG Attr LSize Origin Snap% Move Log Copy% Convert test_lv testvg2 -wi--- 2.00G
Il n'affiche que les LV dans le VG qu'il choisit.
Afin d'afficher des informations sur chaque groupe de volumes individuel, nous pouvons utiliser un filtre sur la ligne de commande. Tout d'abord, nous devons déterminer quels périphériques se trouvent dans chaque groupe de volumes :
# pvs WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU PV VG Fmt Attr PSize PFree /dev/xvda2 VolGroup00 lvm2 a- 14.88G 0 /dev/xvdb VolGroup00 lvm2 a- 9.97G 4.97G /dev/xvdc testvg1 lvm2 a- 5.00G 1020.00M /dev/xvdd testvg2 lvm2 a- 5.00G 3.00G /dev/xvde testvg2 lvm2 a- 5.00G 3.00G
Nous savons maintenant que xvdd et xvde hébergent les deux VG testvg2 différents. Examinons chaque volume logique pour nous aider à déterminer :
# lvs testvg2 --config 'devices { filter = [ "a|/dev/xvdd|", "r|.*|" ]}' LV VG Attr LSize Origin Snap% Move Log Copy% Convert test_lv testvg2 -wi--- 2.00G
# lvs testvg2 --config 'devices { filter = [ "a|/dev/xvde|", "r|.*|" ]}' LV VG Attr LSize Origin Snap% Move Log Copy% Convert test_lv testvg2 -wi-a- 2.00G
Une fois que nous savons sur lequel des VG en double nous souhaitons nous concentrer, nous pouvons trouver l'UUID pour ce VG :
# vgs -o +vg_uuid --config 'devices { filter = [ "a|/dev/xvde|", "r|.*|" ]}' VG #PV #LV #SN Attr VSize VFree VG UUID testvg2 1 1 0 wz--n- 5.00G 3.00G q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU
Nous pouvons maintenant utiliser cet UUID dans les étapes de la section Solution ci-dessous.
La solution
REMARQUE :Il est toujours conseillé de faire une sauvegarde complète des systèmes de fichiers pour tous les PV, VG et LV avant de mettre en œuvre ce processus.La solution appropriée à ce problème dépend de la raison pour laquelle le doublon est présenté. Lisez les sections Cause racine et Étapes de diagnostic ci-dessus pour plus d'informations.
Si le périphérique contenant le nom VG en double a été accidentellement présenté à cet hôte (c'est-à-dire un zonage incorrect), il suffit de le retirer de l'hôte. Une fois qu'il est parti, le problème de groupe de volumes en double ne sera plus visible.
Si un périphérique a été présenté à l'hôte qui avait un nom VG en double sur un volume déjà sur cet hôte, alors le doublon devra être renommé afin d'éviter tout conflit. Le changement de nom peut être fait en utilisant l'UUID :
1. Déterminez l'UUID du groupe de volumes que vous souhaitez renommer :
# vgs -o +vg_uuid WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU WARNING: Duplicate VG name testvg2: Existing q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU (created here) takes precedence over OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU WARNING: Duplicate VG name testvg2: Existing q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU (created here) takes precedence over OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 VG #PV #LV #SN Attr VSize VFree VG UUID VolGroup00 2 2 0 wz--n- 24.84G 4.97G KtK3ij-lkQH-tbB3-s74h-FYBl-73cu-jg86EX testvg1 1 1 0 wz--n- 5.00G 1020.00M oME1Wk-ftRi-qhQq-wQ6Z-eUo3-SNZw-chUfAx testvg2 1 1 0 wz--n- 5.00G 3.00G q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU testvg2 1 1 0 wz--n- 5.00G 3.00G OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5Remarque :Pour des étapes supplémentaires pour aider à déterminer sur quel UUID opérer, voir les étapes de diagnostic ci-dessus ci-dessous.
2. Une fois que vous avez l'UUID, vous pouvez renommer le groupe de volumes en utilisant vgrename :
# vgrename q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU testvg WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU WARNING: Duplicate VG name testvg2: Existing OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 (created here) takes precedence over q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU WARNING: Duplicate VG name testvg2: Existing q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU (created here) takes precedence over OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5 Volume group "testvg2" successfully renamed to "testvg"
3. Activez le nouveau groupe de volumes.
# vgchange -ay testvg 1 logical volume(s) in volume group "testvg" now active
4. Vérifiez le groupe de volumes.
# vgs -o +vg_uuid VG #PV #LV #SN Attr VSize VFree VG UUID VolGroup00 2 2 0 wz--n- 24.84G 4.97G KtK3ij-lkQH-tbB3-s74h-FYBl-73cu-jg86EX testvg 1 1 0 wz--n- 5.00G 3.00G q7jsuu-f3f8-mVVu-HpMm-FXdK-Xe3Y-d2nVfU testvg1 1 1 0 wz--n- 5.00G 1020.00M oME1Wk-ftRi-qhQq-wQ6Z-eUo3-SNZw-chUfAx testvg2 1 1 0 wz--n- 5.00G 3.00G OEsLyZ-ueap-D66F-6LEB-BKqC-A5B1-exlfZ5