RAID は従来の LVM ミラーリングとは異なります。LVM ミラーリングでは、障害が発生したデバイスは削除する必要がありました。そうしないと、ミラー化論理ボリュームがハングしたためです。RAID アレイは、障害があるデバイスがあっても稼働し続けることができます。RAID1 以外の RAID タイプの場合、デバイスを削除することはレベルが下の RAID に変換することを意味します (たとえば、RAID6 から RAID5、または RAID4 または RAID5 から RAID0)。そのため、無条件に障害のあるデバイスを削除してから置き換えを行うのではなく、LVM により、lvconvert
コマンドに --replace
引数を使用することで RAID ボリューム内のデバイスをワンステップで置き換えることができます。
lvconvert --replace dev_to_remove vg/lv [possible_replacements]
lvconvert --replace dev_to_remove vg/lv [possible_replacements]
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
lvcreate --type raid1 -m2 -L 1G -n my_lv my_vg
lvs -a -o name,copy_percent,devices my_vg
lvconvert --replace /dev/sdb2 my_vg/my_lv
lvs -a -o name,copy_percent,devices my_vg
# lvcreate --type raid1 -m2 -L 1G -n my_lv my_vg
Logical volume "my_lv" created
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
[my_lv_rimage_0] /dev/sdb1(1)
[my_lv_rimage_1] /dev/sdb2(1)
[my_lv_rimage_2] /dev/sdc1(1)
[my_lv_rmeta_0] /dev/sdb1(0)
[my_lv_rmeta_1] /dev/sdb2(0)
[my_lv_rmeta_2] /dev/sdc1(0)
# lvconvert --replace /dev/sdb2 my_vg/my_lv
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 37.50 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
[my_lv_rimage_0] /dev/sdb1(1)
[my_lv_rimage_1] /dev/sdc2(1)
[my_lv_rimage_2] /dev/sdc1(1)
[my_lv_rmeta_0] /dev/sdb1(0)
[my_lv_rmeta_1] /dev/sdc2(0)
[my_lv_rmeta_2] /dev/sdc1(0)
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
以下の例は、RAID1 論理ボリュームを作成した後に、そのボリューム内のデバイスを置き換え、置き換えに使用する物理ボリュームを指定しています。
lvcreate --type raid1 -m1 -L 100 -n my_lv my_vg
lvs -a -o name,copy_percent,devices my_vg
pvs
lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
lvs -a -o name,copy_percent,devices my_vg
# lvcreate --type raid1 -m1 -L 100 -n my_lv my_vg
Logical volume "my_lv" created
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
[my_lv_rimage_0] /dev/sda1(1)
[my_lv_rimage_1] /dev/sdb1(1)
[my_lv_rmeta_0] /dev/sda1(0)
[my_lv_rmeta_1] /dev/sdb1(0)
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 my_vg lvm2 a-- 1020.00m 916.00m
/dev/sdb1 my_vg lvm2 a-- 1020.00m 916.00m
/dev/sdc1 my_vg lvm2 a-- 1020.00m 1020.00m
/dev/sdd1 my_vg lvm2 a-- 1020.00m 1020.00m
# lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 28.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
[my_lv_rimage_0] /dev/sda1(1)
[my_lv_rimage_1] /dev/sdd1(1)
[my_lv_rmeta_0] /dev/sda1(0)
[my_lv_rmeta_1] /dev/sdd1(0)
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
lvcreate --type raid1 -m 2 -L 100 -n my_lv my_vg
lvs -a -o name,copy_percent,devices my_vg
lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv
lvs -a -o name,copy_percent,devices my_vg
# lvcreate --type raid1 -m 2 -L 100 -n my_lv my_vg
Logical volume "my_lv" created
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
[my_lv_rimage_0] /dev/sda1(1)
[my_lv_rimage_1] /dev/sdb1(1)
[my_lv_rimage_2] /dev/sdc1(1)
[my_lv_rmeta_0] /dev/sda1(0)
[my_lv_rmeta_1] /dev/sdb1(0)
[my_lv_rmeta_2] /dev/sdc1(0)
# lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 60.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
[my_lv_rimage_0] /dev/sda1(1)
[my_lv_rimage_1] /dev/sdd1(1)
[my_lv_rimage_2] /dev/sde1(1)
[my_lv_rmeta_0] /dev/sda1(0)
[my_lv_rmeta_1] /dev/sdd1(0)
[my_lv_rmeta_2] /dev/sde1(0)
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow