Red Hat Training

A Red Hat training course is available for RHEL 8

8.19. 检查 RAID 逻辑卷中的数据一致性(RAID 清理)

LVM 提供对 RAID 逻辑卷的清理支持。RAID 清理是读取阵列中的所有数据和奇偶校验块的过程,并检查它们是否是分配的。

流程

  1. 可选:限制清理过程使用的 I/O 带宽。

    当您执行 RAID 清理操作时,同步操作 所需的后台 I/O 可能会将其他 I/O 应用到 LVM 设备,如卷组元数据更新。这可能导致其它 LVM 操作速度下降。您可以使用节流功能控制清理操作的速度。

    在下一步的 lvchange --syncaction 命令中添加以下选项:

    --maxrecoveryrate Rate[bBsSkKmMgG]
    设置最大恢复率,以便使操作不会严重影响小的 I/O 操作。将恢复率设置为 0 表示它将不被绑定。
    --minrecoveryrate Rate[bBsSkKmMgG]
    设置最小恢复率,以确保 同步操作 的 I/O 获得最小吞吐量,即使存在大量 I/O。

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

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

    # lvchange --syncaction check vg/raid_lv
  3. 修正阵列中的差异:

    # lvchange --syncaction repair vg/raid_lv
    注意

    lvchange --syncaction 修复 操作不执行与 lvconvert --repair 操作相同的功能:

    • lvchange --syncaction 修复 操作会在阵列中启动后台同步操作。
    • lvconvert --repair 操作修复或替换镜像或者 RAID 逻辑卷中失败的设备。
  4. 可选:显示 scrubbing 操作的信息:

    # lvs -o +raid_sync_action,raid_mismatch_count vg/lv
    • raid_sync_action 字段显示 RAID 卷在执行的当前同步操作。可以是以下值之一:

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

      • M (mismatches)表示 RAID 逻辑卷存在差异。这个字符在 scrubbing 操作侦测到部分 RAID 不一致时就会显示。
      • R (refresh)表示 RAID 阵列中的某个设备存在故障,且内核将其视为失败,即使 LVM 可以读取该设备标签,并认为该设备可以正常工作。刷新逻辑卷通知内核该设备现在可用 ; 如果您怀疑设备失败,则替换该设备。

其他资源

  • 如需更多信息,请参阅 lvchange (8)lvmraid (7) man page。