Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.4.13.8. 設定 RAID 錯誤政策
LVM RAID 會根據
lvm.conf
檔案中的 raid_fault_policy
欄位所定義的偏好設定,來以自動的方式處理裝置錯誤。
- 若
raid_fault_policy
欄位設為了allocate
,系統將會嘗試以來自卷冊群組中的可用裝置,來替換失效的裝置。若沒有可用裝置,此情況將會回報給系統日誌。 - 若
raid_fault_policy
欄位設為了warn
,系統將會產生一則警告,並且日誌將會顯示裝置已失效。這能讓使用者判斷應進行什麼樣的動作。
只要有可用裝置足以支援使用性,RAID 邏輯卷冊便會繼續進行作業。
4.4.13.8.1. 「allocate」RAID 錯誤政策
在下列範例中,
lvm.conf
檔案中的 raid_fault_policy
欄位已設為 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
,不過卻無可用裝置的話,配置將會失敗,使邏輯卷冊維持現狀。若配置失敗,您可選擇修復磁碟,然後如 節 4.4.13.8.2, “「warn」RAID 錯誤政策(Fault Policy)” 中所述地停用邏輯卷冊。此外,您亦可將失效的裝置替換掉,如 節 4.4.13.9, “替換 RAID 裝置” 中所述。