9.18. 设置 RAID 失败策略
根据 /etc/lvm/lvm.conf
文件中的 raid_fault_policy
字段首选项,LVM RAID 会自动处理设备故障。您可以根据要求,将 raid_fault_policy
字段设置为以下参数之一:
warn
您可以使用此参数,通过使用系统日志手动修复失败的设备并显示警告。
默认情况下,
raid_fault_policy
字段的值在lvm.conf
中是warn
。如果有足够的设备可以正常工作,RAID 逻辑卷将继续操作。allocate
- 您可以使用此参数自动替换失败的设备。
9.18.1. 将 RAID 故障策略设置为 allocate
您可以将 raid_fault_policy
字段设置为 /etc/lvm/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/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)
手册页
9.18.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 将不会自动尝试通过替换其中一个镜像修复 RAID 设备。相反,如果设备失败,您可以使用
lvconvert
命令的--repair
参数替换该设备。如需更多信息,请参阅 在逻辑卷中替换失败的 RAID 设备。
其他资源
-
lvm.conf(5)
手册页