9.9. 创建具有 DM 完整性的 RAID 逻辑卷
当您创建带有设备映射器(DM)完整性的 RAID LV 或者在现有 RAID 逻辑卷(LV)中添加完整性时,它会降低因为软崩溃而丢失数据的风险。在使用 LV 前,等待完整性同步和 RAID 元数据完成。否则,在后台进行的初始化可能会影响 LV 的性能。
设备映射程序(DM)完整性与 RAID 级别 1、4、5、6 和 10 一起使用,用于缓解或防止软崩溃导致数据丢失。RAID 层可确保数据没有破坏的副本可以修复软崩溃错误。
流程
创建具有 DM 完整性的 RAID LV。以下示例在 my_vg 卷组中创建一个名为 test-lv 的 RAID LV,可用大小为 256M 和 RAID 级别 1:
# lvcreate --type raid1 --raidintegrity y -L 256M -n test-lv my_vg Creating integrity metadata LV test-lv_rimage_0_imeta with size 8.00 MiB. Logical volume "test-lv_rimage_0_imeta" created. Creating integrity metadata LV test-lv_rimage_1_imeta with size 8.00 MiB. Logical volume "test-lv_rimage_1_imeta" created. Logical volume "test-lv" created.
注意要在现有 RAID LV 中添加 DM 完整性,请使用以下命令:
# lvconvert --raidintegrity y my_vg/test-lv
在 RAID LV 中添加完整性限制了您可以在那个 RAID LV 上执行的一些操作。
可选:在执行某些操作前删除完整性。
# lvconvert --raidintegrity n my_vg/test-lv Logical volume my_vg/test-lv has removed integrity.
验证
查看有关添加的 DM 完整性的信息:
查看在 my_vg 卷组中创建的 test-lv RAID LV 的信息:
# lvs -a my_vg LV VG Attr LSize Origin Cpy%Sync test-lv my_vg rwi-a-r--- 256.00m 2.10 [test-lv_rimage_0] my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 93.75 [test-lv_rimage_0_imeta] my_vg ewi-ao---- 8.00m [test-lv_rimage_0_iorig] my_vg -wi-ao---- 256.00m [test-lv_rimage_1] my_vg gwi-aor--- 256.00m [test-lv_rimage_1_iorig] 85.94 [...]
下面描述了此输出的不同选项:
g
属性-
它是 Attr 列下的属性列表,表示 RAID 镜像使用完整性。完整性将校验和存储在
_imeta
RAID LV 中。 Cpy%Sync
列- 它指示顶层 RAID LV 和每个 RAID 镜像的同步进度。
- RAID 镜像
-
它通过
raid_image_N
在 LV 列中指示。 LV
列- 它确保对顶层 RAID LV 和每个 RAID 镜像显示 100% 同步进度。
显示每个 RAID LV 的类型:
# lvs -a my-vg -o+segtype LV VG Attr LSize Origin Cpy%Sync Type test-lv my_vg rwi-a-r--- 256.00m 87.96 raid1 [test-lv_rimage_0] my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 100.00 integrity [test-lv_rimage_0_imeta] my_vg ewi-ao---- 8.00m linear [test-lv_rimage_0_iorig] my_vg -wi-ao---- 256.00m linear [test-lv_rimage_1] my_vg gwi-aor--- 256.00m [test-lv_rimage_1_iorig] 100.00 integrity [...]
有一个增量的计数器,它计算在每个 RAID 镜像上检测到的不匹配数。查看 my_vg/test-lv 下的
rimage_0
检测到的数据不匹配:# lvs -o+integritymismatches my_vg/test-lv_rimage_0 LV VG Attr LSize Origin Cpy%Sync IntegMismatches [test-lv_rimage_0] my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 100.00 0
在这个示例中,完整性还没有检测到任何不匹配的数据,因此
IntegMismatches
计数器会显示 0 (0)。查看
/var/log/messages
日志文件中的数据完整性信息,如下例所示:例 9.1. 内核消息日志中的 dm-integrity 不匹配示例
device-mapper: integrity: dm-12:校验和在扇区 0x24e7 时失败
例 9.2. 来自内核消息日志的 dm-integrity 数据更正示例
md/raid1:mdX: 读取错误修正(8 扇区位在 dm-16 上 的 9448)
其他资源
-
系统中
lvcreate (8)
和lvmraid (7)
手册页