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
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