4.2. 論理ボリュームの作成
LVM は、物理層を論理ボリュームに抽象化し、ニーズに応じて作成および調整することで、ディスクストレージを処理するための柔軟なアプローチを提供します。
4.2.1. リニア (シック) 論理ボリュームの作成
リニア論理ボリューム (LV) を使用すると、複数の物理ストレージユニットを 1 つの仮想ストレージスペースにマージできます。データ要件に合わせて線形 LV を簡単に拡張または縮小できます。
前提条件
- 管理アクセスがある。
-
lvm2
パッケージがインストールされている。 - ボリュームグループが作成されます。詳細は、LVM ボリュームグループの作成 を参照してください。
手順
ボリュームグループの名前とサイズをリスト表示します。
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
線形 LV を作成します。
# lvcreate --name LogicalVolumeName --size VolumeSize VolumeGroupName
LogicalVolumeName を LV の名前に置き換えます。VolumeSize を LV のサイズに置き換えます。サイズの接尾辞が指定されていない場合、コマンドはデフォルトで MB になります。VolumeGroupName を ボリュームグループの名前に置き換えます。
検証
線形 LV が作成されたことを確認します。
# lvs -o lv_name,seg_type LV Type LogicalVolumeName linear
関連情報
-
vgs (8)
、lvs (8)
、lvcreate (8) の
man ページ
4.2.2. ストライプ化論理ボリュームの作成
ストライプ化された論理ボリューム (LV) を使用すると、複数の物理ボリューム (PV) にデータを分散できるため、複数のディスクの帯域幅を同時に利用して、読み取りおよび書き込み速度を向上させることができます。
ストライプ LV を作成するときは、ストライプの数とサイズを考慮することが重要です。ストライプ番号は、データが分散される PV の数です。ストライプ数を増やすと、複数のディスクを同時に利用することでパフォーマンスを向上させることができます。ストライプサイズは、次のディスクに移動する前にストライプセット内の各ディスクに書き込まれるデータチャンクのサイズであり、キロバイト (KB) 単位で指定されます。最適なストライプサイズは、ワークロードとファイルシステムのブロックサイズによって異なります。デフォルトは 64KB ですが、調整可能です。
前提条件
- 管理アクセスがある。
手順
ボリュームグループの名前とサイズをリスト表示します。
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
ストライプ化された LV を作成します。
# lvcreate --stripes NumberOfStripes --stripesize StripeSize --size LogicalVolumeSize --name LogicalVolumeName VolumeGroupName
NumberOfStripes を ストライプの数に置き換えます。StripeSize を キロバイト単位のストライプサイズに置き換えます。
--stripesize
は必須オプションではありません。ストライプサイズを指定しない場合は、デフォルトで 64 KB になります。LogicalVolumeName を LV の名前に置き換えます。VolumeGroupName を ボリュームグループの名前に置き換えます。
検証
ストライプ LV が作成されたことを確認します。
# lvs -o lv_name,seg_type LV Type LogicalVolumeName striped
関連情報
-
vgs (8)
lvs (8)
、lvcreate (8) の
man ページ
4.2.3. RAID 論理ボリュームの作成
RAID 論理ボリュームを使用すると、冗長性とパフォーマンスのために複数のディスクを使用できます。LVM は、RAID0、RAID1、RAID4、RAID5、RAID6、RAID10 など、さまざまな RAID レベルをサポートします。
LVM を使用すると、ストライプ RAID (RAID0、RAID4、RAID5、RAID6)、ミラー RAID (RAID1)、またはその両方の組み合わせ (RAID10) を作成できます。
RAID 4、RAID 5、および RAID 6 は、ディスク障害が発生した場合に失われた情報を再構築するために使用できるパリティーデータを保存することにより、フォールトトレランスを提供します。
RAID LV を作成するときは、各ストライプを個別の PV に配置します。ストライプの数は、ボリュームグループ (VG) 内に存在する PV の数と同じです。
<raid-level> | タイプ | パリティー | デバイスの最小数 | 最小ストライプ数 |
---|---|---|---|---|
RAID0 | ストライピング | なし | 2 | 2 |
RAID1 | mirroring | なし | 2 | - |
RAID4 | ストライピング | 最初のデバイスを使用してパリティーを保存します | 3 | 2 |
RAID5 | ストライピング | パリティーを保存するために追加のデバイスを使用する | 3 | 2 |
RAID6 | ストライピング | パリティーを保存するために 2 つの追加デバイスを使用する | 5 | 3 |
RAID10 | ストライピングとミラーリング | なし | 4 | 2 |
前提条件
- 管理アクセスがある。
手順
ボリュームグループの名前とサイズをリスト表示します。
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
RAID LV を作成します。
ストライプ化された RAID を作成するには、次を使用します。
# lvcreate --type raidlevel --stripes NumberOfStripes --stripesize StripeSize --size Size --name LogicalVolumeName VolumeGroupName
レベルを RAID レベル 0、4、5、または 6 に置き換えます。NumberOfStripes を ストライプの数に置き換えます。StripeSize を キロバイト単位のストライプサイズに置き換えます。Size を LV のサイズに置き換えます。LogicalVolumeName を LV の名前に置き換えます。
ミラー化された RAID を作成するには、次を使用します。
# lvcreate --type raid1 --mirrors MirrorsNumber --size Size --name LogicalVolumeName VolumeGroupName
MirrorsNumber を ミラーの数に置き換えます。Size を LV のサイズに置き換えます。LogicalVolumeName を LV の名前に置き換えます。
ミラーリングおよびストライプ化された RAID を作成するには、次を使用します。
# lvcreate --type raid10 --mirrors MirrorsNumber --stripes NumberOfStripes --stripesize StripeSize --size Size --name LogicalVolumeName VolumeGroupName
MirrorsNumber を ミラーの数に置き換えます。NumberOfStripes を ストライプの数に置き換えます。StripeSize を キロバイト単位のストライプサイズに置き換えます。Size を LV のサイズに置き換えます。LogicalVolumeName を LV の名前に置き換えます。
検証
RAID LV が作成されたことを確認します。
# lvs -o lv_name,seg_type LV Type LogicalVolumeName raid0
関連情報
-
lvmraid (7)
、vgs (8)
、lvs (8)
、lvcreate (8)
man ページ
4.2.4. シン論理ボリュームの作成
シンプロビジョニングでは、ボリュームグループ (VG) の物理エクステント (PE) が割り当てられ、特定の物理サイズのシンプールが作成されます。論理ボリューム (LV) は、プールの物理容量によって制限されることなく、仮想サイズに基づいてこのシンプールから割り当てられます。これにより、すべてのシン LV の仮想サイズの合計がシンプールの物理容量を超えると、各シン LV の仮想サイズがシンプールの実際のサイズを超え、オーバープロビジョニングが発生する可能性があります。したがって、スペース不足や停止を回避するには、論理的使用状況と物理的使用状況の両方を注意深く監視することが重要です。
シンプロビジョニングは、必要に応じてスペースを割り当て、初期コストを削減し、リソースの使用率を向上させることで、ストレージ効率を最適化します。ただし、薄い LV を使用する場合は、次の欠点に注意してください。
- 不適切な破棄処理により、未使用のストレージ領域の解放がブロックされ、時間の経過とともに領域がすべて割り当てられる可能性があります。
- スナップショットのあるファイルシステムでは、コピーオンライト (CoW) 操作が遅くなる可能性があります。
- データブロックが複数のファイルシステム間で混在する可能性があり、ランダムアクセスが制限される可能性があります。
前提条件
- 管理アクセスがある。
- 物理ボリュームを作成しました。詳細は、LVM 物理ボリュームの作成を 参照してください。
- ボリュームグループを作成している。詳細は、LVM ボリュームグループの作成 を参照してください。
- 論理ボリュームを作成しました。詳細は、LVM 論理ボリュームの作成を 参照してください。
手順
ボリュームグループの名前とサイズをリスト表示します。
# vgs -o vg_name,vg_size VG VSize VolumeGroupName 30.75g
シンプールを作成します。
# lvcreate --type thin-pool --size PoolSize --name ThinPoolName VolumeGroupName
PoolSize を、 シンプールが使用できるディスク領域の最大量に置き換えます。ThinPoolName を シンプールの名前に置き換えます。VolumeGroupName を ボリュームグループの名前に置き換えます。
薄い LV を作成します。
# lvcreate --type thin --virtualsize MaxVolumeSize --name ThinVolumeName --thinpool ThinPoolName VolumeGroupName
MaxVolumeSize を、 シンプール内でボリュームが拡張できる最大サイズに置き換えます。ThinPoolName を シンプールの名前に置き換えます。VolumeGroupName を ボリュームグループの名前に置き換えます。
注記同じシンプール内に他のシン LV を作成できます。
検証
シン LV が作成されたことを確認します。
# lvs -o lv_name,seg_type LV Type ThinPoolName thin-pool ThinVolumeName thin
関連情報
-
lvs (8)
、lvcreate (8) の
man ページ