LVMの修復
LVMの復旧
LVMを復旧する場合、下記の流れで復旧を進める。
- pv復旧
- vg復旧
- fs復旧
pv復旧は、lvmのpvを復旧する。vg復旧はボリュームグループ復旧。最後にfs ファイルシステム復旧。
ここでlvmのlvが出てきていないが、vgが復旧されれば、vg管理下のlvも復旧する為、lv個別の復旧作業は不要である。
関連する主なコマンドは下記の通り。
- cat /proc/partitions
- pvscan
- pvcreate -uuid xxx /dev/yyy
- vgcfgrestore VG
- vgscan
- vgchange -ay VG
- e2fsck -y /dev/VG/LV
lvm構成ディスクが一つ故障
複数ディスクで構成するlvmで、一つのディスクが故障した場合。
pv復旧
- cat /proc/partitionsにより、パーティション確認、pvscan, pvdisplay等により、故障ディスクのuuidを確認。
- 新ディスク插入
- 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 復旧
- vgcfgresrote VG
- vgscan
- vgchange -ay VG
fs 復旧
- e2fsck -y /dev/VG/LV
- mount
データ復旧
- データを別のディスクにコピー等。
障害の程度によっては 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