58.7. RAID 論理ボリュームの設定


論理ボリュームマネージャー (LVM) を使用して、Redundant Array of Independent Disks (RAID) ボリュームを作成および管理できます。

58.7.1. RAID 論理ボリューム

論理ボリュームマネージャー (LVM) は、Redundant Array of Independent Disks (RAID) レベル 0、1、4、5、6、10 をサポートします。LVM RAID ボリュームには以下の特徴があります。

  • LVM は、Multiple Devices (MD) カーネルドライバーを活用した RAID 論理ボリュームを作成して管理する
  • アレイから RAID1 イメージを一時的に分割し、後でアレイにマージし直すことが可能
  • LVM RAID ボリュームはスナップショットに対応

その他にも、以下のような特徴があります。

クラスター

RAID 論理ボリュームはクラスターには対応していません。

RAID 論理ボリュームは 1 台のマシンに排他的に作成およびアクティブ化できますが、複数のマシンで同時にアクティブにすることはできません。

Subvolumes

RAID 論理ボリューム (LV) を作成するとき、LVM は、データまたはアレイ内のパリティーサブボリュームごとに、サイズが 1 エクステントのメタデータサブボリュームを作成します。

たとえば、2 方向の RAID1 アレイを作成すると、メタデータサブボリュームが 2 つ (lv_rmeta_0 および lv_rmeta_1) と、データサブボリュームが 2 つ (lv_rimage_0 および lv_rimage_1) 作成されます。同様に、3 方向ストライプ (および暗黙的なパリティーデバイスが 1 つ) の RAID4 を作成すると、メタデータサブボリュームが 4 つ (lv_rmeta_0lv_rmeta_1lv_rmeta_2lv_rmeta_3)、データサブボリュームが 4 つ (lv_rimage_0lv_rimage_1lv_rimage_2lv_rimage_3) 作成されます。

インテグリティー
RAID デバイスに障害が発生したり、ソフト破損が発生したときにデータが失われる場合があります。データストレージにおけるソフト破損は、ストレージデバイスから取得したデータが、そのデバイスに書き込まれるデータとは異なることを意味します。RAID LV に整合性を追加すると、ソフト破損が軽減または防止します。詳しくは、DM 整合性を備えた RAID LV の作成 を参照してください。

58.7.2. RAID レベルとリニアサポート

レベル 0、1、4、5、6、10、リニアなど、RAID 別の対応設定は以下のとおりです。

レベル 0

ストライピングとも呼ばれる RAID レベル 0 は、パフォーマンス指向のストライピングデータマッピング技術です。これは、アレイに書き込まれるデータがストライプに分割され、アレイのメンバーディスク全体に書き込まれることを意味します。これにより低い固有コストで高い I/O パフォーマンスを実現できますが、冗長性は提供されません。

RAID レベル 0 実装は、アレイ内の最小デバイスのサイズまで、メンバーデバイス全体にだけデータをストライピングします。つまり、複数のデバイスのサイズが少し異なる場合、それぞれのデバイスは最小ドライブと同じサイズであるかのように処理されます。したがって、レベル 0 アレイの共通ストレージ容量は、すべてのディスクの合計容量です。メンバー ディスクのサイズが異なる場合、RAID0 は使用可能なゾーンを使用して、それらのディスクのすべての領域を使用します。

レベル 1

RAID レベル 1 (ミラーリング) は、アレイの各メンバーディスクに同一のデータを書き込み、ミラー化されたコピーを各ディスクに残すことによって冗長性を提供します。ミラーリングは、データの可用性の単純化と高レベルにより、いまでも人気があります。レベル 1 は 2 つ以上のディスクと連携して、非常に優れたデータ信頼性を提供し、読み取り集中型のアプリケーションに対してパフォーマンスが向上しますが、比較的コストが高くなります。

RAID レベル 1 は、アレイ内のすべてのディスクに同じ情報を書き込むためコストがかかります。これにより、データの信頼性が提供されますが、レベル 5 などのパリティーベースの RAID レベルよりもスペース効率が大幅に低下します。ただし、この領域の非効率性にはパフォーマンス上の利点があります。パリティーベースの RAID レベルは、パリティーを生成するためにかなり多くの CPU 電力を消費しますが、RAID レベル 1 は単に同じデータを、CPU オーバーヘッドが非常に少ない複数の RAID メンバーに複数回書き込むだけです。そのため、RAID レベル 1 は、ソフトウェア RAID が使用されているマシンや、マシンの CPU リソースが一貫して RAID アクティビティー以外の操作でアレイ化されます。

レベル 1 アレイのストレージ容量は、ハードウェア RAID 内でミラーリングされている最小サイズのハードディスクの容量と同じか、ソフトウェア RAID 内でミラーリングされている最小のパーティションと同じ容量になります。レベル 1 の冗長性は、すべての RAID タイプの中で最も高いレベルであり、アレイは 1 つのディスクのみで動作できます。

レベル 4

レベル 4 は、1 つのディスクドライブでパリティー連結を使用して、データを保護します。パリティー情報は、アレイ内の残りのメンバーディスクのコンテンツに基づいて計算されます。この情報は、アレイ内のいずれかのディスクに障害が発生した場合にデータの再構築に使用できます。その後、再構築されたデータを使用して、交換前に失敗したディスクに I/O 要求に対応でき、交換後に失敗したディスクを接続します。

パリティー専用ディスクは、RAID アレイへのすべての書き込みトランザクションにおいて固有のボトルネックとなるため、ライトバックキャッシングなどの付随する技術なしにレベル 4 が使用されることはほとんどありません。または、システム管理者が意図的にこのボトルネックを考慮してソフトウェア RAID デバイスを設計している特定の状況下で使用されます。たとえば、アレイにデータが格納されると書き込みトランザクションがほとんどないようなアレイです。RAID レベル 4 にはほとんど使用されないため、Anaconda ではこのオプションとしては使用できません。ただし、実際には必要な場合は、ユーザーが手動で作成できます。

ハードウェア RAID レベル 4 のストレージ容量は、最小メンバーパーティションの容量にパーティションの数を掛けて 1 を引いた値に等しくなります。RAID レベル 4 アレイのパフォーマンスは常に非対称です。つまり、読み込みは書き込みを上回ります。これは、パリティーを生成するときに書き込み操作が余分な CPU リソースとメインメモリー帯域幅を消費し、実際のデータをディスクに書き込むときに余分なバス帯域幅も消費するためです。これは、データだけでなくパリティーも書き込むためです。読み取り操作は、アレイが劣化状態にない限り、データを読み取るだけでパリティーを読み取る必要はありません。その結果、読み取り操作では、通常の操作条件下で同じ量のデータ転送を行う場合でも、ドライブおよびコンピューターのバス全体に生成されるトラフィックが少なくなります。

レベル 5

これは RAID の最も一般的なタイプです。RAID レベル 5 は、アレイのすべてのメンバーディスクドライブにパリティーを分散することにより、レベル 4 に固有の書き込みボトルネックを排除します。パリティー計算プロセス自体のみがパフォーマンスのボトルネックです。最近の CPU はパリティーを非常に高速に計算できます。しかし、RAID 5 アレイに多数のディスクを使用していて、すべてのデバイスの合計データ転送速度が十分に高い場合、パリティー計算がボトルネックになる可能性があります。

レベル 5 のパフォーマンスは非対称であり、読み取りは書き込みよりも大幅に優れています。RAID レベル 5 のストレージ容量は、レベル 4 と同じです。

レベル 6

パフォーマンスではなくデータの冗長性と保存が最重要事項であるが、レベル 1 の領域の非効率性が許容できない場合は、これが RAID の一般的なレベルです。レベル 6 では、複雑なパリティースキームを使用して、アレイ内の 2 つのドライブから失われたドライブから復旧できます。複雑なパリティースキームにより、ソフトウェア RAID デバイスで CPU 幅が大幅に高くなり、書き込みトランザクションの際に増大度が高まります。したがって、レベル 6 はレベル 4 や 5 よりもパフォーマンスにおいて、非常に非対称です。

RAID レベル 6 アレイの合計容量は、RAID レベル 5 および 4 と同様に計算されますが、デバイス数から追加パリティーストレージ領域用に 2 つのデバイス (1 ではなく) を引きます。

レベル 10

この RAID レベルでは、レベル 0 のパフォーマンスとレベル 1 の冗長性を組み合わせます。また、2 台以上のデバイスを使用するレベル 1 アレイの無駄なスペースをある程度削減することができます。レベル 10 では、たとえば、データごとに 2 つのコピーのみを格納するように設定された 3 ドライブアレイを作成することができます。これにより、全体用のアレイサイズを最小デバイスのみと同じサイズ (3 つのデバイス、レベル 1 アレイなど) ではなく、最小デバイスのサイズの 1.5 倍にすることができます。これにより、CPU プロセスの使用量が RAID レベル 6 のようにパリティーを計算するのを防ぎますが、これは領域効率が悪くなります。

RAID レベル 10 の作成は、インストール時には対応していません。インストール後に手動で作成できます。

リニア RAID

リニア RAID は、より大きな仮想ドライブを作成するドライブのグループ化です。

リニア RAID では、あるメンバードライブからチャンクが順次割り当てられます。最初のドライブが完全に満杯になったときにのみ次のドライブに移動します。これにより、メンバードライブ間の I/O 操作が分割される可能性はないため、パフォーマンスの向上は見られません。リニア RAID は冗長性がなく、信頼性は低下します。メンバードライブが 1 台でも故障すると、アレイ全体が使用できなくなり、データが失われる可能性があります。容量はすべてのメンバーディスクの合計になります。

58.7.3. LVM RAID のセグメントタイプ

RAID 論理ボリュームを作成するには、RAID タイプを lvcreate コマンドの --type 引数として指定します。ほとんどのユーザーの場合、raid1raid4raid5raid6raid10 の 5 つの使用可能なプライマリータイプのいずれかを指定するだけで十分です。

以下の表は、考えられる RAID セグメントタイプを示しています。

表58.1 LVM RAID のセグメントタイプ
セグメントタイプ説明

raid1

RAID1 ミラーリング。-m 引数を指定し、ストライピングを指定しない場合は、これが lvcreate コマンドの --type 引数のデフォルト値になります。

raid4

RAID4 専用パリティーディスク

raid5_la

  • RAID5 left asymmetric
  • ローテートパリティー 0 + データ継続

raid5_ra

  • RAID5 right asymmetric
  • ローテートパリティー N + データ継続

raid5_ls

  • RAID5 left symmetric
  • raid5 と同じです。
  • ローテートパリティー 0 +データ再起動

raid5_rs

  • RAID5 right symmetric
  • ローテートパリティー N + データ再起動

raid6_zr

  • RAID6 zero restart
  • raid6 と同じです。
  • ローテートパリティーゼロ (左から右) + データ再起動

raid6_nr

  • RAID6 N restart
  • ローテートパリティー N (左から右) + データ再起動

raid6_nc

  • RAID6 N continue
  • ローテートパリティー N (左から右) + データを継続

raid10

  • ストライピング + ミラーリング。-m 引数を指定し、1 よりも大きい数をストライプの数として指定すると、これが lvcreate コマンドの --type 引数のデフォルト値になります。
  • ミラーセットのストライピング

raid0/raid0_meta

ストライピング。RAID0 では、ストライプサイズの単位で、複数のデータサブボリュームに論理ボリュームデータが分散されます。これは、パフォーマンスを向上させるために使用します。論理ボリュームのデータは、いずれかのデータサブボリュームで障害が発生すると失われます。

58.7.4. RAID 論理ボリュームの作成

-m 引数に指定する値に応じて、複数のコピーを持つ RAID1 アレイを作成できます。同様に、-i 引数を使用して、RAID 0、4、5、6、10 論理ボリュームのストライピング数を指定できます。-I 引数で、ストライプのサイズを指定することもできます。以下の手順では、異なるタイプの RAID 論理ボリュームを作成するさまざまな方法を説明します。

手順

  • 2 方向 RAID を作成します。以下のコマンドは、ボリュームグループ my_vg 内にサイズが 1G の 2 方向 RAID1 アレイ my_lv を作成します。

    # lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
    Logical volume "my_lv" created.
  • ストライピングで RAID5 アレイを作成します。次のコマンドは、ボリュームグループ my_vg に、3 つのストライプと 1 つの暗黙のパリティードライブ (my_lv) を持つ、サイズが 1G の RAID5 アレイを作成します。LVM ストライピングボリュームと同様にストライピングの数を指定できることに注意してください。正しい数のパリティードライブが自動的に追加されます。

    # lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
  • ストライピングで RAID6 アレイを作成します。次のコマンドは、ボリュームグループ my_vg に 3 つの 3 ストライプと 2 つの暗黙的なパリティードライブ (my_lv という名前) を持つ RAID6 アレイを作成します。これは、1G 1 ギガバイトのサイズです。

    # lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg

検証

  • 2 ウェイ RAID1 アレイである LVM デバイス my_vg/my_lv を表示します。
# lvs -a -o name,copy_percent,devices _my_vg_
  LV                Copy%  Devices
  my_lv             6.25    my_lv_rimage_0(0),my_lv_rimage_1(0)
  [my_lv_rimage_0]         /dev/sde1(0)
  [my_lv_rimage_1]         /dev/sdf1(1)
  [my_lv_rmeta_0]          /dev/sde1(256)
  [my_lv_rmeta_1]          /dev/sdf1(0)

関連情報

  • システム上の lvcreate(8) および lvmraid(7) man ページ

58.7.5. RAID0 ストライプ化論理ボリュームの作成

RAID0 論理ボリュームは、論理ボリュームデータをストライプサイズ単位で複数のデータサブボリューム全体に分散します。以下の手順では、ディスク間でデータをストライピングする mylv という LVM RAID0 論理ボリュームを作成します。

前提条件

  1. 3 つ以上の物理ボリュームを作成している。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。
  2. ボリュームグループを作成している。詳細は、LVM ボリュームグループの作成 を参照してください。

手順

  1. 既存のボリュームグループから RAID0 論理ボリュームを作成します。次のコマンドは、ボリュームグループ myvg から RAID0 ボリューム mylv を作成します。このボリュームは、サイズが 2G で、ストライプが 3 つあります。ストライプのサイズは 4kB です。

    # lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg
      Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB(513 extents).
      Logical volume "mylv" created.
  2. RAID0 論理ボリュームにファイルシステムを作成します。以下のコマンドを使用すると、論理ボリュームに ext4 ファイルシステムが作成されます。

    # mkfs.ext4 /dev/my_vg/mylv
  3. 論理ボリュームをマウントして、ファイルシステムのディスクの領域使用率を報告します。

    # mount /dev/my_vg/mylv /mnt
    
    # df
    Filesystem             1K-blocks     Used  Available  Use% Mounted on
    /dev/mapper/my_vg-mylv   2002684     6168  1875072    1%   /mnt

検証

  • 作成された RAID0 ストライピング論理ボリュームを表示します。

    # lvs -a -o +devices,segtype my_vg
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type
      mylv my_vg rwi-a-r--- 2.00g mylv_rimage_0(0),mylv_rimage_1(0),mylv_rimage_2(0) raid0
      [mylv_rimage_0] my_vg iwi-aor--- 684.00m /dev/sdf1(0) linear
      [mylv_rimage_1] my_vg iwi-aor--- 684.00m /dev/sdg1(0) linear
      [mylv_rimage_2] my_vg iwi-aor--- 684.00m /dev/sdh1(0) linear

58.7.6. storage RHEL システムロールを使用して RAID LVM ボリュームのストライプサイズを設定する

storage システムロールを使用すると、Red Hat Ansible Automation Platform を使用して、RHEL の RAID LVM ボリュームのストライプサイズを設定できます。利用可能なパラメーターを使用して Ansible Playbook を設定し、RAID を備えた LVM プールを設定できます。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Configure stripe size for RAID LVM volumes
      hosts: managed-node-01.example.com
      roles:
        - rhel-system-roles.storage
      vars:
        storage_safe_mode: false
        storage_pools:
          - name: my_pool
            type: lvm
            disks: [sdh, sdi]
            volumes:
              - name: my_volume
                size: "1 GiB"
                mount_point: "/mnt/app/shared"
                fs_type: xfs
                raid_level: raid1
                raid_stripe_size: "256 KiB"
                state: present
  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイル
  • /usr/share/doc/rhel-system-roles/storage/ ディレクトリー
  • RAID の管理

58.7.7. RAID0 を作成するためのパラメーター

RAID0 ストライピング論理ボリュームは、lvcreate --type raid0[meta] --stripes _Stripes --stripesize StripeSize VolumeGroup [PhysicalVolumePath] コマンドを使用して作成することができます。

次の表は、RAID0 ストライピング論理ボリュームを作成するときに使用できるさまざまなパラメーターを説明しています。

表58.2 RAID0 ストライピング論理ボリュームを作成するためのパラメーター
パラメーター説明

--type raid0[_meta]

raid0 を指定すると、メタデータボリュームなしで RAID0 ボリュームが作成されます。raid0_meta を指定すると、メタデータボリュームとともに RAID0 ボリュームが作成されます。RAID0 には耐障害性がないため、RAID1/10 の場合のようにミラーリングされたすべてのデータブロックを格納したり、RAID4/5/6 の場合のようにすべてのパリティーブロックを計算して格納したりしません。したがって、ミラーリングされたブロックまたはパリティーブロックの再同期の進行状態を把握するメタデータボリュームは必要ありません。RAID0 から RAID4/5/6/10 への変換では、メタデータボリュームが必須となります。raid0_meta を指定すると、これらのメタデータボリュームが事前に割り当てられ、それぞれの割り当ての失敗を防ぐことができます。

--stripes Stripes

論理ボリュームを分散するデバイスの数を指定します。

--stripesize StripeSize

各ストライプのサイズをキロバイト単位で指定します。これは、次のデバイスに移動する前にデバイスに書き込まれるデータの量です。

VolumeGroup

使用するボリュームグループを指定します。

PhysicalVolumePath

使用するデバイスを指定します。指定しない場合は、LVM によって、Stripes オプションに指定されているデバイスの数が、各ストライプに 1 つずつ選択されます。

58.7.8. ソフトデータの破損

データストレージにおけるソフト破損は、ストレージデバイスから取得したデータが、そのデバイスに書き込まれるデータとは異なることを意味します。破損したデータは、ストレージデバイスで無期限に存在する可能性があります。破損したデータは、このデータを取得および使用するまで、検出されない可能性があります。

設定のタイプに応じて、Redundant Array of Independent Disks (RAID) 論理ボリューム (LV) は、デバイスに障害が発生した場合のデータ損失を防ぎます。RAID アレイで構成されているデバイスに障害が発生した場合、その RAID LV の一部である他のデバイスからデータを回復できます。ただし、RAID 設定により、データの一貫性は確保されません。ソフト破損、無兆候破損、ソフトエラー、およびサイレントエラーでは、システム設計やソフトウェアが想定どおりに機能し続けている場合でも、破損するデータを示す用語です。

デバイスマッパー (DM) 整合性は、RAID レベル 1、4、5、6、10 で使用され、ソフト破損によるデータ損失を軽減または防止します。RAID レイヤーでは、データの結合のないコピーが、ソフト破損エラーを修正できるようになります。整合性層は、各 RAID イメージの上にありますが、追加のサブ LV が、各 RAID イメージの整合性メタデータまたはデータチェックサムを格納します。整合性のある RAID LV からデータを取得すると、整合性データのチェックサムが破損のデータを分析します。破損が検出されると、整合性レイヤーはエラーメッセージを返し、RAID 層は、別の RAID イメージからデータの破損していないコピーを取得します。RAID レイヤーは、ソフト破損を修復するために、破損したデータを、破損していないデータで書き換えます。

DM 整合性で新しい RAID LV を作成したり、既存の RAID LV に整合性を追加する場合は、以下の点を考慮してください。

  • 整合性メタデータには、追加のストレージ領域が必要です。各 RAID イメージには、データに追加されるチェックサムがあるため、500MB の全データに 4 MB のストレージ領域が必要になります。
  • 一部の RAID 設定には、より多くの影響がありますが、データにアクセスする際のレイテンシーにより、DM 整合性を追加するとパフォーマンスに影響が及びます。RAID1 設定は通常、RAID5 またはそのバリアントよりも優れたパフォーマンスを提供します。
  • RAID 整合性ブロックサイズは、パフォーマンスにも影響を及ぼします。RAID 整合性ブロックサイズが大きいと、パフォーマンスが向上します。ただし、RAID 整合性ブロックのサイズが小さくなると、後方互換性がより高くなります。
  • 利用可能な整合性モードには、bitmap または journal の 2 つがあります。通常、bitmap 整合性モードは、journal モードよりも優れたパフォーマンスを提供します。
ヒント

パフォーマンスの問題が発生した場合は、整合性で RAID1 を使用するか、特定の RAID 設定のパフォーマンスをテストして、要件を満たすことを確認してください。

58.7.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 ログファイル内のデータ整合性情報を表示します。

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

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

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

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

関連情報

  • システム上の lvcreate(8) および lvmraid(7) man ページ

58.7.10. 最小/最大 I/O レートオプション

RAID10 論理ボリュームを作成する際に、sync 操作で論理ボリュームを初期化するのに必要なバックグラウンド I/O は、特に RAID 論理ボリュームを多数作成している場合に、他の I/O 操作 (ボリュームグループメタデータへの更新など) を LVM デバイスに押し出す可能性があります。これにより、他の LVM 操作が遅くなる可能性があります。

RAID 論理ボリュームが初期化される速度は、復旧スロットルを実装することで制御できます。sync 操作が実行される速度を制御するには、lvcreate コマンドの --minrecoveryrate および --maxrecoveryrate オプションを使用して、これらの操作の最小および最大 I/O 速度を設定します。

これらのオプションは次のように指定できます。

--maxrecoveryrate Rate[bBsSkKmMgG]
RAID 論理ボリュームの最大復旧速度を設定し、通常の I/O 操作が押し出されないようにします。Rate は、アレイ内の各デバイスに対する 1 秒あたりの量を指定します。接尾辞を指定しない場合は、kiB/sec/device とみなします。復旧速度を 0 に設定すると無制限になります。
--minrecoveryrate Rate[bBsSkKmMgG]
RAID 論理ボリュームの最小復旧速度を設定し、負荷の高い通常の I/O がある場合でも、同期操作の I/O が最小スループットを達成できるようにします。Rate は、アレイ内の各デバイスに対する 1 秒あたりの量を指定します。接尾辞を指定しない場合は、kiB/sec/device とみなします。

たとえば、lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg コマンドを使用して、ボリュームグループ my_vg 内に 3 ストライプでサイズ 10G、最大回復速度 128 kiB/sec/device の 2 方向の RAID10 アレイ my_lv を作成します。RAID のスクラブ操作の最小および最大復旧速度を指定することもできます。

58.7.11. リニアデバイスの RAID 論理ボリュームへの変換

既存のリニア論理ボリュームを RAID 論理ボリュームに変換することができます。この操作を行うには、lvconvert コマンドの --type 引数を使用します。

RAID 論理ボリュームは、メタデータとデータのサブボリュームのペアで構成されています。リニアデバイスを RAID1 アレイに変換すると、新しいメタデータサブボリュームが作成され、リニアボリュームと同じ物理ボリューム上の元の論理ボリュームと関連付けられます。追加のイメージは、メタデータ/データ サブボリュームのペアに追加されます。複製元の論理ボリュームとペアのメタデータイメージを同じ物理ボリュームに配置できないと、lvconvert は失敗します。

手順

  1. 変換が必要な論理ボリュームデバイスを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV     Copy%  Devices
      my_lv         /dev/sde1(0)
  2. リニア論理ボリュームを RAID デバイスに変換します。以下のコマンドは、ボリュームグループ __my_vg のリニア論理ボリューム my_lv を、2 方向の RAID1 アレイに変換します。

    # lvconvert --type raid1 -m 1 my_vg/my_lv
      Are you sure you want to convert linear LV my_vg/my_lv to raid1 with 2 images enhancing resilience? [y/n]: y
      Logical volume my_vg/my_lv successfully converted.

検証

  • 論理ボリュームが RAID デバイスに変換されているかどうかを確認します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            6.25   my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(0)
      [my_lv_rimage_1]        /dev/sdf1(1)
      [my_lv_rmeta_0]         /dev/sde1(256)
      [my_lv_rmeta_1]         /dev/sdf1(0)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.12. LVM RAID1 論理ボリュームを LVM リニア論理ボリュームに変換

既存の RAID1 LVM 論理ボリュームを LVM リニア論理ボリュームに変換することができます。この操作を行うには、lvconvert コマンドを使用し、-m0 引数を指定します。これにより、RAID アレイを構成する全 RAID データサブボリュームおよび全 RAID メタデータサブボリュームが削除され、最高レベルの RAID1 イメージがリニア論理ボリュームとして残されます。

手順

  1. 既存の LVM RAID1 論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(1)
      [my_lv_rimage_1]        /dev/sdf1(1)
      [my_lv_rmeta_0]         /dev/sde1(0)
      [my_lv_rmeta_1]         /dev/sdf1(0)
  2. 既存の RAID1 LVM 論理ボリュームを LVM リニア論理ボリュームに変換します。以下のコマンドは、LVM RAID1 論理ボリューム my_vg/my_lv を、LVM リニアデバイスに変換します。

    # lvconvert -m0 my_vg/my_lv
      Are you sure you want to convert raid1 LV my_vg/my_lv to type linear losing all resilience? [y/n]: y
      Logical volume my_vg/my_lv successfully converted.

    LVM RAID1 論理ボリューム を LVM リニアボリュームに変換する場合は、削除する物理ボリュームを指定することもできます。以下の例では、lvconvert コマンドは /dev/sde1 を削除して、/dev/sdf1 をリニアデバイスを構成する物理ボリュームとして残すように指定します。

    # lvconvert -m0 my_vg/my_lv /dev/sde1

検証

  • RAID1 論理ボリュームが LVM リニアデバイスに変換されたかどうかを確認します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV    Copy%  Devices
      my_lv        /dev/sdf1(1)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.13. ミラーリングされた LVM デバイスの RAID1 論理ボリュームへの変換

セグメントタイプのミラーを持つ既存のミラーリングされた LVM デバイスを RAID1 LVM デバイスに変換できます。この操作を行うには、--type raid1 引数を指定して、lvconvert コマンドを使用します。これにより、mimage という名前のミラーサブボリュームの名前が、rimage という名前の RAID サブボリュームに変更されます。

さらに、ミラーログも削除し、対応するデータサブボリュームと同じ物理ボリューム上に、データサブボリューム用の rmeta という名前のメタデータサブボリュームを作成します。

手順

  1. ミラーリングされた論理ボリューム my_vg/my_lv の のレイアウトを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             15.20 my_lv_mimage_0(0),my_lv_mimage_1(0)
      [my_lv_mimage_0]        /dev/sde1(0)
      [my_lv_mimage_1]        /dev/sdf1(0)
      [my_lv_mlog]            /dev/sdd1(0)
  2. ミラーリングされた論理ボリューム my_vg/my_lv を RAID1 論理ボリュームに変換します。

    # lvconvert --type raid1 my_vg/my_lv
    Are you sure you want to convert mirror LV my_vg/my_lv to raid1 type? [y/n]: y
    Logical volume my_vg/my_lv successfully converted.

検証

  • ミラーリングされた論理ボリュームが RAID1 論理ボリュームに変換されているかどうかを確認します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(0)
      [my_lv_rimage_1]        /dev/sdf1(0)
      [my_lv_rmeta_0]         /dev/sde1(125)
      [my_lv_rmeta_1]         /dev/sdf1(125)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.14. RAID 論理ボリュームのサイズを変更するコマンド

RAID 論理ボリュームのサイズは、以下の方法で変更できます。

  • いずれのタイプの RAID 論理ボリュームのサイズも、lvresize コマンドまたは lvextend コマンドで増やすことができます。これは、RAID イメージの数を変更するものではありません。ストライプ化 RAID 論理ボリュームでは、ストライプ化 RAID 論理ボリュームの作成時に同様のストライプを丸める制約が適用されます。
  • いずれのタイプの RAID 論理ボリュームのサイズも、lvresize コマンドまたは lvreduce コマンドで減らすことができます。これは、RAID イメージの数を変更するものではありません。lvextend コマンドと同様に、ストライプ化 RAID 論理ボリュームの作成時にも同じストライプを丸める制約が制約が適用されます。
  • lvconvert コマンドの --stripes N パラメーターを使用して、RAID4、RAID5、RAID6、または RAID10 などのストライプ化 RAID 論理ボリューム上のストライプの数を変更できます。このように、ストライプを追加または削除することで、RAID 論理ボリュームのサイズを増減できます。raid10 ボリュームにはストライプを追加することしかできないため注意してください。この機能は RAID の再形成機能の一部です。この機能を使用すると、同じ RAID レベルを維持したまま RAID 論理ボリュームの属性を変更できます。

58.7.15. 既存の RAID1 デバイスのイメージ数を変更

LVM ミラーリングの実装でイメージの数を変更できる方法と同様に、既存の RAID1 アレイのイメージの数を変更できます。

lvconvert コマンドを使用して RAID1 論理ボリュームにイメージを追加すると、次の操作を実行できます。

  • 結果として作成されるデバイス用イメージの総数を指定する
  • デバイスに追加するイメージの数
  • オプションで、新しいメタデータ/データイメージのペアが存在する物理ボリュームを指定する

手順

  1. 2 ウェイ RAID1 アレイである LVM デバイス my_vg/my_lv を表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV                Copy%  Devices
      my_lv             6.25    my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]         /dev/sde1(0)
      [my_lv_rimage_1]         /dev/sdf1(1)
      [my_lv_rmeta_0]          /dev/sde1(256)
      [my_lv_rmeta_1]          /dev/sdf1(0)

    メタデータサブボリューム (rmeta と呼ばれる) は、対応するデータサブボリューム (rimage) と同じ物理デバイスに常に存在します。メタデータ/データのサブボリュームのペアは、--alloc をどこかに指定しない限り、RAID アレイにある別のメタデータ/データサブボリュームのペアと同じ物理ボリュームには作成されません。

  2. 2 ウェイ RAID1 論理ボリューム my_vg/my_lv を 3 ウェイ RAID1 論理ボリュームに変換します。

    # lvconvert -m 2 my_vg/my_lv
    Are you sure you want to convert raid1 LV my_vg/my_lv to 3 images enhancing resilience? [y/n]: y
    Logical volume my_vg/my_lv successfully converted.

    既存の RAID1 デバイスのイメージ数を変更する場合の例を以下に示します。

    • また、RAID にイメージを追加する際に、使用する物理ボリュームを指定することもできます。次のコマンドは、アレイに使用する物理ボリューム /dev/sdd1 を指定することにより、2 方向 RAID1 論理ボリューム my_vg/my_lv を 3 方向 RAID1 論理ボリュームに変換します。

      # lvconvert -m 2 my_vg/my_lv /dev/sdd1
    • 3 方向 RAID1 論理ボリュームを 2 方向 RAID1 論理ボリュームに変換します。

      # lvconvert -m1 my_vg/my_lv
      Are you sure you want to convert raid1 LV my_vg/my_lv to 2 images reducing resilience? [y/n]: y
      Logical volume my_vg/my_lv successfully converted.
    • 削除するイメージを含む物理ボリューム /dev/sde1 を指定して、3 方向 RAID1 論理ボリュームを 2 方向 RAID1 論理ボリュームに変換します。

      # lvconvert -m1 my_vg/my_lv /dev/sde1

      また、イメージとその関連付けられたメタデータのサブボリュームを削除すると、それよりも大きな番号のイメージが下に移動してそのスロットを引き継ぎます。lv_rimage_0lv_rimage_1、および lv_rimage_2 で構成される 3 方向 RAID1 アレイからlv_rimage_1 を削除すると、lv_rimage_0lv_rimage_1 で構成される RAID1 アレイになります。サブボリューム lv_rimage_2 の名前が、空のスロットを引き継いで lv_rimage_1 になります。

検証

  • 既存の RAID1 デバイスのイメージ数を変更した後に、RAID1 デバイスを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV Cpy%Sync Devices
      my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0] /dev/sdd1(1)
      [my_lv_rimage_1] /dev/sde1(1)
      [my_lv_rimage_2] /dev/sdf1(1)
      [my_lv_rmeta_0] /dev/sdd1(0)
      [my_lv_rmeta_1] /dev/sde1(0)
      [my_lv_rmeta_2] /dev/sdf1(0)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.16. RAID イメージを複数の論理ボリュームに分割

RAID 論理ボリュームのイメージを分割して新しい論理ボリュームを形成できます。既存の RAID1 論理ボリュームから RAID イメージを削除する場合と同様に、RAID データのサブボリューム (およびその関連付けられたメタデータのサブボリューム) をデバイスから削除する場合、それより大きい番号のイメージは、そのスロットを埋めるために番号が変更になります。そのため、RAID アレイを構成する論理ボリューム上のインデックス番号は連続する整数となります。

注記

RAID1 アレイがまだ同期していない場合は、RAID イメージを分割できません。

手順

  1. 2 ウェイ RAID1 アレイである LVM デバイス my_vg/my_lv を表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             12.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(1)
      [my_lv_rimage_1]        /dev/sdf1(1)
      [my_lv_rmeta_0]         /dev/sde1(0)
      [my_lv_rmeta_1]         /dev/sdf1(0)
  2. RAID イメージを別の論理ボリュームに分割します。

    • 以下の例は、2 方向の RAID1 論理ボリューム my_lv を、my_lvnew の 2 つのリニア論理ボリュームに分割します。

      # lvconvert --splitmirror 1 -n new my_vg/my_lv
      Are you sure you want to split raid1 LV my_vg/my_lv losing all resilience? [y/n]: y
    • 以下の例は、3 方向の RAID1 論理ボリューム my_lv を、2 方向の RAID1 論理ボリューム my_lv と、リニア論理ボリューム new に分割します。

      # lvconvert --splitmirror 1 -n new my_vg/my_lv

検証

  • RAID 論理ボリュームのイメージを分割した後に、論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV      Copy%  Devices
      my_lv          /dev/sde1(1)
      new            /dev/sdf1(1)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.17. RAID イメージの分割とマージ

lvconvert コマンドで、--splitmirrors 引数とともに --trackchanges 引数を使用すると、すべての変更を追跡しながら、RAID1 アレイのイメージを一時的に読み取り専用に分割できます。この機能を使えば、イメージを分割した後に変更した部分のみを再同期しながら、後でイメージをアレイに統合することができます。

--trackchanges 引数を使用して RAID イメージを分割する場合、分割するイメージを指定することはできますが、分割されるボリューム名を変更することはできません。また、作成されたボリュームには以下の制約があります。

  • 作成された新規ボリュームは読み取り専用です。
  • 新規ボリュームのサイズは変更できません。
  • 残りのアレイの名前は変更できません。
  • 残りのアレイのサイズは変更できません。
  • 新規のボリュームと、残りのアレイを個別にアクティブにすることはできません。

分割されたイメージを結合することができます。イメージをマージすると、イメージが分割されてから変更したアレイの部分のみが再同期されます。

手順

  1. RAID 論理ボリュームを作成します。

    # lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg
      Logical volume "my_lv" created
  2. オプション: 作成した RAID 論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv          100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [my_lv_rimage_2]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc1(0)
      [my_lv_rmeta_2]         /dev/sdd1(0)
  3. 作成した RAID 論理ボリュームからイメージを分割し、残りのアレイへの変更を追跡します。

    # lvconvert --splitmirrors 1 --trackchanges my_vg/my_lv
      my_lv_rimage_2 split from my_lv for read-only purposes.
      Use 'lvconvert --merge my_vg/my_lv_rimage_2' to merge back into my_lv
  4. オプション: イメージを分割した後の論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sdc1(1)
      [my_lv_rimage_1]          /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdc1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
  5. ボリュームをアレイにマージして戻します。

    # lvconvert --merge my_vg/my_lv_rimage_1
      my_vg/my_lv_rimage_1 successfully merged back into my_vg/my_lv

検証

  • マージされた論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sdc1(1)
      [my_lv_rimage_1]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdc1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.18. RAID 障害ポリシーの設定

/etc/lvm/lvm.conf ファイルの raid_fault_policy フィールドの設定に基づいて、LVM RAID はデバイスの障害を自動的に処理します。要件に応じて、raid_fault_policy フィールドを次のパラメーターのいずれかに設定できます。

warn

このパラメーターを使用すると、障害が発生したデバイスを手動で修復し、システムログを使用して警告を表示できます。

デフォルトでは、lvm.confraid_fault_policy フィールドの値は warn です。十分な数のデバイスが動作している場合、RAID 論理ボリュームは動作し続けます。

allocate
このパラメーターを使用すると、障害が発生したデバイスを自動的に交換できます。

58.7.18.1. RAID 障害ポリシーを allocate に設定する

/etc/lvm/lvm.conf ファイルで、raid_fault_policy フィールドを assign パラメーターに設定できます。この設定を使用すると、システムは障害が発生したデバイスをボリュームグループのスペアデバイスと交換しようとします。スペアデバイスがない場合は、システムログにこの情報が追加されます。

手順

  1. RAID 論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
    
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [my_lv_rimage_2]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc1(0)
      [my_lv_rmeta_2]         /dev/sdd1(0)
  2. /dev/sdb デバイスに障害が発生したら、RAID 論理ボリュームを表示します。

    # lvs --all --options name,copy_percent,devices my_vg
    
      /dev/sdb: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices.
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        [unknown](1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [...]

    /dev/sdb デバイスに障害が発生した場合は、システムログを表示してエラーメッセージを確認することもできます。

  3. lvm.conf ファイルで、raid_fault_policy フィールドを allocate に設定します。

     # vi /etc/lvm/lvm.conf
     raid_fault_policy = "allocate"
    注記

    raid_fault_policyallocate に設定しても、スペアデバイスがない場合、割り当ては失敗し、論理ボリュームがそのままの状態になります。割り当てが失敗した場合は、lvconvert --repair コマンドを使用して、失敗したデバイスを修復および交換できます。詳細は、論理ボリュームに障害が発生した RAID デバイスの交換 を参照してください。

検証

  • 障害が発生したデバイスがボリュームグループの新しいデバイスに置き換えられたかどうかを確認します。

    # lvs -a -o name,copy_percent,devices my_vg
      Couldn't find device with uuid 3lugiV-3eSP-AFAR-sdrP-H20O-wM2M-qdMANy.
      LV            Copy%  Devices
      lv            100.00 lv_rimage_0(0),lv_rimage_1(0),lv_rimage_2(0)
      [lv_rimage_0]        /dev/sdh1(1)
      [lv_rimage_1]        /dev/sdc1(1)
      [lv_rimage_2]        /dev/sdd1(1)
      [lv_rmeta_0]         /dev/sdh1(0)
      [lv_rmeta_1]         /dev/sdc1(0)
      [lv_rmeta_2]         /dev/sdd1(0)
    注記

    障害が発生したデバイスは交換されたが、デバイスがまだボリュームグループから削除されていないため、LVM によって障害が発生したデバイスが検出されなかったことが表示されます。vgreduce --removemissing my_vg コマンドを実行すると、障害が発生したデバイスをボリュームグループから削除できます。

関連情報

  • システム上の lvm.conf(5) man ページ

58.7.18.2. RAID 障害ポリシーを warn に設定する

lvm.conf ファイルで、raid_fault_policy フィールドを warn パラメーターに設定できます。この設定を使用すると、システムは、障害が発生したデバイスを示す警告をシステムログに追加します。警告に基づいて、その後の手順を決定できます。

手順

  1. RAID 論理ボリュームを表示します。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [my_lv_rimage_2]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc1(0)
      [my_lv_rmeta_2]         /dev/sdd1(0)
  2. lvm.conf ファイルで、raid_fault_policy フィールドを warn に設定します。

    # vi /etc/lvm/lvm.conf
     # This configuration option has an automatic default value.
     raid_fault_policy = "warn"
  3. /dev/sdb デバイスに障害が発生したら、システムログを表示してエラーメッセージを表示します。

    # grep lvm /var/log/messages
    
    Apr 14 18:48:59 virt-506 kernel: sd 25:0:0:0: rejecting I/O to offline device
    Apr 14 18:48:59 virt-506 kernel: I/O error, dev sdb, sector 8200 op 0x1:(WRITE) flags 0x20800 phys_seg 0 prio class 2
    [...]
    Apr 14 18:48:59 virt-506 dmeventd[91060]: WARNING: VG my_vg is missing PV 9R2TVV-bwfn-Bdyj-Gucu-1p4F-qJ2Q-82kCAF (last written to /dev/sdb).
    Apr 14 18:48:59 virt-506 dmeventd[91060]: WARNING: Couldn't find device with uuid 9R2TVV-bwfn-Bdyj-Gucu-1p4F-qJ2Q-82kCAF.
    Apr 14 18:48:59 virt-506 dmeventd[91060]: Use 'lvconvert --repair my_vg/ly_lv' to replace failed device.

    /dev/sdb デバイスに障害が発生すると、システムログにエラーメッセージが表示されます。ただし、この場合、LVM はイメージの 1 つを置き換えて、RAID デバイスを自動的に修復しようとはしません。したがって、デバイスに障害が発生したら、lvconvert コマンドの --repair 引数を使用してデバイスを置き換えることができます。詳細は、論理ボリュームに障害が発生した RAID デバイスの交換 を参照してください。

関連情報

  • システム上の lvm.conf(5) man ページ

58.7.19. 論理ボリュームで RAID デバイスの交換

次のシナリオに応じて、論理ボリューム内の RAID デバイスを交換できます。

  • 動作中の RAID デバイスを交換します。
  • 論理ボリュームに障害が発生した RAID デバイスを交換します。

58.7.19.1. 動作中の RAID デバイスの交換

lvconvert コマンドの --replace 引数を使用して、論理ボリューム内の動作中の RAID デバイスを交換できます。

警告

RAID デバイスに障害が発生した場合、次のコマンドは機能しません。

前提条件

  • RAID デバイスに障害が発生していません。

手順

  1. RAID1 アレイを作成します。

    # lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg
      Logical volume "my_lv" created
  2. 作成した RAID1 アレイを調べます。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdb2(1)
      [my_lv_rimage_2]        /dev/sdc1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdb2(0)
      [my_lv_rmeta_2]         /dev/sdc1(0)
  3. 要件に応じて、次のいずれかの方法で RAID デバイスを交換します。

    1. 交換する物理ボリュームを指定して、RAID1 デバイスを交換します。

      # lvconvert --replace /dev/sdb2 my_vg/my_lv
    2. 交換に使用する物理ボリュームを指定して、RAID1 デバイスを交換します。

      # lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
    3. 複数の replace 引数を指定して、一度に複数の RAID デバイスを交換します。

      # lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv

検証

  1. 交換する物理ボリュームを指定した後、RAID1 アレイを調べます。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             37.50 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc2(1)
      [my_lv_rimage_2]        /dev/sdc1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc2(0)
      [my_lv_rmeta_2]         /dev/sdc1(0)
  2. 交換に使用する物理ボリュームを指定した後、RAID1 アレイを調べます。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             28.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sda1(1)
      [my_lv_rimage_1]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sda1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
  3. 一度に複数の RAID デバイスを交換した後、RAID1 アレイを調べます。

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             60.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sda1(1)
      [my_lv_rimage_1]        /dev/sdd1(1)
      [my_lv_rimage_2]        /dev/sde1(1)
      [my_lv_rmeta_0]         /dev/sda1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
      [my_lv_rmeta_2]         /dev/sde1(0)

関連情報

  • システム上の lvconvert(8) man ページ

58.7.19.2. 論理ボリュームに障害が発生した RAID デバイスの交換

RAID は従来の LVM ミラーリングとは異なります。LVM ミラーリングの場合は、障害が発生したデバイスを削除します。そうしないと、障害が発生したデバイスで RAID アレイが動作し続ける間、ミラーリングされた論理ボリュームがハングします。RAID1 以外の RAID レベルの場合、デバイスを削除すると、デバイスはより低いレベルの RAID に変換されます (たとえば、RAID6 から RAID5 へ、または RAID4 または RAID5 から RAID0 への変換)。

LVM では、障害が発生したデバイスを取り外して代替デバイスを割り当てる代わりに、lvconvert コマンドの --repair 引数を使用して、RAID 論理ボリューム内で物理ボリュームとして機能する障害が発生したデバイスを交換できます。

前提条件

  • ボリュームグループには、障害が発生したデバイスを置き換えるのに十分な空き容量を提供する物理ボリュームが含まれています。

    ボリュームグループに十分な空きエクステントがある物理ボリュームがない場合は、vgextend ユーティリティーを使用して、十分なサイズの物理ボリュームを新たに追加します。

手順

  1. RAID 論理ボリュームを表示します。

    # lvs --all --options name,copy_percent,devices my_vg
      LV               Cpy%Sync Devices
      my_lv            100.00   my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          /dev/sdc1(1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           /dev/sdc1(0)
      [my_lv_rmeta_2]           /dev/sdd1(0)
  2. /dev/sdc デバイスに障害が発生したら、RAID 論理ボリュームを表示します。

    # lvs --all --options name,copy_percent,devices my_vg
      /dev/sdc: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices.
      LV               Cpy%Sync Devices
      my_lv            100.00   my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          [unknown](1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           [unknown](0)
      [my_lv_rmeta_2]           /dev/sdd1(0)
  3. 障害が発生したデバイスを交換します。

    # lvconvert --repair my_vg/my_lv
      /dev/sdc: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices.
    Attempt to replace failed RAID images (requires full device resync)? [y/n]: y
    Faulty devices in my_vg/my_lv successfully replaced.
  4. オプション: 障害が発生したデバイスを置き換える物理ボリュームを手動で指定します。

    # lvconvert --repair my_vg/my_lv replacement_pv
  5. 代替の論理ボリュームを調べます。

    # lvs --all --options name,copy_percent,devices my_vg
    
      /dev/sdc: open failed: No such device or address
      /dev/sdc1: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      LV               Cpy%Sync Devices
      my_lv            43.79    my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          /dev/sdb1(1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           /dev/sdb1(0)
      [my_lv_rmeta_2]           /dev/sdd1(0)

    障害が発生したデバイスをボリュームグループから削除するまで、LVM ユーティリティーは、障害が発生したデバイスが見つけられないことを示しています。

  6. 障害が発生したデバイスをボリュームグループから削除します。

    # vgreduce --removemissing my_vg

検証

  1. 障害が発生したデバイスを取り外した後、利用可能な物理ボリュームを表示します。

    # pvscan
    PV /dev/sde1 VG rhel_virt-506 lvm2 [<7.00 GiB / 0 free]
    PV /dev/sdb1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free]
    PV /dev/sdd1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free]
    PV /dev/sdd1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free]
  2. 障害が発生したデバイスを交換した後、論理ボリュームを調べます。

    # lvs --all --options name,copy_percent,devices my_vg
    my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          /dev/sdb1(1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           /dev/sdb1(0)
      [my_lv_rmeta_2]           /dev/sdd1(0)

関連情報

  • システム上の lvconvert(8) および vgreduce(8) man ページ

58.7.20. RAID 論理ボリュームでのデータ整合性の確認

LVM は、RAID 論理ボリュームのスクラビングに対応します。RAID スクラビングは、アレイ内のデータおよびパリティーブロックをすべて読み込み、それが一貫しているかどうかを確認するプロセスです。lvchange --syncactionrepair コマンドは、アレイでバックグラウンドの同期アクションを開始します。次の属性は、データの整合性に関する詳細を提供します。

  • raid_sync_action フィールドには、RAID 論理ボリュームが実行している現在の同期アクションが表示されます。値は次のいずれかです。

    idle
    すべての sync アクションが完了しました (何も実行していません)。
    resync
    マシンの不完全なシャットダウン後にアレイを初期化または再同期しています。
    recover
    アレイ内のデバイスを交換しています。
    check
    アレイの不一致を検索しています。
    repair
    不一致を検索して修復しています。
  • raid_mismatch_count フィールドには、check アクション中に検出された不一致の数が表示されます。
  • Cpy%Sync フィールドには、sync アクションの進行状況が表示されます。
  • lv_attr フィールドは、追加のインジケーターを提供します。このフィールドのビット 9 は、論理ボリュームの正常性を示し、以下のインジケーターに対応しています。

    m または mismatches
    RAID 論理ボリュームに不一致があることを示します。この文字は、スクラビング操作によって RAID の一貫性のない部分が検出された後に表示されます。
    r または refresh
    LVM がデバイスラベルを読み取ることができ、デバイスが動作しているとみなされる場合でも、RAID アレイ内に障害が発生したデバイスがあることを示します。デバイスが利用可能になったことをカーネルに通知するように論理ボリュームを更新するか、デバイスに障害が発生したと思われる場合はデバイスを交換します。

手順

  1. オプション: スクラビングプロセスが使用する I/O 帯域幅を制限します。RAID スクラビング操作を実行すると、sync アクションに必要なバックグラウンド I/O が、LVM デバイスへの他の I/O (ボリュームグループメタデータの更新など) よりも優先される可能性があります。これにより、他の LVM 操作が遅くなる可能性があります。

    リカバリースロットルを実装してスクラビング操作のレートを制御できます。lvchange --syncaction コマンドで --maxrecoveryrate Rate[bBsSkKmMgG] または --minrecoveryrate Rate[bBsSkKmMgG] を使用して復旧速度を設定できます。詳細は、最小/最大 I/O レートオプション を参照してください。

    Rate 値は、アレイ内の各デバイスに対する 1 秒あたりのデータ通信量を指定します。接尾辞を指定しないと、オプションはデバイスごとの 1 秒あたらりの kiB を想定します。

  2. アレイ内の不一致数を修復せずに、アレイ内の不一致の数を表示します。

    # lvchange --syncaction check my_vg/my_lv

    このコマンドは、アレイでバックグラウンドの同期アクションを開始します。

  3. オプション: var/log/syslog ファイルでカーネルメッセージを確認します。
  4. アレイ内の不一致を修正します。

    # lvchange --syncaction repair my_vg/my_lv

    このコマンドは、RAID 論理ボリューム内の障害が発生したデバイスを修復または交換します。このコマンドを実行したら、var/log/syslog ファイルでカーネルメッセージを確認できます。

検証

  1. スクラビング操作に関する情報を表示します。

    # 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

関連情報

58.7.21. RAID 論理ボリュームの別の RAID レベルへの変換

LVM は RAID テイクオーバーをサポートしています。これは、RAID 論理ボリュームの RAID レベルを別の RAID レベルに変換 (たとえば RAID 5 から RAID 6) することを意味します。RAID レベルを変更して、デバイスの障害に対する耐障害性を増減できます。

手順

  1. RAID 論理ボリュームを作成します。

    # lvcreate --type raid5 -i 3 -L 500M -n my_lv my_vg
    Using default stripesize 64.00 KiB.
    Rounding size 500.00 MiB (125 extents) up to stripe boundary size 504.00 MiB (126 extents).
    Logical volume "my_lv" created.
  2. RAID 論理ボリュームを表示します。

    # lvs -a -o +devices,segtype
      LV               VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                                                 Type
      my_lv            my_vg         rwi-a-r--- 504.00m                                    100.00           my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0),my_lv_rimage_3(0) raid5
      [my_lv_rimage_0] my_vg         iwi-aor--- 168.00m                                                     /dev/sda(1)                                                             linear
  3. RAID 論理ボリュームを別の RAID レベルに変換します。

    # lvconvert --type raid6 my_vg/my_lv
    Using default stripesize 64.00 KiB.
    Replaced LV type raid6 (same as raid6_zr) with possible type raid6_ls_6.
    Repeat this command to convert to raid6 after an interim conversion has finished.
    Are you sure you want to convert raid5 LV my_vg/my_lv to raid6_ls_6 type? [y/n]: y
    Logical volume my_vg/my_lv successfully converted.
  4. オプション: このコマンドで変換を繰り返すように求められた場合は、次のコマンドを実行します。

    # lvconvert --type raid6 my_vg/my_lv

検証

  1. RAID レベルを変換した RAID 論理ボリュームを表示します。

    # lvs -a -o +devices,segtype
      LV               VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                                                                   Type
      my_lv            my_vg         rwi-a-r--- 504.00m                                    100.00           my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0),my_lv_rimage_3(0),my_lv_rimage_4(0) raid6
      [my_lv_rimage_0] my_vg         iwi-aor--- 172.00m                                                     /dev/sda(1)                                                                               linear

関連情報

  • システム上の lvconvert(8) および lvmraid(8) man ページ

58.7.22. RAID1 論理ボリュームでの I/O 操作

lvchange コマンドの --writemostly パラメーターおよび --writebehind パラメーターを使用して、RAID1 論理ボリュームのデバイスに対する I/O 操作を制御できます。これらのパラメーターを使用する形式は次のとおりです。

--[raid]writemostly PhysicalVolume[:{t|y|n}]

RAID1 論理ボリューム内のデバイスは、write-mostly としてマークして、必要な場合を除き、これらのドライブに対するすべての読み取りアクションを回避します。このパラメーターを設定することにより、ドライブに対する I/O 操作の回数を最小限に抑えることができます。このパラメーターを設定するには、lvchange --writemostly /dev/sdb my_vg/ly_lv コマンドを使用します。

次の方法で writemostly 属性を設定できます。

:y
デフォルトでは、論理ボリューム内の指定された物理ボリュームの writemostly 属性の値は yes です。
:n
writemostly フラグを削除するには、物理ボリュームに :n を追加します。
:t
writemostly 属性の値を切り替えるには、--writemostly 引数を指定します。この引数を 1 つのコマンドで複数回使用すると、論理ボリューム内のすべての物理ボリュームの writemostly 属性を一度に切り替えることができます。
--[raid]writebehind IOCount

writemostly としてマークされた保留中の書き込みの最大数を指定します。これらは、RAID1 論理ボリューム内のデバイスに適用される書き込み操作の数です。このパラメーターの値を超えると、RAID アレイがすべての書き込みアクションの完了を通知する前に、構成デバイスへのすべての書き込みアクションが同期的に完了します。

このパラメーターは lvchange --writebehind 100 my_vg/ly_lv コマンドを使用して設定できます。writemostly 属性の値をゼロに設定すると、設定がクリアされます。この設定では、システムが値を任意に選択します。

58.7.23. RAID ボリュームの再形成

RAID の再形成とは、RAID レベルを変更せずに、RAID 論理ボリュームの属性を変更することを意味します。変更できる属性には、RAID レイアウト、ストライプのサイズ、ストライプの数などがあります。

手順

  1. RAID 論理ボリュームを作成します。

    # lvcreate --type raid5 -i 2 -L 500M -n my_lv my_vg
    
    Using default stripesize 64.00 KiB.
    Rounding size 500.00 MiB (125 extents) up to stripe boundary size 504.00 MiB (126 extents).
    Logical volume "my_lv" created.
  2. RAID 論理ボリュームを表示します。

    # lvs -a -o +devices
    
    LV               VG    Attr       LSize   Pool   Origin Data% Meta% Move Log Cpy%Sync Convert Devices
    my_lv            my_vg rwi-a-r--- 504.00m                                    100.00            my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
    [my_lv_rimage_0] my_vg iwi-aor--- 252.00m                                                      /dev/sda(1)
    [my_lv_rimage_1] my_vg iwi-aor--- 252.00m                                                      /dev/sdb(1)
    [my_lv_rimage_2] my_vg iwi-aor--- 252.00m                                                      /dev/sdc(1)
    [my_lv_rmeta_0]  my_vg ewi-aor---   4.00m                                                      /dev/sda(0)
    [my_lv_rmeta_1]  my_vg ewi-aor---   4.00m                                                      /dev/sdb(0)
    [my_lv_rmeta_2]  my_vg ewi-aor---   4.00m                                                      /dev/sdc(0)
  3. オプション: RAID 論理ボリュームの stripes イメージと stripesize を表示します。

    # lvs -o stripes my_vg/my_lv
      #Str
         3
    # lvs -o stripesize my_vg/my_lv
      Stripe
      64.00k
  4. 要件に応じて次の方法を使用して、RAID 論理ボリュームの属性を変更します。

    1. RAID 論理ボリュームの stripes イメージを変更します。

      # lvconvert --stripes 3 my_vg/my_lv
      Using default stripesize 64.00 KiB.
      WARNING: Adding stripes to active logical volume my_vg/my_lv will grow it from 126 to 189 extents!
      Run "lvresize -l126 my_vg/my_lv" to shrink it or use the additional capacity.
      Are you sure you want to add 1 images to raid5 LV my_vg/my_lv? [y/n]: y
      Logical volume my_vg/my_lv successfully converted.
    2. RAID 論理ボリュームの stripesize を変更します。

      # lvconvert --stripesize 128k my_vg/my_lv
        Converting stripesize 64.00 KiB of raid5 LV my_vg/my_lv to 128.00 KiB.
      Are you sure you want to convert raid5 LV my_vg/my_lv? [y/n]: y
        Logical volume my_vg/my_lv successfully converted.
    3. maxrecoveryrate 属性と minrecoveryrate 属性を変更します。

      # lvchange --maxrecoveryrate 4M my_vg/my_lv
        Logical volume my_vg/my_lv changed.
      # lvchange --minrecoveryrate 1M my_vg/my_lv
        Logical volume my_vg/my_lv changed.
    4. syncaction 属性を変更します。

      # lvchange --syncaction check my_vg/my_lv
    5. writemostly 属性と writebehind 属性を変更します。

      # lvchange --writemostly /dev/sdb my_vg/my_lv
        Logical volume my_vg/my_lv changed.
      # lvchange --writebehind 100 my_vg/my_lv
        Logical volume my_vg/my_lv changed.

検証

  1. RAID 論理ボリュームの stripes イメージと stripesize を表示します。

    # lvs -o stripes my_vg/my_lv
      #Str
         4
    # lvs -o stripesize my_vg/my_lv
      Stripe
      128.00k
  2. maxrecoveryrate 属性を変更した後、RAID 論理ボリュームを表示します。

    # lvs -a -o +raid_max_recovery_rate
      LV               VG       Attr        LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert MaxSync
      my_lv            my_vg    rwi-a-r---  10.00g                                     100.00           4096
      [my_lv_rimage_0] my_vg    iwi-aor---  10.00g
     [...]
  3. minrecoveryrate 属性を変更した後、RAID 論理ボリュームを表示します。

    # lvs -a -o +raid_min_recovery_rate
      LV               VG     Attr        LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert MinSync
      my_lv            my_vg  rwi-a-r---  10.00g                                     100.00           1024
      [my_lv_rimage_0] my_vg  iwi-aor---  10.00g
      [...]
  4. syncaction 属性を変更した後、RAID 論理ボリュームを表示します。

    # lvs -a
      LV               VG      Attr        LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      my_lv            my_vg   rwi-a-r---  10.00g                                     2.66
      [my_lv_rimage_0] my_vg   iwi-aor---  10.00g
      [...]

関連情報

  • システム上の lvconvert(8) および lvmraid(8) man ページ

58.7.24. RAID 論理ボリュームのリージョンサイズの変更

RAID 論理ボリュームを作成する場合、/etc/lvm/lvm.conf ファイルの raid_region_size パラメーターは、RAID 論理ボリュームのリージョンサイズを表します。RAID 論理ボリュームを作成した後、ボリュームのリージョンサイズを変更できます。このパラメーターは、ダーティーまたはクリーンな状態を追跡する粒度を定義します。ビットマップ内のダーティービットは、システム障害などの RAID ボリュームのダーティーシャットダウン後に同期するワークセットを定義します。

raid_region_size をより高い値に設定すると、ビットマップのサイズと輻輳が軽減されます。ただし、リージョンの同期が完了するまで RAID への書き込みが延期されるため、リージョンの再同期中の write 操作に影響が生じます。

手順

  1. RAID 論理ボリュームを作成します。

    # lvcreate --type raid1 -m 1 -L 10G test
      Logical volume "lvol0" created.
  2. RAID 論理ボリュームを表示します。

    # lvs -a -o +devices,region_size
    
    LV                VG      Attr     LSize Pool Origin Data% Meta% Move Log   Cpy%Sync Convert Devices                              Region
    lvol0             test rwi-a-r--- 10.00g                                    100.00           lvol0_rimage_0(0),lvol0_rimage_1(0)  2.00m
    [lvol0_rimage_0]  test iwi-aor--- 10.00g                                                     /dev/sde1(1)                            0
    [lvol0_rimage_1]  test iwi-aor--- 10.00g                                                     /dev/sdf1(1)                            0
    [lvol0_rmeta_0]   test ewi-aor---  4.00m                                                     /dev/sde1(0)                            0
    [lvol0_rmeta_1]   test ewi-aor---  4.00m

    Region 列は、raid_region_size パラメーターの値を示します。

  3. オプション: raid_region_size パラメーターの値を表示します。

    # cat /etc/lvm/lvm.conf | grep raid_region_size
    
    # Configuration option activation/raid_region_size.
    	# raid_region_size = 2048
  4. RAID 論理ボリュームのリージョンサイズを変更します。

    # lvconvert -R 4096K my_vg/my_lv
    
    Do you really want to change the region_size 512.00 KiB of LV my_vg/my_lv to 4.00 MiB? [y/n]: y
      Changed region size on RAID LV my_vg/my_lv to 4.00 MiB.
  5. RAID 論理ボリュームを再同期します。

    # lvchange --resync my_vg/my_lv
    
    Do you really want to deactivate logical volume my_vg/my_lv to resync it? [y/n]: y

検証

  1. RAID 論理ボリュームを表示します。

    # lvs -a -o +devices,region_size
    
    LV               VG   Attr        LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices                              Region
    lvol0            test rwi-a-r--- 10.00g                                    6.25           lvol0_rimage_0(0),lvol0_rimage_1(0)  4.00m
    [lvol0_rimage_0] test iwi-aor--- 10.00g                                                   /dev/sde1(1)                            0
    [lvol0_rimage_1] test iwi-aor--- 10.00g                                                   /dev/sdf1(1)                            0
    [lvol0_rmeta_0]  test ewi-aor---  4.00m                                                   /dev/sde1(0)                            0

    Region 列には、raid_region_size パラメーターの変更後の値が表示されます。

  2. lvm.conf ファイル内の raid_region_size パラメーターの値を確認します。

    # cat /etc/lvm/lvm.conf | grep raid_region_size
    
    # Configuration option activation/raid_region_size.
    	# raid_region_size = 4096

関連情報

  • システム上の lvconvert(8) man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.