Red Hat Training

A Red Hat training course is available for RHEL 8

9.9. 创建带有 DM 完整性的 RAID LV

当您创建带有设备映射器 (DM) 完整性的 RAID LV 或者在现有 RAID LV 中添加完整性时,它会降低因为软崩溃而丢失数据的风险。在使用 LV 前,等待完整性同步和 RAID 元数据完成。否则,在后台进行的初始化可能会影响 LV 的性能。

流程

  1. 创建具有 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 上执行的一些操作。

  2. 可选:在执行某些操作前删除完整性。

    # 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: Checksum failed at sector 0x24e7

      例 9.2. 来自内核消息日志的 dm-integrity 数据更正示例

      md/raid1:mdX: 读取错误修正(8 扇区位在 dm-16 上 的 9448)

其他资源

  • lvcreate (8)lvmraid (7) man page