web-dev-qa-db-ja.com

Linux LVMボリュームグループを停止する方法

私は現在、RAID-5 mdデバイスによってバックアップされたLinux LVMボリュームグループで複数のディスク障害に対処しています。 1台のディスクが完全に取り出され、もう1台は電源装置が正常に動作していないように見えるため、破損したセクターの数が限られています。

問題は、I/Oエラーが発生すると、アレイを動作させるのに十分なデバイスがないため、mdがアレイを停止することです。 mdが1人しか関与しない場合、私はmdadm --stopアレイを再作成して、すべてのデバイスを再びアクティブにします。

残念ながら、アレイはLVMボリュームグループ内のPVであり、カーネルに解放するようには思えません。 vgchange -anは何もしないようです。barを使用すると、いくつかのI/Oエラーが発生します。

私は明らかに何かが足りないのですが、-insert-favorite-deity-の名の下で、LVMに基礎となるPVを解放させますwithoutサーバーを再起動しますか?

7
thkala

あなたはかなり体調不良だと思います。データの一部をなんとかして回復したいだけで、LVMをあまり気にしない場合(メタデータはおそらく破損している可能性があり、IOのエラー[vgchange -anから判断)] 、低レベルにすることをお勧めします。LVMはカーネルデバイスマッパーのラッパーにすぎないため、dmsetupを使用して論理ボリュームを操作できます。dmsetup tableは、現在アクティブなリストを提供します後でLVMにアクセスできない場合に備えて、その出力をバックアップすることをお勧めします。次に、停止するデバイスをdmsetup removeまたはdmsetup remove_allで停止してみてください。しかし、最初にアンマウントしてください。

そしてもちろん、できるだけ多くのデータを安全な場所にコピーしてください。

6
chutz

いつ vgchange -anは何もしないようです(Ubuntuシステム上)。このバグレポートを読んだ後、udevルールを非難することを検討してください( "dmsetup remove lvm vgchange "): https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1088081

回避策は次のとおりです(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
3
smalcolm