4 ソフトウェアRAIDの操作

Redundant Array of Independent Disks (RAID)機能を使用すると、データを複数のドライブに展開できるようになるため、容量が拡大し、データ冗長性が実装され、パフォーマンスが向上します。RAIDは、RAIDボリュームをLUNとしてエクスポートするインテリジェント・ディスク・ストレージを介したハードウェア、またはオペレーティング・システムによるソフトウェアのいずれかで実装されます。Oracle Linuxカーネルは、複数のデバイス(MD)ドライバを使用して、ソフトウェアRAIDをサポートし、2つ以上の物理ストレージ・デバイスから仮想デバイスを作成します。MDを使用すると、ディスク・ドライブをRAIDデバイスに編成したり、様々なRAIDレベルを実装できます。

RAIDデバイスは、mdadmまたは論理ボリューム・マネージャ(LVM)を使用して作成できます。

ソフトウェアRAIDレベル

通常、Oracle Linuxでは、次のソフトウェアRAIDレベルが実装されます:

リニアRAID (スパンニング)

複数のドライブをより大きい仮想ドライブに一体化します。このレベルでは、データの冗長性やパフォーマンス上の利点はありません。1つのドライブの障害で配列が使用できなくなるため、リジリエンスは低下します。

RAID-0 (ストライプ化)

パフォーマンスは向上しますが、データ冗長性は提供されません。データはユニット(ストライプ)に分解され、すべてのドライブに配列で書き込まれます。1つのドライブの障害で配列が使用できなくなるため、リジリエンスは低下します。

RAID 0+1 (ストライプ化したディスクのミラーリング)

パフォーマンスの向上とデータ冗長性の両方を提供するように、ストライプ化した配列をミラーリングしてRAID-0とRAID-1を組み合せたものです。1つのディスクに障害が発生すると、そのディスクを交換してデータを再移入するまで、ミラーの1つは使用不可になります。1つのミラーのみが使用可能な間は、リジリエンスが低下します。多くの場合、コスト面ではRAID 0+1はRAID-1と同等か若干高くなります。

RAID-1 (ミラーリング)

各ドライブに同一のデータを配列で書き込み、データ冗長性およびリジリエンスを提供します。1つのドライブに障害が発生した場合も、ミラーによりI/Oリクエストに対応できます。ミラーリングは、同じ情報がすべてのディスクに配列で書き込まれるため、高コストなソリューションです。

RAID 1+0 (ミラーリングしたディスクのストライプ化、またはRAID-10)

パフォーマンスの向上とデータ冗長性の両方を提供するように、ミラーリングした配列をストライプ化してRAID-0とRAID-1を組み合せたものです。1つのディスクに障害が発生すると、そのディスクを交換してデータを再移入するまで、1つのミラーは部分的に使用不可になります。1つのミラーのみがデータの完全なコピーを保持している間は、リジリエンスが低下します。多くの場合、コスト面ではRAID 1+0はRAID-1と同等か若干高くなります。

RAID-5 (分散パリティ付きストライプ化)

ストライプ化を使用することで読取りパフォーマンスを向上し、データ冗長性を提供します。パリティはすべてのドライブ全体に配列で分散されますが、完全なミラーリングほど多くの領域は使用しません。パリティ情報を計算し、データに加えて情報を書き込む必要性があるため、書込みパフォーマンスがある程度低下します。配列のディスクの1つに障害が発生した場合は、パリティ情報を使用してデータが再構築され、I/Oリクエストに対応します。このモードでは、障害が発生したドライブを交換して新しいドライブにデータおよびパリティ情報を再移入するまで、読取りパフォーマンスおよびレジリエンスは低下します。コスト面では、RAID-5はRAID-0とRAID-1の中間です。

RAID-6 (ダブル分散パリティ付きストライプ化)

RAID-5の改良型で、よりリジリエンスがあり、配列内の2つのドライブの損失から回復できます。ダブル・パリティは配列内のすべてのドライブに分散され、RAID-5よりも多くの領域を占有しますが、冗長性が確保されます。たとえば、4つのディスクの配列で、配列内の2つのディスクに障害が発生した場合、パリティ情報を使用してデータを再構築します。使用可能なディスク数は、ディスク数から2を引いたものです。RAID-6は、データ冗長性とリジリエンスが重要で、パフォーマンスはそれほど重要視しない場合に使用します。コスト面では、RAID-6はRAID-5とRAID-1の中間です。

mdadmを使用したソフトウェアRAIDデバイスの作成

  1. mdadmコマンドを実行して、次のようにMD RAIDデバイスを作成します。

    sudo mdadm --create md_device --level=RAID_level [options] --raid-devices=Ndevices
    
    md_device

    RAIDデバイスの名前(/dev/md0など)。

    RAID_level

    作成するRAIDのレベル番号(RAID-5構成の場合は5など)。

    --raid-devices=N

    RAID構成の一部になるデバイスの数。

    devices

    RAIDとして構成するデバイス。たとえば、RAID構成用の3つのデバイスの場合は、/dev/sd[bcd]です。

    リストするデバイスは、合計して--raid-devicesに指定した数値になる必要があります

    この例では、/dev/sdb/dev/sdcおよびdev/sddからRAID-5デバイス/dev/md1を作成します。

    sudo mdadm --create /dev/md1 --level=5 -raid-devices=3 /dev/sd[bcd]

    前述の例では、3つのデバイスからRAID-5デバイス/dev/md1を作成しています。1つのデバイスが、障害が発生したドライブの拡張、再構成または交換用のスペアとして構成される4つのデバイスを使用できます:

    sudo mdadm --create /dev/md1 --level=5 -raid-devices=3 --spare-devices=1 /dev/sd[bcde]
  2. (オプション) RAID構成を/etc/mdadm.confに追加します。

    sudo mdadm --examine --scan >> /etc/mdadm.conf

    構成ファイルに基づいて、mdadmはブート時に配列をアセンブルします。

    たとえば、次のエントリは、/dev/md0および/dev/md1に対応するデバイスおよび配列を定義します。

    DEVICE /dev/sd[c-g]
    ARRAY /dev/md0 devices=/dev/sdf,/dev/sdg
    ARRAY /dev/md1 spares=1 devices=/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde

    その他の例は、サンプル構成ファイル/usr/share/doc/mdadm-3.2.1/mdadm.conf-exampleを参照してください。

MD RAIDデバイスは、任意の物理ストレージ・デバイスと同じ方法で使用されます。たとえば、RAIDデバイスは、LVM物理ボリューム、ファイル・システム、スワップ・パーティション、自動ストレージ管理(ASM)ディスクまたはRAWデバイスとして構成できます。

MD RAIDデバイスのステータスを確認するには、/proc/mdstatを表示します。

cat /proc/mdstat
Personalities : [raid1]
mdo : active raid1 sdg[1] sdf[0]

MD RAIDデバイスに関するサマリー情報または詳細情報を表示するには、--queryまたは--detailオプションをそれぞれmdadmとともに使用します。

詳細は、md(4)mdadm(8)およびmdadm.conf(5)の各マニュアル・ページを参照してください。

LVMを使用したソフトウェアRAIDデバイスの作成および管理

  1. LVM RAID論理ボリュームの要件に対応するために、ボリューム・グループに十分な数の物理ボリュームを作成していることを確認します。物理ボリュームおよびボリューム・グループの作成の詳細は、「論理ボリューム・マネージャの操作」を参照してください。

  2. 冗長デバイスを使用するRAIDインスタンスがドライブ障害にどのように反応するかを指定する、/etc/lvm/lvm.confファイルのraid_fault_policy値を確認します。デフォルト値は"warn"で、システム・ログに警告を記録するようにRAIDが構成されていることを示します。つまり、デバイス障害が発生した場合は、障害が発生したデバイスを交換するために手動アクションが必要になります。
  3. デバイスで必要なファイル・システムを作成します。たとえば、次のコマンドは、RAID 6論理ボリュームにext4ファイル・システムを作成します。
    sudo mkfs.ext4 /dev/myvg/mylvraid6
    mke2fs 1.46.2 (28-Feb-2021)
    Creating filesystem with 264192 4k blocks and 66096 inodes
    Filesystem UUID: 05a78be5-8a8a-44ee-9f3f-1c4764c957e8
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376
    
  4. /etc/fstabファイルを編集して、論理ボリュームの永続化を検討します。たとえば、前のステップで作成したUUIDを含む次の行を追加すると、再起動後に論理ボリュームが再マウントされます。
    UUID=05a78be5-8a8a-44ee-9f3f-1c4764c957e8 /mnt ext4 defaults 0 0
    

    /etc/fstabファイルでのUUIDの使用の詳細は、「パーティションおよびファイル・システムの自動デバイス・マッピング」を参照してください。

  5. LVM RAIDレベル5、6、および10でデバイス障害が発生した場合は、障害が発生したRAIDデバイスを含むボリューム・グループに交換用の物理ボリュームが接続されていることを確認し、次のいずれかを実行します:
    • 次のコマンドを使用して、ボリューム・グループに存在するランダムなスペアの物理ボリュームに切り替えます:

      sudo lvconvert --repair volume_group/logical_volume

      前の例では、volume_groupがボリューム・グループで、logical_volumeがLVM RAID論理ボリュームです。

    • 次のコマンドを使用して、ボリューム・グループに存在する特定の物理ボリュームに切り替えます:
      sudo lvconvert --repair volume_group/logical_volume physical_volume

      前の例で、physical_volumeは、障害が発生した物理ボリュームを交換する特定のボリュームです。たとえば、/dev/sdb1です。

RAIDレベル0 (ストライプ化) LVMの例

RAIDレベル0を実行するには、少なくとも2つ以上のデバイスが必要です。次の例では、ボリューム・グループmyvgに、サイズ2GBのRAIDレベル0の論理ボリュームmylvraid0を作成します。
lvcreate --type raid0 --size 2g --stripes 3 --stripesize 4 -n mylvraid0 myvg

論理ボリュームには3つのストライプがあり、これはmyvgボリューム・グループで使用するデバイスの数です。4KBのストライプ・サイズは、次のデバイスに移動する前に1つのデバイスに書き込むことができるデータのサイズです。

次のような出力結果が表示されます。

  Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB (513 extents).
  Logical volume "mylvraid0" created.
lsblkコマンドは、4つの物理ボリュームのうち3つがmyvg-mylvraid0 RAID 0論理ボリュームを実行していることを示します。さらに、myvg-mylvraid0の各インスタンスは、RAID論理ボリュームのデータを含む別のサブボリュームに含まれるサブボリュームです。各サブボリュームには、myvg-mylvraid0_rimage_0myvg-mylvraid0_rimage_1およびmyvg-mylvraid0_rimage_2というラベルが付いたデータ・サブボリュームが含まれます。
lsblk
NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sdb                        8:16   0   50G  0 disk 
└─myvg-mylvraid0_rimage_0 252:2    0  684M  0 lvm  
  └─myvg-mylvraid0        252:5    0    2G  0 lvm  
sdc                        8:32   0   50G  0 disk 
└─myvg-mylvraid0_rimage_1 252:3    0  684M  0 lvm  
  └─myvg-mylvraid0        252:5    0    2G  0 lvm  
sdd                        8:48   0   50G  0 disk 
└─myvg-mylvraid0_rimage_2 252:4    0  684M  0 lvm  
  └─myvg-mylvraid0        252:5    0    2G  0 lvm  
sde                        8:64   0   50G  0 disk 

論理ボリュームに関する情報を表示するには、lvdisplaylvsおよびlvscanコマンドを使用します。

ボリューム・グループからRAID 0論理ボリュームを削除するには、lvremoveコマンドを使用します:

sudo lvremove vol_group/logical_vol

論理ボリュームの管理に使用できるその他のコマンドには、lvchangelvconvertlvmdiskscanlvrenamelvextendlvreduceおよびlvresizeがあります。

RAIDレベル1 (ミラーリング) LVMの例

RAIDレベル1を実行するには、少なくとも2つ以上のデバイスが必要です。次の例では、ボリューム・グループmyvgにサイズ1GBのRAIDレベル1論理ボリュームmylvraid1を作成します。
lvcreate --type raid1 -m 1 --size 1G -n mylvraid1 myvg

次のような出力結果が表示されます。

  Logical volume "mylvraid1" created.

-mは、1つ目のデバイスと2つ目のミラー・デバイスに同一データが書き込まれるmyvgボリューム・グループに1つのミラー・デバイスが必要であることを指定します。必要に応じて、追加のミラー・デバイスを指定できます。たとえば、-m 2は、最初のデバイスのミラーを2つ作成します。一方のデバイスで障害が発生した場合、もう一方のデバイス・ミラーがリクエストの処理を続行できます。

lsblkコマンドは、使用可能な4つの物理ボリュームのうち2つがmyvg-mylvraid1 RAID 1論理ボリュームの一部になったことを示します。また、myvg-mylvraid1の各インスタンスには、データとメタデータのサブボリューム・ペアが含まれます。各データ・サブボリュームには、myvg-mylvraid1_rimage_0およびmyvg-mylvraid1_rimage_1というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid1_rmeta_0およびmyvg-mylvraid1_rmeta_1というラベルが付いています。
lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOIN
...
sdb                         8:16   0   50G  0 disk 
├─myvg-mylvraid1_rmeta_0  252:2    0    4M  0 lvm  
│ └─myvg-mylvraid1        252:6    0    1G  0 lvm  
└─myvg-mylvraid1_rimage_0 252:3    0    1G  0 lvm  
  └─myvg-mylvraid1        252:6    0    1G  0 lvm  
sdc                         8:32   0   50G  0 disk 
├─myvg-mylvraid1_rmeta_1  252:4    0    4M  0 lvm  
│ └─myvg-mylvraid1        252:6    0    1G  0 lvm  
└─myvg-mylvraid1_rimage_1 252:5    0    1G  0 lvm  
  └─myvg-mylvraid1        252:6    0    1G  0 lvm  
sdd                         8:48   0   50G  0 disk 
sde                         8:64   0   50G  0 disk 
論理ボリュームに関する情報を表示するには、lvdisplaylvsおよびlvscanコマンドを使用します。たとえば、次のコマンドを使用すると、myvg内のデバイス間の同期率を表示できます:
sudo lvs -a -o name,sync_percent,devices myvg
  LV                   Cpy%Sync Devices                                    
  mylvraid1            21.58    mylvraid1_rimage_0(0),mylvraid1_rimage_1(0)
  [mylvraid1_rimage_0]          /dev/sdf(1)                                
  [mylvraid1_rimage_1]          /dev/sdg(1)                                
  [mylvraid1_rmeta_0]           /dev/sdf(0)                                
  [mylvraid1_rmeta_1]           /dev/sdg(0)   

ボリューム・グループからRAID 1論理ボリュームを削除するには、lvremoveコマンドを使用します:

sudo lvremove vol_group/logical_vol

論理ボリュームの管理に使用できるその他のコマンドには、lvchangelvconvertlvmdiskscanlvrenamelvextendlvreduceおよびlvresizeがあります。

たとえば、--raidintegrity yオプションを使用してRAID 1論理ボリュームを作成するときに、データ整合性機能を有効にできます。これにより、RAIDイメージ内のデータ破損の検出および修正に使用されるサブボリュームが作成されます。次のlvconvertコマンドを使用して、論理ボリュームの作成後にこのサブボリュームを追加または削除することもできます:
sudo lvconvert --raidintegrity y myvg/mylvraid1
  Creating integrity metadata LV mylvraid1_rimage_0_imeta with size 20.00 MiB.
  Logical volume "mylvraid1_rimage_0_imeta" created.
  Creating integrity metadata LV mylvraid1_rimage_1_imeta with size 20.00 MiB.
  Logical volume "mylvraid1_rimage_1_imeta" created.
  Limiting integrity block size to 512 because the LV is active.
  Using integrity block size 512 for file system block size 4096.
  Logical volume myvg/mylvraid1 has added integrity.
lvconvertを使用して、ミラーを個々のリニア論理ボリュームに分割することもできます。たとえば、次のコマンドはミラーを分割します:
sudo lvconvert --splitmirror 1 -n lvnewlinear  myvg/mylvraid1
Are you sure you want to split raid1 LV myvg/mylvraid1 losing all resilience? [y/n]: y

3つのインスタンス・ミラーがある場合、同じコマンドによって双方向ミラーとリニア論理ボリュームが作成されます。

また、既存のミラーに対してミラーを追加または削除することもできます。たとえば、次のコマンドは、3番目のミラーを追加することによって、双方向ミラーを3方向ミラーにします:
sudo lvconvert -m 2  myvg/mylvraid1
Are you sure you want to convert raid1 LV myvg/mylvraid1 to 3 images enhancing resilience? [y/n]: y
  Logical volume myvg/mylvraid1 successfully converted.
また、同じコマンドを再度実行しますが、-m 1を指定すると、3番目のミラーが削除されて再度双方向ミラーになり、取り外すドライブも指定されます。
sudo lvconvert -m1  myvg/mylvraid1 /dev/sdd
Are you sure you want to convert raid1 LV myvg/mylvraid1 to 2 images reducing resilience? [y/n]: y
  Logical volume myvg/mylvraid1 successfully converted.

詳細は、lvmraidlvcreateおよびlvconvertのマニュアル・ページを参照してください。

RAIDレベル5 (分散パリティ付きストライプ化) LVMの例

RAIDレベル5を実行するには、少なくとも3つ以上のデバイスが必要です。次の例では、ボリューム・グループmyvgに、サイズ1GBのRAIDレベル5の論理ボリュームmylvraid5を作成します。
lvcreate --type raid5 -i 2 --size 1G -n mylvraid5 myvg

次のような出力結果が表示されます。

  Using default stripesize 64.00 KiB.
  Rounding size 1.00 GiB (256 extents) up to stripe boundary size <1.01 GiB (258 extents).
  Logical volume "mylvraid5" created.

論理ボリュームには2つのストライプがあり、これはmyvgボリューム・グループで使用するデバイスの数です。ただし、使用可能なデバイスの合計数には、パリティ情報を考慮してデバイスを追加する必要があります。したがって、ストライプ・サイズが2の場合、ストライプ化に使用できるデバイス空間の合計は2つのデバイスに相当しますが、ストライプ化およびパリティ情報が3つすべてに分散されるように、3つの使用可能なドライブが必要です。3つのデバイスすべてにわたるパリティ情報は、デバイスのうち1つの損失に対処するのに十分です。

作成コマンドでストライプ・サイズが指定されていないため、デフォルトの64KBが使用されます。これは、次のデバイスに移動する前に1つのデバイスに書き込むことができるデータのサイズです。

lsblkコマンドは、使用可能な4つの物理ボリュームのうち3つがmyvg-mylvraid5 RAID 5論理ボリュームの一部になったことを示します。また、myvg-mylvraid5の各インスタンスには、データとメタデータのサブボリューム・ペアが含まれます。各データ・サブボリュームは、myvg-mylvraid5_rimage_0myvg-mylvraid5_rimage_1およびmyvg-mylvraid5_rimage_2というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid5_rmeta_0myvg-mylvraid5_rmeta_1およびmyvg-mylvraid5_rmeta_2というラベルが付いています。
lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOIN
...
sdb                         8:16   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_0  252:2    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:8    0    1G  0 lvm  
└─myvg-mylvraid5_rimage_0 252:3    0  512M  0 lvm  
  └─myvg-mylvraid5        252:8    0    1G  0 lvm  
sdc                         8:32   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_1  252:4    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:8    0    1G  0 lvm  
└─myvg-mylvraid5_rimage_1 252:5    0  512M  0 lvm  
  └─myvg-mylvraid5        252:8    0    1G  0 lvm  
sdd                         8:48   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_2  252:6    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:8    0    1G  0 lvm  
└─myvg-mylvraid5_rimage_2 252:7    0  512M  0 lvm  
  └─myvg-mylvraid5        252:8    0    1G  0 lvm  
sde                         8:64   0   50G  0 disk 
論理ボリュームに関する情報を表示するには、lvdisplaylvsおよびlvscanコマンドを使用します。たとえば、次のコマンドを使用すると、myvg内のデバイス間の同期率を表示できます:
sudo lvs -a -o name,copy_percent,devices myvg
  LV                   Cpy%Sync Devices                                                          
  mylvraid5            25.00    mylvraid5_rimage_0(0),mylvraid5_rimage_1(0),mylvraid5_rimage_2(0)
  [mylvraid5_rimage_0]          /dev/sdf(1)                                                      
  [mylvraid5_rimage_1]          /dev/sdg(1)                                                      
  [mylvraid5_rimage_2]          /dev/sdh(1)                                                      
  [mylvraid5_rmeta_0]           /dev/sdf(0)                                                      
  [mylvraid5_rmeta_1]           /dev/sdg(0)                                                      
  [mylvraid5_rmeta_2]           /dev/sdh(0) 

ボリューム・グループからRAID 5論理ボリュームを削除するには、lvremoveコマンドを使用します:

sudo lvremove vol_group/logical_vol

論理ボリュームの管理に使用できるその他のコマンドには、lvchangelvconvertlvmdiskscanlvrenamelvextendlvreduceおよびlvresizeがあります。

たとえば、--raidintegrity yオプションを使用してRAID 5論理ボリュームを作成するときに、データ整合性機能を有効にできます。これにより、RAIDイメージ内のデータ破損の検出および修正に使用されるサブボリュームが作成されます。次のlvconvertコマンドを使用して、論理ボリュームの作成後にこのサブボリュームを追加または削除することもできます:
sudo lvconvert --raidintegrity y myvg/mylvraid5
  Creating integrity metadata LV mylvraid5_rimage_0_imeta with size 12.00 MiB.
  Logical volume "mylvraid5_rimage_0_imeta" created.
  Creating integrity metadata LV mylvraid5_rimage_1_imeta with size 12.00 MiB.
  Logical volume "mylvraid5_rimage_1_imeta" created.
  Creating integrity metadata LV mylvraid5_rimage_2_imeta with size 12.00 MiB.
  Logical volume "mylvraid5_rimage_2_imeta" created.
  Limiting integrity block size to 512 because the LV is active.
  Using integrity block size 512 for file system block size 4096.
  Logical volume myvg/mylvraid5 has added integrity.

詳細は、lvmraidlvcreateおよびlvconvertのマニュアル・ページを参照してください。

RAIDレベル6 (ダブル分散パリティ付きストライプ化) LVMの例

RAIDレベル6を実行するには、少なくとも5つ以上のデバイスが必要です。次の例では、ボリューム・グループmyvgにサイズ1GBのRAIDレベル6論理ボリュームmylvraid6を作成します。
lvcreate --type raid6 -i 3 -L 1G -n mylvraid6 myvg

次のような出力結果が表示されます。

  Using default stripesize 64.00 KiB.
  Rounding size 1.00 GiB (256 extents) up to stripe boundary size <1.01 GiB (258 extents).
  Logical volume "mylvraid6" created.

論理ボリュームには3つのストライプがあり、これはmyvgボリューム・グループで使用するデバイスの数です。ただし、使用可能なデバイスの合計数には、ダブル・パリティ情報を考慮して2つのデバイスを追加する必要があります。したがって、ストライプ・サイズが3の場合、ストライプ化に使用可能なデバイス空間の合計は3つのデバイスに相当しますが、ストライプ化およびダブル・パリティ情報が5つすべてに分散されるように、5つの使用可能なドライブが必要です。5つのデバイスすべてにわたるパリティ情報は、デバイスのうち2つの損失に対処するのに十分です。

作成コマンドでストライプ・サイズが指定されていないため、デフォルトの64KBが使用されます。これは、次のデバイスに移動する前に1つのデバイスに書き込むことができるデータのサイズです。

lsblkコマンドは、使用可能な5つの物理ボリュームがすべてmyvg-mylvraid6 RAID 6論理ボリュームの一部になったことを示します。また、myvg-mylvraid6の各インスタンスには、データとメタデータのサブボリューム・ペアが含まれます。各データ・サブボリュームは、myvg-mylvraid6_rimage_0myvg-mylvraid6_rimage_1myvg-mylvraid6_rimage_2myvg-mylvraid6_rimage_3およびmyvg-mylvraid6_rimage_4というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid6_rmeta_0myvg-mylvraid6_rmeta_1myvg-mylvraid6_rmeta_2myvg-mylvraid6_rmeta_3およびmyvg-mylvraid6_rmeta_4というラベルが付いています。
lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOIN
...
sdb                         8:16   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_0  252:2    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:12   0    1G  0 lvm  
└─myvg-mylvraid5_rimage_0 252:3    0  344M  0 lvm  
  └─myvg-mylvraid5        252:12   0    1G  0 lvm  
sdc                         8:32   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_1  252:4    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:12   0    1G  0 lvm  
└─myvg-mylvraid5_rimage_1 252:5    0  344M  0 lvm  
  └─myvg-mylvraid5        252:12   0    1G  0 lvm  
sdd                         8:48   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_2  252:6    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:12   0    1G  0 lvm  
└─myvg-mylvraid5_rimage_2 252:7    0  344M  0 lvm  
  └─myvg-mylvraid5        252:12   0    1G  0 lvm  
sde                         8:64   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_3  252:8    0    4M  0 lvm  
│ └─myvg-mylvraid5        252:12   0    1G  0 lvm  
└─myvg-mylvraid5_rimage_3 252:9    0  344M  0 lvm  
  └─myvg-mylvraid5        252:12   0    1G  0 lvm  
sdf                         8:80   0   50G  0 disk 
├─myvg-mylvraid5_rmeta_4  252:10   0    4M  0 lvm  
│ └─myvg-mylvraid5        252:12   0    1G  0 lvm  
└─myvg-mylvraid5_rimage_4 252:11   0  344M  0 lvm  
  └─myvg-mylvraid5        252:12   0    1G  0 lvm  
論理ボリュームに関する情報を表示するには、lvdisplaylvsおよびlvscanコマンドを使用します。たとえば、次のコマンドを使用すると、myvg内のデバイス間の同期率を表示できます:
sudo lvs -a -o name,sync_percent,devices myvg
  LV                   Cpy%Sync Devices                                                                                                      
  mylvraid6            31.26    mylvraid6_rimage_0(0),mylvraid6_rimage_1(0),mylvraid6_rimage_2(0),mylvraid6_rimage_3(0),mylvraid6_rimage_4(0)
  [mylvraid6_rimage_0]          /dev/sdf(1)                                                                                                  
  [mylvraid6_rimage_1]          /dev/sdg(1)                                                                                                  
  [mylvraid6_rimage_2]          /dev/sdh(1)                                                                                                  
  [mylvraid6_rimage_3]          /dev/sdi(1)                                                                                                  
  [mylvraid6_rimage_4]          /dev/sdj(1)                                                                                                  
  [mylvraid6_rmeta_0]           /dev/sdf(0)                                                                                                  
  [mylvraid6_rmeta_1]           /dev/sdg(0)                                                                                                  
  [mylvraid6_rmeta_2]           /dev/sdh(0)                                                                                                  
  [mylvraid6_rmeta_3]           /dev/sdi(0)                                                                                                  
  [mylvraid6_rmeta_4]           /dev/sdj(0)

ボリューム・グループからRAID 6論理ボリュームを削除するには、lvremoveコマンドを使用します:

sudo lvremove vol_group/logical_vol

論理ボリュームの管理に使用できるその他のコマンドには、lvchangelvconvertlvmdiskscanlvrenamelvextendlvreduceおよびlvresizeがあります。

たとえば、--raidintegrity yオプションを使用してRAID 6論理ボリュームを作成するときに、データ整合性機能を有効にできます。これにより、RAIDイメージ内のデータ破損の検出および修正に使用されるサブボリュームが作成されます。次のlvconvertコマンドを使用して、論理ボリュームの作成後にこのサブボリュームを追加または削除することもできます:
sudo lvconvert --raidintegrity y myvg/mylvraid6
  Creating integrity metadata LV mylvraid6_rimage_0_imeta with size 8.00 MiB.
  Logical volume "mylvraid6_rimage_0_imeta" created.
  Creating integrity metadata LV mylvraid6_rimage_1_imeta with size 8.00 MiB.
  Logical volume "mylvraid6_rimage_1_imeta" created.
  Creating integrity metadata LV mylvraid6_rimage_2_imeta with size 8.00 MiB.
  Logical volume "mylvraid6_rimage_2_imeta" created.
  Creating integrity metadata LV mylvraid6_rimage_3_imeta with size 8.00 MiB.
  Logical volume "mylvraid6_rimage_3_imeta" created.
  Creating integrity metadata LV mylvraid6_rimage_4_imeta with size 8.00 MiB.
  Logical volume "mylvraid6_rimage_4_imeta" created.
  Limiting integrity block size to 512 because the LV is active.
  Using integrity block size 512 for file system block size 4096.
  Logical volume myvg/mylvraid6 has added integrity.

詳細は、lvmraidlvcreateおよびlvconvertのマニュアル・ページを参照してください。

RAIDレベル10 (ミラーリングしたディスクのストライプ化) LVMの例

RAIDレベル10を実行するには、少なくとも4つ以上のデバイスが必要です。次の例では、ボリューム・グループmyvgに、サイズ10GBのRAIDレベル10論理ボリュームmylvraid10を作成します。
sudo lvcreate --type raid10 -i 2 -m 1 --size 10G -n mylvraid10 myvg

次のような出力結果が表示されます。

  Logical volume "mylvraid10" created.

-mは、同じデータがミラー化されたデバイス・セットのペアに書き込まれるmyvgボリューム・グループに1つのミラー・デバイスが必要であることを指定します。ミラー化されたデバイス・セットは、セット間でストライプ化も使用しています。各ミラー化デバイス・セットに1つ以上のデバイスが残っている場合、論理ボリューム・データは引き続き使用できます。

lsblkコマンドは、使用可能な5つの物理ボリュームのうち4つがmyvg-mylvraid10 RAID 10論理ボリュームの一部になったことを示します。また、myvg-mylvraid10の各インスタンスには、データとメタデータのサブボリューム・ペアが含まれます。各データ・サブボリュームには、myvg-mylvraid10_rimage_0myvg-mylvraid10_rimage_1myvg-mylvraid10_rimage_2およびmyvg-mylvraid10_rimage_3というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid10_rmeta_0myvg-mylvraid10_rmeta_1myvg-mylvraid10_rmeta_2およびmyvg-mylvraid10_rmeta_3というラベルが付いています。
lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOIN
...
sdb                          8:16   0   50G  0 disk 
├─myvg-mylvraid10_rmeta_0  252:2    0    4M  0 lvm  
│ └─myvg-mylvraid10        252:10   0   10G  0 lvm  
└─myvg-mylvraid10_rimage_0 252:3    0    5G  0 lvm  
  └─myvg-mylvraid10        252:10   0   10G  0 lvm  
sdc                          8:32   0   50G  0 disk 
├─myvg-mylvraid10_rmeta_1  252:4    0    4M  0 lvm  
│ └─myvg-mylvraid10        252:10   0   10G  0 lvm  
└─myvg-mylvraid10_rimage_1 252:5    0    5G  0 lvm  
  └─myvg-mylvraid10        252:10   0   10G  0 lvm  
sdd                          8:48   0   50G  0 disk 
├─myvg-mylvraid10_rmeta_2  252:6    0    4M  0 lvm  
│ └─myvg-mylvraid10        252:10   0   10G  0 lvm  
└─myvg-mylvraid10_rimage_2 252:7    0    5G  0 lvm  
  └─myvg-mylvraid10        252:10   0   10G  0 lvm  
sde                          8:64   0   50G  0 disk 
├─myvg-mylvraid10_rmeta_3  252:8    0    4M  0 lvm  
│ └─myvg-mylvraid10        252:10   0   10G  0 lvm  
└─myvg-mylvraid10_rimage_3 252:9    0    5G  0 lvm  
  └─myvg-mylvraid10        252:10   0   10G  0 lvm  
sdf                          8:80   0   50G  0 disk 
論理ボリュームに関する情報を表示するには、lvdisplaylvsおよびlvscanコマンドを使用します。たとえば、次のコマンドを使用すると、myvg内のデバイス間の同期率を表示できます:
sudo lvs -a -o name,sync_percent,devices myvg
  LV                     Cpy%Sync Devices                                                                                        
  mylvraid101            68.82    mylvraid10_rimage_0(0),mylvraid10_rimage_1(0),mylvraid10_rimage_2(0),mylvraid10_rimage_3(0)
  [mylvraid10_rimage_0]          /dev/sdf(1)                                                                                    
  [mylvraid10_rimage_1]          /dev/sdg(1)                                                                                    
  [mylvraid10_rimage_2]          /dev/sdh(1)                                                                                    
  [mylvraid10_rimage_3]          /dev/sdi(1)                                                                                    
  [mylvraid10_rmeta_0]           /dev/sdf(0)                                                                                    
  [mylvraid10_rmeta_1]           /dev/sdg(0)                                                                                    
  [mylvraid10_rmeta_2]           /dev/sdh(0)                                                                                    
  [mylvraid10_rmeta_3]           /dev/sdi(0) 

ボリューム・グループからRAID 10論理ボリュームを削除するには、lvremoveコマンドを使用します:

sudo lvremove vol_group/logical_vol

論理ボリュームの管理に使用できるその他のコマンドには、lvchangelvconvertlvmdiskscanlvrenamelvextendlvreduceおよびlvresizeがあります。

たとえば、--raidintegrity yオプションを使用してRAID 10論理ボリュームを作成するときに、データ整合性機能を有効にできます。これにより、RAIDイメージ内のデータ破損の検出および修正に使用されるサブボリュームが作成されます。次のlvconvertコマンドを使用して、論理ボリュームの作成後にこのサブボリュームを追加または削除することもできます:
sudo lvconvert --raidintegrity y myvg/mylvraid10
  Creating integrity metadata LV mylvraid10_rimage_0_imeta with size 108.00 MiB.
  Logical volume "mylvraid10_rimage_0_imeta" created.
  Creating integrity metadata LV mylvraid10_rimage_1_imeta with size 108.00 MiB.
  Logical volume "mylvraid10_rimage_1_imeta" created.
  Creating integrity metadata LV mylvraid10_rimage_2_imeta with size 108.00 MiB.
  Logical volume "mylvraid10_rimage_2_imeta" created.
  Creating integrity metadata LV mylvraid10_rimage_3_imeta with size 108.00 MiB.
  Logical volume "mylvraid10_rimage_3_imeta" created.
  Using integrity block size 512 for unknown file system block size, logical block size 512, physical block size 4096.
  Logical volume myvg/mylvraid10 has added integrity.

詳細は、lvmraidlvcreateおよびlvconvertのマニュアル・ページを参照してください。