4.3.2. LVM の割り当て
LVM の操作で物理エクステントを 1 つまたは複数の論理ボリュームに割り当てる必要がある場合、割り当ては以下のように行われます。
- ボリュームグループ内の未割り当ての物理エクステントが割り当て用に生成されます。コマンドラインの末尾に物理エクステントの範囲を指定した場合は、指定した物理ボリューム上のその範囲内では、未割り当ての物理エクステントのみが割り当て用に考慮にされます。
- 各割り当てポリシーは、最も厳格なポリシー (
contiguous
) から始まり、最後は--alloc
オプションを使用して指定されるか、または特定の論理ボリュームやボリュームグループ用にデフォルトとして設定される割り当てポリシーへと順番に試行されます。割り当てポリシーでは、埋める必要がある空の論理ボリューム領域の最小番号の論理エクステントから、割り当てポリシーによる制限に沿って、できるだけ多くの領域の割り当てを行います。領域がさらに必要な場合は、LVM は次のポリシーに移動します。
割り当てポリシーの制限は以下のとおりです。
contiguous
の割り当てポリシーでは、論理ボリュームの 1 番目の論理エクステントではない論理エクステントは、その直前の論理エクステントに物理的に隣接させる必要があります。論理ボリュームがストライプ化またはミラー化されると、contiguous
の割り当て制限が、領域を必要とするそれぞれのストライプまたはミラーイメージ (レッグ) に個別に適用されます。cling
の割り当てポリシーでは、既存の論理ボリュームに追加される任意の論理エクステントに使用される物理ボリュームは、その論理ボリューム内で 1 つ以上の論理エクステントによってすでに使用されている必要があります。allocation/cling_tag_list
の設定パラメーターが定義されている場合で、一覧表示されているいずれかのタグが 2 つの物理ボリュームにある場合、これらの両方の物理ボリュームは一致すると見なされます。これにより、割り当て用に、同様のプロパティー (物理的な場所など) を持つ物理ボリュームのグループにタグを付け、これらを同等なものとして処理することができます。cling
ポリシーを LVM ボリュームの拡張時に使用する追加の物理ボリュームを指定する LVM タグと併用する方法の詳細は、「cling
割り当てポリシーを使用した論理ボリュームの拡張」 を参照してください。論理ボリュームがストライプ化またはミラー化されると、cling
の割り当て制限が、領域を必要とする各ストライプまたはミラーイメージ (レッグ) に個別に適用されます。normal
の割り当てポリシーは、並列の論理ボリューム (異なるストライプまたはミラーイメージ/レッグ) 内の同じオフセットで、その並列論理ボリュームにすでに割り当て済みの論理エクステントと同じ物理ボリュームを共有する物理エクステントは選択しません。ミラーデータを保持するために論理ボリュームと同時にミラーログを割り当てる場合、normal
の割り当てポリシーは最初にログやデータに対して異なる物理ボリュームの選択を試行します。それが不可能で、かつallocation/mirror_logs_require_separate_pvs
設定パラメーターが 0 に設定されている場合は、ログにより物理ボリュームとデータの一部を共有できるようになります。同様に、シンプールメタデータを割り当てる場合、normal
の割り当てポリシーはミラーログを割り当てる場合と同じ注意事項に従い、allocation/thin_pool_metadata_require_separate_pvs
設定パラメーターの値に基づきます。- 割り当て要求を満たすだけの十分な空きエクステントがあっても
normal
の割り当てポリシーがそれらを使用しない場合は、たとえ同じ物理ボリュームに 2 つのストライプを配置することによってパフォーマンスが低下しても、anywhere
割り当てポリシーがそれらを使用します。
割り当てポリシーは
vgchange
コマンドを使用して変更できます。
注記
定義された割り当てポリシーに基づいてこのセクションで文書化されている以上のレイアウトの動作が必要な場合、今後のバージョンのコードで変更がある可能性がある点に注意してください。たとえば、割り当て可能な空き物理エクステントの同一番号を持つ 2 つの空の物理ボリュームをコマンドラインで指定する場合、LVM はそれらが表示されている順番でそれぞれを使用するように認識します。ただし、今後のリリースでこのプロパティーが引き続き維持される保証はありません。特定の論理ボリュームに特定のレイアウトを取得することが重要な場合は、各ステップに適用される割り当てポリシーに基づいて LVM がレイアウトを決定することがないように、
lvcreate
と lvconvert
の一連のステップでレイアウトを構築するようにしてください。
割り当てプロセスが特定ケースで実行される現在の方法を表示するには、コマンドに
-vvvv
オプションを追加するなどして、デバッグロギングの出力を読み取ることができます。