Red Hat Training
A Red Hat training course is available for RHEL 8
8.17. RAID 障害ポリシーの設定
/etc/lvm/lvm.conf
ファイルの raid_fault_policy
フィールドの設定に基づいて、LVM RAID はデバイスの障害を自動的に処理します。要件に応じて、raid_fault_policy
フィールドを次のパラメーターのいずれかに設定できます。
warn
このパラメーターを使用すると、障害が発生したデバイスを手動で修復し、システムログを使用して警告を表示できます。
デフォルトでは、
lvm.conf
のraid_fault_policy
フィールドの値はwarn
です。十分な数のデバイスが動作している場合、RAID 論理ボリュームは動作し続けます。allocate
- このパラメーターを使用すると、障害が発生したデバイスを自動的に交換できます。
8.17.1. RAID 障害ポリシーを allocate
に設定する
/etc/lvm/lvm.conf
ファイルで、raid_fault_policy
フィールドを assign
パラメーターに設定できます。この設定を使用すると、システムは障害が発生したデバイスをボリュームグループのスペアデバイスと交換しようとします。スペアデバイスがない場合は、システムログにこの情報が追加されます。
手順
RAID 論理ボリュームを表示します。
# 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/sdc1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sdb1(0) [my_lv_rmeta_1] /dev/sdc1(0) [my_lv_rmeta_2] /dev/sdd1(0)
/dev/sdb デバイスに障害が発生したら、RAID 論理ボリュームを表示します。
# lvs --all --options name,copy_percent,devices my_vg /dev/sdb: 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 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] [unknown](1) [my_lv_rimage_1] /dev/sdc1(1) [...]
/dev/sdb デバイスに障害が発生した場合は、システムログを表示してエラーメッセージを確認することもできます。
lvm.conf
ファイルで、raid_fault_policy
フィールドをallocate
に設定します。# vi /etc/lvm/lvm.conf raid_fault_policy = "allocate"
注記raid_fault_policy
をallocate
に設定しても、スペアデバイスがない場合、割り当ては失敗し、論理ボリュームがそのままの状態になります。割り当てが失敗した場合は、lvconvert --repair
コマンドを使用して、失敗したデバイスを修復および交換できます。詳細は、論理ボリュームに障害が発生した RAID デバイスの交換 を参照してください。
検証
障害が発生したデバイスがボリュームグループの新しいデバイスに置き換えられたかどうかを確認します。
# lvs -a -o name,copy_percent,devices my_vg Couldn't find device with uuid 3lugiV-3eSP-AFAR-sdrP-H20O-wM2M-qdMANy. LV Copy% Devices lv 100.00 lv_rimage_0(0),lv_rimage_1(0),lv_rimage_2(0) [lv_rimage_0] /dev/sdh1(1) [lv_rimage_1] /dev/sdc1(1) [lv_rimage_2] /dev/sdd1(1) [lv_rmeta_0] /dev/sdh1(0) [lv_rmeta_1] /dev/sdc1(0) [lv_rmeta_2] /dev/sdd1(0)
注記障害が発生したデバイスは交換されたが、デバイスがまだボリュームグループから削除されていないため、LVM によって障害が発生したデバイスが検出されなかったことが表示されます。
vgreduce --removemissing my_vg
コマンドを実行すると、障害が発生したデバイスをボリュームグループから削除できます。
関連情報
-
lvm.conf(5)
man ページ
8.17.2. RAID 障害ポリシーを warn
に設定する
lvm.conf
ファイルで、raid_fault_policy
フィールドを warn
パラメーターに設定できます。この設定を使用すると、システムは、障害が発生したデバイスを示す警告をシステムログに追加します。警告に基づいて、その後の手順を決定できます。
手順
RAID 論理ボリュームを表示します。
# 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/sdc1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sdb1(0) [my_lv_rmeta_1] /dev/sdc1(0) [my_lv_rmeta_2] /dev/sdd1(0)
lvm.conf ファイルで、raid_fault_policy フィールドを warn に設定します。
# vi /etc/lvm/lvm.conf # This configuration option has an automatic default value. raid_fault_policy = "warn"
/dev/sdb デバイスに障害が発生したら、システムログを表示してエラーメッセージを表示します。
# grep lvm /var/log/messages Apr 14 18:48:59 virt-506 kernel: sd 25:0:0:0: rejecting I/O to offline device Apr 14 18:48:59 virt-506 kernel: I/O error, dev sdb, sector 8200 op 0x1:(WRITE) flags 0x20800 phys_seg 0 prio class 2 [...] Apr 14 18:48:59 virt-506 dmeventd[91060]: WARNING: VG my_vg is missing PV 9R2TVV-bwfn-Bdyj-Gucu-1p4F-qJ2Q-82kCAF (last written to /dev/sdb). Apr 14 18:48:59 virt-506 dmeventd[91060]: WARNING: Couldn't find device with uuid 9R2TVV-bwfn-Bdyj-Gucu-1p4F-qJ2Q-82kCAF. Apr 14 18:48:59 virt-506 dmeventd[91060]: Use 'lvconvert --repair my_vg/ly_lv' to replace failed device.
/dev/sdb デバイスに障害が発生すると、システムログにエラーメッセージが表示されます。ただし、この場合、LVM はイメージの 1 つを置き換えて、RAID デバイスを自動的に修復しようとはしません。したがって、デバイスに障害が発生したら、
lvconvert
コマンドの--repair
引数を使用してデバイスを置き換えることができます。詳細は、論理ボリュームに障害が発生した RAID デバイスの交換 を参照してください。
関連情報
-
lvm.conf(5)
man ページ