4.4.15.8. RAID 障害ポリシーの設定
LVM RAID は、
lvm.conf
ファイルの raid_fault_policy
フィールドで定義されている詳細設定に基づいて、デバイス障害を自動で処理します。
raid_fault_policy
フィールドがallocate
に設定されている場合、システムは障害が発生したデバイスをボリュームグループの予備のデバイスに置き換えようとします。予備のデバイスがない場合、システムログにレポートが送信されます。raid_fault_policy
フィールドがwarn
に設定されている場合、システムは警告を生成して、ログはデバイスが失敗したことを示します。これにより、ユーザーは取るべき一連の動作を判別することができます。
そのポリシーを使用するデバイスが残っている限り、RAID 論理ボリュームは操作を続行します。
4.4.15.8.1. 「allocate」RAID 障害ポリシー
以下の例では、
raid_fault_policy
フィールドは lvm.conf
ファイルで allocate
に設定されています。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/sde1(1)
[my_lv_rimage_1] /dev/sdf1(1)
[my_lv_rimage_2] /dev/sdg1(1)
[my_lv_rmeta_0] /dev/sde1(0)
[my_lv_rmeta_1] /dev/sdf1(0)
[my_lv_rmeta_2] /dev/sdg1(0)
/dev/sde
デバイスが失敗した場合は、システムログはエラーメッセージを表示します。
# grep lvm /var/log/messages
Jan 17 15:57:18 bp-01 lvm[8599]: Device #0 of raid1 array, my_vg-my_lv, has failed.
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at
250994294784: Input/output error
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at
250994376704: Input/output error
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at 0:
Input/output error
Jan 17 15:57:18 bp-01 lvm[8599]: /dev/sde1: read failed after 0 of 2048 at
4096: Input/output error
Jan 17 15:57:19 bp-01 lvm[8599]: Couldn't find device with uuid
3lugiV-3eSP-AFAR-sdrP-H20O-wM2M-qdMANy.
Jan 17 15:57:27 bp-01 lvm[8599]: raid1 array, my_vg-my_lv, is not in-sync.
Jan 17 15:57:36 bp-01 lvm[8599]: raid1 array, my_vg-my_lv, is now in-sync.
raid_fault_policy
フィールドは allocate
に設定されているため、障害が発生したデバイスはボリュームグループの新しいデバイスに置き換わります。
# lvs -a -o name,copy_percent,devices 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/sdf1(1)
[lv_rimage_2] /dev/sdg1(1)
[lv_rmeta_0] /dev/sdh1(0)
[lv_rmeta_1] /dev/sdf1(0)
[lv_rmeta_2] /dev/sdg1(0)
障害が発生したデバイスが置き換わっても、LVM は障害が発生したデバイスを見つけることができなかったことを引き続き表示される点に注意してください。これは、障害が発生したデバイスは RAID 論理ボリュームから削除されていますが、ボリュームグループからはまだ削除されていないためです。障害が発生したデバイスをボリュームグループから削除するには、
vgreduce --removemissing VG
を実行できます。
raid_fault_policy
は allocate
に設定されているものの、予備のデバイスがない場合、割り当ては失敗し、論理ボリュームはそのまま残ります。割り当てが失敗した場合は、「「warn」RAID 障害ポリシー」 に説明されているように、オプションとしてドライブを修正することができ、その後に論理ボリュームを非アクティブ化/アクティブ化できます。別の方法として、「RAID デバイスの置き換え」 で説明されているるように、障害が発生したデバイスを置き換えることも可能です。