9.17. 将 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)
手册页