第11章 LVM の割り当ての制御
デフォルトでは、ボリュームグループは normal
割り当てポリシーを使用します。これにより、同じ物理ボリューム上に並行ストライプを配置しないなどの常識的な規則に従って物理エクステントが割り当てられます。vgcreate
コマンドで --alloc
引数を使用すると、別の割り当てポリシー (contiguous
、anywhere
、または cling
) を指定できます。一般的に、normal
以外の割り当てポリシーが必要となるのは、通常とは異なる、標準外のエクステント割り当てを必要とする特別なケースのみです。
11.1. 指定したデバイスからのエクステントの割り当て
lvcreate
コマンドと lvconvert
コマンドを使用する際に、コマンドラインの末尾でデバイス引数を使用すると、特定のデバイスからの割り当てに制限できます。より詳細に制御するために、各デバイスの実際のエクステント範囲を指定できます。このコマンドは単に、指定した物理ボリューム (PV) を引数として使用して、新しい論理ボリューム (LV) にエクステントを割り当てます。各 PV から利用可能なエクステントがなくなるまでエクステントを取得し、その後、次にリストされている PV からエクステントを取得します。リストされているすべての PV の領域が、要求された LV サイズに対して不足する場合、コマンドは失敗します。このコマンドは、指定した PV からのみ割り当てを行うことに注意してください。Raid LV は、個別の RAID イメージまたは個別のストライプにシーケンシャル PV を使用します。PV のサイズが RAID イメージ全体に対して十分でない場合、デバイスの使用量を完全に予測することはできません。
手順
ボリュームグループ (VG) を作成します。
# vgcreate <vg_name> <PV> ...
ここでは、以下のようになります。
-
<vg_name>
は VG の名前です。 -
<PV>
は PV です。
-
PV を割り当てて、リニアや RAID などのさまざまなボリュームタイプを作成できます。
エクステントを割り当ててリニアボリュームを作成します。
# lvcreate -n <lv_name> -L <lv_size> <vg_name> [ <PV> ... ]
ここでは、以下のようになります。
-
<lv_name>
は LV の名前です。 -
<lv_size>
は LV のサイズです。デフォルトの単位はメガバイトです。 -
<vg_name>
は VG の名前です。 [ <PV …> ]
は PV です。コマンドラインでは、PV の 1 つを指定することも、すべての PV を指定することもできます。何も指定しないことも可能です。
1 つの PV を指定すると、当該 PV から LV のエクステントが割り当てられます。
注記PV に LV 全体に対する十分な空きエクステントがない場合、
lvcreate
は失敗します。- 2 つの PV を指定した場合、LV のエクステントは、当該 PV のうちの 1 つ、または両方の PV の組み合わせから割り当てられます。
PV を指定しない場合、エクステントは VG 内の PV の 1 つ、または VG 内のすべての PV の任意の組み合わせから割り当てられます。
注記このような場合、LVM は、指定した PV または使用可能な PV のすべてを使用しない可能性があります。最初の PV に LV 全体に対して十分な空きエクステントがある場合、他の PV はおそらく使用されません。ただし、最初の PV に空きエクステントの割り当てサイズが設定されていない場合、LV の一部は最初の PV から割り当てられ、一部は 2 番目の PV から割り当てられる可能性があります。
例11.1 1 つの PV からのエクステントの割り当て
この例では、
lv1
エクステントがsda
から割り当てられます。# lvcreate -n lv1 -L1G vg /dev/sda
例11.2 2 つの PV からのエクステントの割り当て
この例では、
lv2
エクステントがsda
、sdb
、または両方の組み合わせから割り当てられます。# lvcreate -n lv2 L1G vg /dev/sda /dev/sdb
例11.3 PV を指定しないエクステントの割り当て
この例では、
lv3
エクステントが、VG 内の PV の 1 つ、または VG 内のすべての PV の任意の組み合わせから割り当てられます。# lvcreate -n lv3 -L1G vg
または、以下を実行します。
-
エクステントを割り当てて RAID ボリュームを作成します。
# lvcreate --type <segment_type> -m <mirror_images> -n <lv_name> -L <lv_size> <vg_name> [ <PV> ... ]
ここでは、以下のようになります。
-
<segment_type>
は、指定したセグメントタイプ (例:raid5
、mirror
、snapshot
) です。 -
<mirror_images>
は、指定した数のイメージを含む、raid1
またはミラーリングされた LV を作成します。たとえば、-m 1
を指定すると、2 つのイメージを含むraid1
LV が作成されます。 -
<lv_name>
は LV の名前です。 -
<lv_size>
は LV のサイズです。デフォルトの単位はメガバイトです。 -
<vg_name>
は VG の名前です。 <[PV …]>
は PV です。最初の RAID イメージは最初の PV から割り当てられ、2 番目の RAID イメージは 2 番目の PV から割り当てられます。以後も同様です。
例11.4 2 つの PV からの RAID イメージの割り当て
この例では、
lv4
の最初の RAID イメージはsda
から割り当てられ、2 番目のイメージはsdb
から割り当てられます。# lvcreate --type raid1 -m 1 -n lv4 -L1G vg /dev/sda /dev/sdb
例11.5 3 つの PV からの RAID イメージの割り当て
この例では、
lv5
の最初の RAID イメージはsda
から割り当てられ、2 番目のイメージはsdb
から割り当てられ、3 番目のイメージはsdc
から割り当てられます。# lvcreate --type raid1 -m 2 -n lv5 -L1G vg /dev/sda /dev/sdb /dev/sdc
-
関連情報
-
システム上の
lvcreate(8)
、lvconvert(8)
、およびlvmraid(7)
man ページ