Red Hat Training

A Red Hat training course is available for RHEL 8

9.20. 检查 RAID 逻辑卷中数据的一致性

LVM 提供对 RAID 逻辑卷的清理支持。RAID 清理是读取阵列中的所有数据和奇偶校验块的过程,并检查它们是否是分配的。lvchange --syncaction repair 命令对阵列启动后台同步操作。以下属性提供有关数据一致性的详情:

  • raid_sync_action 字段显示当前 RAID 逻辑卷正在执行的同步操作。可以是以下值之一:

    idle
    完成所有 sync 操作(什么都不做)。
    resync
    在不干净的机器关闭后初始化或重新同步阵列。
    recover
    替换阵列中的设备。
    check
    查找阵列的不一致。
    repair
    查找并修复不一致.
  • raid_mismatch_count 字段显示 check 操作过程中发现的差异数。
  • Cpy%Sync 字段显示 sync 操作的进度。
  • lv_attr 字段提供额外的指示。这个字段中的第 9 位显示逻辑卷的健康状况,它支持以下指示:

    mmismatches
    表示 RAID 逻辑卷中存在差异。您可以在清理操作检测到 RAID 中不一致的部分后看到此字符。
    rrefresh
    表示 RAID 阵列中失败的设备,即使 LVM 可以读取设备标签,并认为该设备可以正常工作。刷新逻辑卷通知内核该设备现在可用 ; 如果您怀疑设备失败,则替换该设备。

流程

  1. 可选:限制清理过程使用的 I/O 带宽。当您执行 RAID 清理操作时,sync 操作所需的后台 I/O 可能会排挤 LVM 设备的其它 I/O,如对卷组元数据的更新。这可能导致其它 LVM 操作速度下降。

    您可以使用节流功能控制清理操作的速度。您可以将 --maxrecoveryrate Rate[bBsSkKmMgG]--minrecoveryrate Rate[bBsSkKmMgG]lvchange --syncaction 命令一起使用来设置恢复率。如需更多信息,请参阅 最小和最大 I/O 速率选项

    指定比率,格式为“数量/每秒/阵列中的每个设备”。如果没有后缀,选项会假定为 kiB/每秒/每个设备。

  2. 显示阵列中未修复的差异的数量,没有修复它们:

    # lvchange --syncaction check my_vg/my_lv

    此命令对阵列启动后台同步操作。

  3. 可选:查看 var/log/syslog 文件中的内核消息。
  4. 修正阵列中的差异:

    # lvchange --syncaction repair my_vg/my_lv

    这个命令修复或者替换 RAID 逻辑卷中失败的设备。您可以在执行此命令后,在 var/log/syslog 文件查看内核消息。

验证

  1. 显示有关清理操作的信息:

    # lvs -o +raid_sync_action,raid_mismatch_count my_vg/my_lv
    LV    VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert SyncAction Mismatches
    my_lv my_vg rwi-a-r--- 500.00m                                    100.00           idle        0

其他资源