Message “Found duplicate PV” avec LVM Multipath

Pour chaque commande LVM, le message suivant apparait :

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

> sudo pvs
  Found duplicate PV Xa9xfCvs7dFDA0BfEK1PNcTvGelaX3pP: using /dev/sdct1 not /dev/sdag1
  Found duplicate PV ZfR6I4WYbqsMQerN6dE1YW9rRLUAwF9q: using /dev/sddj1 not /dev/sdax1
  Found duplicate PV ZfR6I4WYbqsMQerN6dE1YW9rRLUAwF9q: using /dev/sddz1 not /dev/sddj1
  Found duplicate PV 1FcmTqMvG19RM2i3ByzZcuiIrhHbSohM: using /dev/sdbo1 not /dev/sddy1

[/pastacode]

Selon l’équipe Redhat :

“Un filtre peut être configuré dans /etc/lvm/lvm.conf pour limiter les périphériques que LVM va rechercher les métadonnées. Le filtre est une liste de motifs qui sera appliqué à chaque périphérique trouvé par un balayage de /dev (ou le répertoire spécifié par le mot-clé dir dans lvm.conf).Les motifs sont des expressions régulières délimitée par n’importe quel caractère et précédée d’un a(pour accepter) ou r (pour le rejet). La liste est parcourue dans l’ordre, et la première expression régulière qui correspond à un périphérique détermine si le périphérique sera accepté ou rejeté (ignoré). Les périphériques qui ne correspondent à aucun motif sont acceptés.

Ce filtre devrait comporter tous les périphériques qui doivent être vérifiés pour des métadonnées LVM, tel que le disque dur local avec le volume root (/) sur elle et tous les périphériques multipath. En rejetant les chemins sous-jacents d’un périphérique multipath (tel que /dev/sdb, /dev/sdd, etc), vous pouvez éviter ces avertissements PV en double, puisque chaque zone unique de métadonnées ne sera trouvée qu`une seule fois sur le périphérique multipath.

Cause
Avec la configuration par défaut, les commandes LVM recherche les périphériques dans /dev, et vérifie tous les périphériques qui en résulte pour vérifier s`ils contiennent des métadonnées LVM . Ceci est causé par le filtre par défaut de /etc/lvm/lvm.conf :

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

filter = [ "a/.*/" ]

[/pastacode]

Lors de l’utilisation de device-mapper-multipath ou tout autre logiciel multipath tels que EMC PowerPath ou Hitachi Dynamic Link Manager (HDLM), chaque chemin d’un numéro d’unité logique particulière (LUN) est enregistré comme un périphérique SCSI différent, tel que /dev/sdb, /dev/sdc, et ainsi de suite.Le logiciel multipath va alors créer un nouveau périphérique qui correspond à ces chemins individuels, tels que /dev/mapper/mpath1 ou /dev/mapper/mpatha pour device-mapper-multipath, /dev/emcpowera pour EMC PowerPath, ou /dev/sddlmab pour Hitachi HDLM.Comme chaque LUN a de multiples périphérique dans /dev qui pointent vers les mêmes données sous-jacentes, ils contiennent toutes les mêmes métadonnées LVM et donc les commandes LVM trouveront les mêmes métadonnées à plusieurs reprises et les signaleront comme des doublons.

Ces messages ne sont que des avertissements et ne signifient pas que l’opération LVM a échoué.Au contraire, ils sont prévienne l’utilisateur qu’un seul des périphériques a été utilisé en tant que volume physique et les autres sont ignorés.Pour éviter cette situation, un filtre doit être appliqué pour rechercher uniquement les périphériques nécessaires (volumes physiques) , et de laisser de côté tous les autres chemins sous-jacents aux périphériques multipath.

Modification du filtre LVM  (/etc/lvm/lvm.conf)

Exemples :

  • accepter la partition /dev/sda1 /dev/sda2 et tous les disques device-mapper-multipath et rejeter les restes.

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

filter = [ "a|/dev/sda[12]|", "a|/dev/mapper/mpath.*|", "r|.*|" ]

[/pastacode]

  • accepter tous les partitions d’un disque IDE  /dev/sda2 et tous les disques device-mapper-multipath puis rejeter les restes.

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

filter = [ "a|/dev/hda.*|", "a|/dev/mapper/mpath.*|", "r|.*|" ]

[/pastacode]

A chaque modification du filtre, pour vailder il est nécessaire de vérifier qu’il n’y pas de disque absent.

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

# pvscan
# vgscan

[/pastacode]

Le filtre peut être aussi tester à la voler sans modifier le fichier /etc/lvm/lvm.conf en ajoutant l’argument “–config” à chaque commande LVM. L’ajout de cet argument ne chnagera pas la configuration.

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

# lvs --config 'devices{ filter = [ "a|/dev/emcpower.*|", "r|.*|" ] }'

[/pastacode]

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *