qshinoの日記

Powershell関係と徒然なこと

LVMの修復

LVMの復旧

LVMを復旧する場合、下記の流れで復旧を進める。

  1. pv復旧
  2. vg復旧
  3. fs復旧

pv復旧は、lvmのpvを復旧する。vg復旧はボリュームグループ復旧。最後にfs ファイルシステム復旧。

ここでlvmのlvが出てきていないが、vgが復旧されれば、vg管理下のlvも復旧する為、lv個別の復旧作業は不要である。

関連する主なコマンドは下記の通り。

  1. cat /proc/partitions
  2. pvscan
  3. pvcreate -uuid xxx /dev/yyy
  4. vgcfgrestore VG
  5. vgscan
  6. vgchange -ay VG
  7. e2fsck -y /dev/VG/LV

lvm構成ディスクが一つ故障

複数ディスクで構成するlvmで、一つのディスクが故障した場合。

pv復旧

  1. cat /proc/partitionsにより、パーティション確認、pvscan, pvdisplay等により、故障ディスクのuuidを確認。
  2. 新ディスク插入
  3. pvcreate -uuid 故障ディスクuuid /dev/新ディスク

pvcreateの際の注意点。

下記メッセージが表示されたら、

Read-only locking type set. Write locks are prohibited. Can't get lock for ...

/etc/lvm/lvm.conf の下記記述の値を1に変更。

locking_type = 4

また、-restoreなんちゃらとメッセージがでたら、

/etc/lvm/archive/... ファイルを指定する。

vg 復旧

  1. vgcfgresrote VG
  2. vgscan
  3. vgchange -ay VG

fs 復旧

  1. e2fsck -y /dev/VG/LV
  2. mount

データ復旧

  1. データを別のディスクにコピー等。

障害の程度によっては e2fsckで復旧できない可能性がある。lvの先頭ディスクが故障した場合、fsのinodeが失われるため、復旧は困難である。

その様な場合は、立ち上がるosとvgnameが衝突しない様にvgnameを変更し、別osで起動。その後os上のfsckにて復旧。rescue mode等のfsckは、機能が低い場合があり、通常os上のツールで試すことも有効。

vgcfgrestoreに失敗すると、以降の処置には進めない。uuid一致pvを準備したにも関わらず、vgcfgrestoreに失敗するのは致命的である。lvmのauto backup機能がオフにされていたり、meta dataのセクタに障害があった場合など。

補足

lvmでは、meta data を/etc/lvm/backup, /etc/lvm/archiveに保管している。また、全ディスクにmeta dataを保持し、auto backup機能により、meta.dataが最新に保たれる。よって、一つのディスクが残っていれば、meta dataは生きている。meta dataがあれば、pvを準備する事でvgcfgrestoreによる復旧が可能である。

補足その2

元々の構成

HWRaidカードが刺さっており、一つの物理玉を一つの論理玉=vdとしてOSに見せている。LVMは2つのvdをcentos vg、残り一つのvdからopt vgを構成する。まとめると次の構成。

centos vg は、vd1,2にまたがる。centos vgからroot lvが切り出されている。

opt vg は、単独ディスクのvg。

vd1-3はそれぞれ単玉のvirtual diskで、vdはそれぞれ一つの物理玉で構成。

最後に

ディスクが来るまで少しの時間だけバックアップを怠ったツケが、こんな所で回ってくるなんて・・・。

osが上がらずgrubで止まった時

下記参照。

http://qshino.hatenablog.com/entry/2019/04/25/195622

参考

https://www.novell.com/coolsolutions/appnote/19386.html