GNU/Linux >> Tutoriels Linux >  >> Linux

Corruption des métadonnées LVM VG avec « erreur de somme de contrôle »

Le problème

Des "erreurs de somme de contrôle" sont signalées lors de l'exécution de commandes LVM sur le serveur CentOS/RHEL.

# vgs
 /dev/mapper/cx0009_lun45: Checksum error
 /dev/mapper/cx0009_lun48: Checksum error
 VG #PV #LV #SN Attr VSize VFree 
 vg00 1 7 0 wz--n- 279.12G 159.12G
 vgcommrmandb 1 6 0 wz--n- 20.00G 44.00M
 vgcotsoracle 1 1 0 wz--n- 20.00G 4.00M
 vgcotsorapit 1 1 0 wz--n- 50.00G 4.00M
...
# lvs
 /dev/mapper/cx0009_lun45: Checksum error
 /dev/mapper/cx0009_lun48: Checksum error
 LV VG Attr LSize Origin Snap% Move Log Copy% Convert
 crashvol vg00 -wi-ao 64.00G 
 homevol vg00 -wi-ao 4.00G 
 oemagentvol vg00 -wi-ao 10.00G 
 rootvol vg00 -wi-ao 10.00G 
 swapvol vg00 -wi-ao 16.00G 
 tmpvol vg00 -wi-ao 8.00G 
...
# pvs
 /dev/mapper/cx0009_lun45: Checksum error
 /dev/mapper/cx0009_lun48: Checksum error
 PV VG Fmt Attr PSize PFree 
 /dev/cciss/c0d0p2 vg00 lvm2 a-- 279.12G 159.12G
 /dev/mapper/cx0008_lun37 vgeflxwmq lvm2 a-- 5.00G 1.00G
 /dev/mapper/cx0009_lun30 vgeflxjvastb lvm2 a-- 40.00G 8.04G
 /dev/mapper/cx0009_lun31 vgeflxhdb1arch lvm2 a-- 60.00G 20.00M

Solution

Une somme de contrôle est stockée dans les métadonnées LVM2 afin que la présence de corruption puisse être détectée avant que les données ne puissent être réellement endommagées. Ce problème se produit généralement lorsque cette somme de contrôle ne correspond pas à une somme de contrôle calculée après le traitement des métadonnées.

Il peut y avoir de nombreuses causes différentes de l'erreur de somme de contrôle, dont certaines sont les suivantes :

  1. Si 2 hôtes tentent indépendamment de mettre à jour les métadonnées LVM2 en même temps (c'est-à-dire comme une situation de cluster) et que LVM en cluster (clvm) n'est pas utilisé.
  2. Erreurs d'E/S qui se produisent lors de la mise à jour des métadonnées (les mises à jour LVM2 ne sont pas journalisées, les interruptions des mises à jour d'E/S peuvent donc entraîner une corruption).
  3. Il existe un problème dans l'environnement SAN au cas où les chemins sous-jacents proviendraient du SAN.

Afin de résoudre cette erreur, suivez les étapes ci-dessous :

1. Sauvegardez toutes vos données sur les volumes logiques.

2. Arrêtez tous les services contenant des ressources LVM (afin que les volumes puissent être démontés et les groupes de volumes désactivés). Le service ne doit s'exécuter sur aucun nœud du cluster (si l'erreur est signalée sur le cluster).

3. Restaurez les métadonnées à l'aide de la commande 'vgcfgrestore ‘. Les fichiers de sauvegarde des métadonnées LVM sont stockés dans /etc/lvm/backup et /etc/lvm/archive. La commande vgcfgrestore utilise par défaut le fichier de sauvegarde dans /etc/lvm/backup. Exécutez vgcfgrestore pour restaurer les métadonnées LVM. Par exemple,

# vgcfgrestore vg_os
/dev/mapper/cx0009_lun45: Checksum error
/dev/mapper/cx0009_lun48: Checksum error
Restored volume group vg_os

4. Activez le groupe de volumes.

# vgchange -ay vg_os
1 logical volume(s) in volume group "vg_os" now active

5. Exécutez la commande "pvscan" pour vérifier si vous pouvez voir les "erreurs de somme de contrôle" maintenant.

# pvscan

6. Réactivez tous les services qui ont été arrêtés avant le vgcfgrestore.

Conclusion

L'utilisation de vgcfgrestore peut restaurer une sauvegarde des métadonnées LVM sur les volumes physiques LVM avant que la corruption ne se produise. Vous pouvez utiliser le fichier de sauvegarde par défaut dans /etc/lvm/backup pour restaurer les métadonnées d'une ancienne sauvegarde. Si vous avez un fichier de sauvegarde à un autre emplacement, vous pouvez également spécifier le fichier de sauvegarde avec la commande vgcfgrestore comme indiqué ci-dessous.

# vgcfgrestore -f /path/to/backup/file vgname


Linux
  1. Le fichier de métadonnées ne correspond pas à la somme de contrôle - erreur YUM !

  2. Cette erreur à propos de Upstart/systemd avec Runit ?

  3. Jungledisk échoue avec une erreur Libnotify ?

  4. CentOS / RHEL LVM :sauvegarde des métadonnées de groupe de volumes

  5. La commande lvremove échoue avec l'erreur "LVM - Impossible de supprimer le volume logique ouvert"

Installer Linux avec LVM

Comment gérer le stockage sous Linux avec LVM

Apprendre LVM sur Linux avec des outils graphiques

Comment réparer une erreur de conversion avec Calibre

Comment créer un groupe de volumes sous Linux avec LVM

Correction d'une erreur de tuyau cassé avec une connexion SSH