9 votes

Comment arrêter un groupe de volumes LVM sous Linux ?

Je suis actuellement confronté à une défaillance de plusieurs disques sur un groupe de volumes Linux LVM qui est sauvegardé par un RAID-5. md appareil. Un disque a été complètement retiré et un autre montre un nombre limité de secteurs corrompus, en raison de ce qui semble avoir été un mauvais fonctionnement de l'alimentation électrique.

Le problème est qu'une fois qu'une erreur d'E/S se produit, md met la matrice hors service, car elle ne dispose pas de suffisamment de périphériques pour être opérationnelle. Où md la seule personne impliquée, je pourrais mdadm --stop le tableau et ensuite le recréer pour que tous les périphériques soient à nouveau actifs.

Malheureusement, le tableau est un PV dans un groupe de volumes LVM et je n'arrive pas à faire en sorte que le noyau le libère. vgchange -an ne semble pas faire quoi que ce soit, mais crache quelques erreurs d'E/S.

J'ai manifestement raté quelque chose, mais comment, au nom de -insert-favorite-deity- Comment faire pour que LVM libère le PV sous-jacent ? sans redémarrer le serveur ?

7voto

chutz Points 7404

Je dirais que vous êtes dans un assez mauvais état. Si vous êtes simplement désespéré pour récupérer certaines de vos données et que vous ne vous souciez pas beaucoup du LVM (dont les métadonnées sont probablement déjà corrompues, à en juger par les erreurs d'entrée-sortie de l'ordinateur), vous ne pouvez pas vous en sortir. vgchange -an ), je vous recommande d'opter pour un niveau bas. N'oubliez pas que LVM n'est qu'une enveloppe autour du mappeur de périphériques du noyau. dmsetup pour manipuler vos volumes logiques. dmsetup table vous donnera une liste des disques logiques actuellement actifs. C'est donc une bonne idée de sauvegarder ses résultats au cas où vous ne pourriez plus accéder à votre LVM par la suite. Ensuite, vous pouvez essayer d'arrêter les périphériques que vous voulez arrêter avec dmsetup remove ou même dmsetup remove_all . Mais assurez-vous qu'ils soient démontés d'abord.

Et bien sûr, copiez autant de données que possible dans un endroit sûr.

0 votes

En fait, le LVM est très bien - tant que md ne décide pas de jeter l'un des disques. Lorsque cela se produit, chaque accès au système entraîne une erreur d'E/S. BTW dmsetup remove_all --force ne semble pas être en mesure de surmonter l'obstacle de LVM qui est fixé dans ses manières...

4voto

smalcolm Points 31

Lorsque vgchange -an ne semble rien faire (sur un système Ubuntu), pensez à blâmer les règles udev après avoir lu ce rapport de bogue (je l'ai trouvé en cherchant " dmsetup remove lvm vgchange ") : https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1088081

La solution de contournement est la suivante (merci à Martin) :

sudo umount /mnt # asume the drive in question is mounted under /mnt  
sudo service udev stop
sudo lvchange -a n <LV-name>
sudo cryptsetup luksClose <LUKS-devicename>  
sudo service udev start

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X