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 イメージ
      LV 列に raid_image_N で表示されます。
      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) を示しています。

    • 以下の例に示すように、/var/log/messages ログファイル内のデータ整合性情報を表示します。

      例9.1 カーネルメッセージログから dm-integrity の不一致の例

      device-mapper: integrity: dm-12: チェックサムがセクター 0x24e7 で失敗しました

      例9.2 カーネルメッセージログからの dm-integrity データ修正の例

      md/raid1:mdX: 読み込みエラーが修正されました (dm-16 の 9448 の 8 セクター)

関連情報

  • lvcreate(8)lvmraid(7) の man ページ