10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LVM RAID の運用方法

Last updated at Posted at 2018-06-08

はじめに

LinuxでRAID構成を組もうとするとMDを使うことが多いと思いますが、LVMでもRAIDを構成することができます。(カーネルの中では結局同じ機能を使っているのですが。)
自宅サーバで LVM RAID を使っているのですが、数年に一回ディスクが壊れたときに復旧の方法を忘れてしまって調べるのが大変なので、メモも兼ねて残しておきます。
(ぐぐるとだいたい MD RAID が引っかかるので。)

環境

CentOS7 を使っていますが、最近のLinuxならおおよそできるはずです。
CentOS5 など古すぎると LVM が RAID に対応していないことがあります。

論理ボリューム作成方法

RAID1 で LV を作ります。
-m はミラー数なので、2ディスクで RAID1 を組むなら 1 を指定します。

# testvg という VG がある状態で

$ lvcreate --type raid1 -m 1 -L 1G -n vol0 testvg
  Logical volume "vol0" created.

$ lvs -a -o +devices
  LV              VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
  vol0            testvg rwi-a-r--- 1.00g                                    100.00           vol0_rimage_0(0),vol0_rimage_1(0)
  [vol0_rimage_0] testvg iwi-aor--- 1.00g                                                     /dev/sdf(1)
  [vol0_rimage_1] testvg iwi-aor--- 1.00g                                                     /dev/sdg(1)
  [vol0_rmeta_0]  testvg ewi-aor--- 4.00m                                                     /dev/sdf(0)
  [vol0_rmeta_1]  testvg ewi-aor--- 4.00m                                                     /dev/sdg(0)

ディスク故障時の対応方法

ディスクが故障し、そのディスクを交換したとします。
RAID1 なので正常なディスクが一つでも残っていれば LV は通常通り利用することができます。

$ pvcreate /dev/sdg
  WARNING: Device for PV FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu not found or rejected by a filter.
  Physical volume "/dev/sdg" successfully created.

$  pvs
  WARNING: Device for PV FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu not found or rejected by a filter.
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sdf   testvg lvm2 a--  <2.00g 1016.00m
  /dev/sdg          lvm2 ---   2.00g    2.00g
  [unknown]  testvg lvm2 a-m  <2.00g 1016.00m

/dev/sdg が交換した新しいディスクです。
古いディスクは [unknown] として残っています。

交換したディスクを RAID に組み入れます。
lvconvert --repair で組み入れてくれます。
(ここでRAIDのリビルドが走ります。)

$ vgextend testvg /dev/sdg
  WARNING: Not using lvmetad because a repair command was run.
  Couldn't find device with uuid FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu.
  Volume group "testvg" successfully extended

$ lvconvert --repair testvg/vol0
  WARNING: Disabling lvmetad cache for repair command.
  WARNING: Not using lvmetad because of repair.
  Couldn't find device with uuid FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu.
Attempt to replace failed RAID images (requires full device resync)? [y/n]: y
  Faulty devices in testvg/vol0 successfully replaced.

$ lvs -a -o +devices
  WARNING: Not using lvmetad because a repair command was run.
  Couldn't find device with uuid FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu.
  LV              VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
  vol0            testvg rwi-aor--- 1.00g                                    100.00           vol0_rimage_0(0),vol0_rimage_1(0)
  [vol0_rimage_0] testvg iwi-aor--- 1.00g                                                     /dev/sdg(1)
  [vol0_rimage_1] testvg iwi-aor--- 1.00g                                                     /dev/sdf(1)
  [vol0_rmeta_0]  testvg ewi-aor--- 4.00m                                                     /dev/sdg(0)
  [vol0_rmeta_1]  testvg ewi-aor--- 4.00m                                                     /dev/sdf(0)

最後に壊れたディスクの PV を削除します。
vgreduce --removemissing で削除してくれます。

$ pvs
  WARNING: Not using lvmetad because a repair command was run.
  Couldn't find device with uuid FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu.
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sdf   testvg lvm2 a--  <2.00g 1016.00m
  /dev/sdg   testvg lvm2 a--  <2.00g 1016.00m
  [unknown]  testvg lvm2 a-m  <2.00g   <2.00g

$ vgreduce --removemissing testvg
  WARNING: Not using lvmetad because a repair command was run.
  Couldn't find device with uuid FQlmyK-xpqS-RJIJ-Xxyr-PRvQ-KURY-FTH3wu.
  Wrote out consistent volume group testvg.

$ pvs
  WARNING: Not using lvmetad because a repair command was run.
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sdf   testvg lvm2 a--  <2.00g 1016.00m
  /dev/sdg   testvg lvm2 a--  <2.00g 1016.00m

これで定常状態に戻りました。

参考

10
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?