9.21. 检查 RAID 逻辑卷中数据的一致性
LVM 提供对 RAID 逻辑卷的清理支持。RAID 清理是读取阵列中的所有数据和奇偶校验块的过程,并检查它们是否是分配的。lvchange --syncaction repair
命令对阵列启动后台同步操作。
流程
可选:通过设置以下选项之一来控制 RAID 逻辑卷初始化的速率:
-
--maxrecoveryrate Rate[bBsSkKmMgG]
为 RAID 逻辑卷设置最大恢复率,使其不会驱逐正常的 I/O 操作。 --minrecoveryrate Rate[bBsSkKmMgG]
设置 RAID 逻辑卷的最小恢复率,以确保 sync 操作的 I/O 达到最小吞吐量,即使存在大量标准 I/O 时lvchange --maxrecoveryrate 4K my_vg/my_lv
# lvchange --maxrecoveryrate 4K my_vg/my_lv Logical volume my_vg/my_lv_changed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用恢复率值替换 4K,它是阵列中每个设备的每秒的量。如果没有后缀,选项会假定为 kiB/每秒/每个设备。
lvchange --syncaction repair my_vg/my_lv_
# lvchange --syncaction repair my_vg/my_lv_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您执行 RAID 清理操作时,
sync
操作所需的后台 I/O 可能会排挤 LVM 设备的其它 I/O,如对卷组元数据的更新。这可能导致其它 LVM 操作速度下降。注意您还可以在创建 RAID 设备时使用这些最大和最小 I/O 速率。例如,
lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg
创建一个双向 RAID10 阵列 my_lv,它在卷组 my_vg 中,有大小为 10G,最大恢复率为 128 kiB/sec/device 的 3 个条带。
-
显示阵列中未修复的差异的数量,没有修复它们:
lvchange --syncaction check my_vg/my_lv
# lvchange --syncaction check my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令对阵列启动后台同步操作。
-
可选:查看
var/log/syslog
文件中的内核消息。 修正阵列中的差异:
lvchange --syncaction repair my_vg/my_lv
# lvchange --syncaction repair my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令修复或者替换 RAID 逻辑卷中失败的设备。您可以在执行此命令后,在
var/log/syslog
文件查看内核消息。
验证
显示有关清理操作的信息:
lvs -o +raid_sync_action,raid_mismatch_count my_vg/my_lv
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow