Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for RHEL 8

8.15. 设置 RAID 失败策略

LVM RAID 根据 lvm.conf 文件中的 raid_fault_policy 字段定义的首选项自动处理设备失败。

  • 如果将 raid_fault_policy 字段设置为 分配,系统将尝试使用卷组中的备用设备替换失败的设备。如果没有可用的备用设备,则会向系统日志报告。
  • 如果将 raid_fault_policy 字段设置为 warn,系统将产生警告,日志将指示设备失败。这使得用户能够决定采取什么行动。

只要有足够的设备支持可用性,RAID 逻辑卷将继续操作。

8.15.1. 分配 RAID 失败策略

在以下示例中,raid_fault_policy 字段已设置为在 lvm.conf 文件中 分配。按如下方式定义 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 字段已设置为 分配,因此失败的设备将被替换为卷组中的新设备。

# 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 已设为 分配 但没有备用设备,则分配将失败,让逻辑卷保留原样。如果分配失败,您可以选择修复驱动器,然后使用 lvchange 命令的 --refresh 选项启动故障设备的恢复。另外,您还可以替换失败的设备。