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デバイスの作成
-
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]
-
(オプション) 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デバイスの作成および管理
-
LVM RAID論理ボリュームの要件に対応するために、ボリューム・グループに十分な数の物理ボリュームを作成していることを確認します。物理ボリュームおよびボリューム・グループの作成の詳細は、「論理ボリューム・マネージャの操作」を参照してください。
- 冗長デバイスを使用するRAIDインスタンスがドライブ障害にどのように反応するかを指定する、
/etc/lvm/lvm.conf
ファイルのraid_fault_policy
値を確認します。デフォルト値は"warn"
で、システム・ログに警告を記録するようにRAIDが構成されていることを示します。つまり、デバイス障害が発生した場合は、障害が発生したデバイスを交換するために手動アクションが必要になります。 -
lvcreateコマンドを実行して、LVM RAIDデバイスを作成します。例については、次の項を参照してください:
-
デバイスで必要なファイル・システムを作成します。たとえば、次のコマンドは、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
-
/etc/fstab
ファイルを編集して、論理ボリュームの永続化を検討します。たとえば、前のステップで作成したUUIDを含む次の行を追加すると、再起動後に論理ボリュームが再マウントされます。UUID=05a78be5-8a8a-44ee-9f3f-1c4764c957e8 /mnt ext4 defaults 0 0
/etc/fstab
ファイルでのUUIDの使用の詳細は、「パーティションおよびファイル・システムの自動デバイス・マッピング」を参照してください。 - 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の例
myvg
に、サイズ2GBのRAIDレベル0の論理ボリュームmylv
raid0を作成します。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_0
、myvg-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
論理ボリュームに関する情報を表示するには、lvdisplay、lvsおよびlvscanコマンドを使用します。
ボリューム・グループからRAID 0論理ボリュームを削除するには、lvremoveコマンドを使用します:
sudo lvremove vol_group/logical_vol
論理ボリュームの管理に使用できるその他のコマンドには、lvchange、lvconvert、lvmdiskscan、lvrename、lvextend、lvreduceおよびlvresizeがあります。
RAIDレベル1 (ミラーリング) LVMの例
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
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
論理ボリュームの管理に使用できるその他のコマンドには、lvchange、lvconvert、lvmdiskscan、lvrename、lvextend、lvreduceおよび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つのインスタンス・ミラーがある場合、同じコマンドによって双方向ミラーとリニア論理ボリュームが作成されます。
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.
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.
詳細は、lvmraid
、lvcreate
およびlvconvert
のマニュアル・ページを参照してください。
RAIDレベル5 (分散パリティ付きストライプ化) LVMの例
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_0
、myvg-mylvraid5_rimage_1
およびmyvg-mylvraid5_rimage_2
というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid5_rmeta_0
、myvg-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
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
論理ボリュームの管理に使用できるその他のコマンドには、lvchange、lvconvert、lvmdiskscan、lvrename、lvextend、lvreduceおよび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.
詳細は、lvmraid
、lvcreate
およびlvconvert
のマニュアル・ページを参照してください。
RAIDレベル6 (ダブル分散パリティ付きストライプ化) LVMの例
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_0
、myvg-mylvraid6_rimage_1
、myvg-mylvraid6_rimage_2
、myvg-mylvraid6_rimage_3
およびmyvg-mylvraid6_rimage_4
というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid6_rmeta_0
、myvg-mylvraid6_rmeta_1
、myvg-mylvraid6_rmeta_2
、myvg-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
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
論理ボリュームの管理に使用できるその他のコマンドには、lvchange、lvconvert、lvmdiskscan、lvrename、lvextend、lvreduceおよび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.
詳細は、lvmraid
、lvcreate
およびlvconvert
のマニュアル・ページを参照してください。
RAIDレベル10 (ミラーリングしたディスクのストライプ化) LVMの例
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_0
、myvg-mylvraid10_rimage_1
、myvg-mylvraid10_rimage_2
およびmyvg-mylvraid10_rimage_3
というラベルが付いています。各メタデータ・サブボリュームには、myvg-mylvraid10_rmeta_0
、myvg-mylvraid10_rmeta_1
、myvg-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
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
論理ボリュームの管理に使用できるその他のコマンドには、lvchange、lvconvert、lvmdiskscan、lvrename、lvextend、lvreduceおよび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.
詳細は、lvmraid
、lvcreate
およびlvconvert
のマニュアル・ページを参照してください。