Red Hat Training
A Red Hat training course is available for RHEL 8
8.18. 論理ボリュームで RAID デバイスの交換
論理ボリュームの RAID デバイスは置き換えることができます。
- RAID デバイスに障害がない場合は、「障害のない RAID デバイスの交換」 を参照してください。
- RAID デバイスに障害が発生した場合は、「論理ボリュームに障害が発生した RAID デバイスの交換」 を参照してください。
8.18.1. 障害のない RAID デバイスの交換
論理ボリュームの RAID デバイスを交換するには、lvconvert
コマンドの --replace
引数を使用します。
前提条件
- RAID デバイスに障害が発生していません。以下のコマンドを使用すると、RAID デバイスが失敗しても動作しません。
手順
RAID デバイスを置き換えます。
# lvconvert --replace dev_to_remove vg/lv possible_replacements
- dev_to_remove を、置き換える物理ボリュームへのパスに置き換えます。
- vg/lv を、RAID アレイのボリュームグループおよび論理ボリューム名に置き換えます。
- possible_replacements を、交換する物理ボリュームへのパスに置き換えます。
例8.3 RAID1 デバイスの置き換え
以下の例では、RAID1 論理ボリュームを作成した後に、そのボリューム内のデバイスを交換しています。
RAID1 アレイを作成します。
# lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg Logical volume "my_lv" created
RAID1 アレイを確認します。
# 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)
/dev/sdb2
物理ボリュームを置き換えます。# lvconvert --replace /dev/sdb2 my_vg/my_lv
代替の RAID1 アレイを確認します。
# 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)
例8.4 代替の物理ボリュームの指定
以下の例では、RAID1 論理ボリュームを作成した後に、そのボリュームのデバイスを交換し、交換したデバイスに使用する物理ボリュームを指定しています。
RAID1 アレイを作成します。
# lvcreate --type raid1 -m 1 -L 100 -n my_lv my_vg Logical volume "my_lv" created
RAID1 アレイを確認します。
# 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
/dev/sdb1
物理ボリュームを/dev/sdd1
に置き換えます。# lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
代替の RAID1 アレイを確認します。
# 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)
例8.5 複数の RAID デバイスの置き換え
一度に 2 つ以上の RAID デバイスを交換するには、以下の例のように複数の replace
引数を指定します。
RAID1 アレイを作成します。
# lvcreate --type raid1 -m 2 -L 100 -n my_lv my_vg Logical volume "my_lv" created
RAID1 アレイを確認します。
# 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)
/dev/sdb1
および/dev/sdc1
の物理ボリュームを置き換えます。# lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv
代替の RAID1 アレイを確認します。
# 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)
8.18.2. LVM RAID のデバイスに障害が発生しました。
RAID は従来の LVM ミラーリングとは異なります。LVM ミラーリングでは、障害が発生したデバイスを削除する必要がありました。削除しないと、ミラー化論理ボリュームがハングします。RAID アレイは、障害があるデバイスがあっても稼働し続けることができます。RAID1 以外の RAID タイプでデバイスを削除すると、レベルが低い RAID に変換されます (たとえば、RAID6 から RAID5、もしくは RAID4 または RAID5 から RAID0)。
そのため、障害のあるデバイスを無条件に削除してから交換するのではなく、lvconvert
コマンドで --repair
引数を使用して、RAID ボリュームのデバイスを 1 回で置き換えることができます。
8.18.3. 論理ボリュームの障害が発生した RAID デバイスの交換
LVM RAID デバイス障害が一時的な障害であったり、障害が発生したデバイスの修復が可能な場合は、障害が発生したデバイスの復旧を開始できます。
前提条件
- 以前に不具合を起こしたデバイスが機能するようになりました。
手順
RAID デバイスが含まれる論理ボリュームを更新します。
# lvchange --refresh my_vg/my_lv
検証手順
復元されたデバイスで論理ボリュームを調べます。
# lvs --all --options name,devices,lv_attr,lv_health_status my_vg
8.18.4. 論理ボリュームに障害が発生した RAID デバイスの交換
この手順では、LVM RAID 論理ボリュームで物理ボリュームとして機能する障害のあるデバイスを置き換えます。
前提条件
ボリュームグループには、障害が発生したデバイスを置き換えるのに十分な空き容量を提供する物理ボリュームが含まれています。
ボリュームグループに十分な空きエクステントがある物理ボリュームがない場合は、
vgextend
ユーティリティーを使用して、十分なサイズの物理ボリュームを新たに追加します。
手順
以下の例では、RAID 論理ボリュームが次のように配置されます。
# lvs --all --options name,copy_percent,devices my_vg LV Cpy%Sync 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/sde1(1) [my_lv_rimage_1] /dev/sdc1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] /dev/sdc1(0) [my_lv_rmeta_2] /dev/sdd1(0)
/dev/sdc
デバイスに障害が発生した場合、lvs
コマンドの出力は以下のようになります。# lvs --all --options name,copy_percent,devices my_vg /dev/sdc: open failed: No such device or address Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee. WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices. WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices. LV Cpy%Sync 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/sde1(1) [my_lv_rimage_1] [unknown](1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] [unknown](0) [my_lv_rmeta_2] /dev/sdd1(0)
障害が発生したデバイスを交換して、論理ボリュームを表示します。
# lvconvert --repair my_vg/my_lv /dev/sdc: open failed: No such device or address Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee. WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices. WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices. Attempt to replace failed RAID images (requires full device resync)? [y/n]: y Faulty devices in my_vg/my_lv successfully replaced.
(必要に応じて) 障害が発生したデバイスを交換する物理ボリュームを手動で指定するには、コマンドの最後に物理ボリュームを追加します。
# lvconvert --repair my_vg/my_lv replacement_pv
代替の論理ボリュームを調べます。
# lvs --all --options name,copy_percent,devices my_vg /dev/sdc: open failed: No such device or address /dev/sdc1: open failed: No such device or address Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee. LV Cpy%Sync Devices my_lv 43.79 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0) [my_lv_rimage_0] /dev/sde1(1) [my_lv_rimage_1] /dev/sdb1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] /dev/sdb1(0) [my_lv_rmeta_2] /dev/sdd1(0)
障害が発生したデバイスをボリュームグループから削除するまで、LVM ユーティリティーは、障害が発生したデバイスが見つけられないことを示しています。
障害が発生したデバイスをボリュームグループから削除します。
# vgreduce --removemissing VG