5.3.2. LVM の割り当て
LVM の操作で物理エクステントを単一または複数の論理ボリュームに割り当てる必要がある場合、割り当ては以下のように行われます。
- ボリュームグループ内で未割り当ての物理エクステントが割り当て用に生成されます。コマンドラインの末尾で物理エクステントの範囲を指定した場合は、指定した物理ボリューム上のその範囲内で未割り当ての物理エクステントのみが割り当て用として考慮に入れられます。
- 各割り当てポリシーは、最も厳しいポリシー (
contiguous) から始まり、最後は--allocオプションを使用して指定される、あるいは特定の論理ボリュームやボリュームグループ用にデフォルトとしてセットされる割り当てポリシーと、順番に試行されます。割り当てポリシーでは、埋める必要がある空の論理ボリューム領域の最少の論理エクステントから、割り当てポリシーによる制限に沿って、できるだけ多くの領域の割り当てを行います。領域がさらに必要な場合は、LVM は次のポリシーに移動します。
割り当てポリシーの制限は以下のとおりです。
contiguousの割り当てポリシーでは、論理ボリュームの 1 番目の論理エクステントではない論理エクステントは、直接先行する論理エクステントに物理的に隣接する必要があります。論理ボリュームがストライプ化またはミラー化されると、contiguousの割り当て制限が、領域を必要とする各ストライプまたはミラーイメージ (レッグ) に個別に適用されます。clingの割り当てポリシーでは、既存の論理ボリュームに追加される任意の論理エクステントに使用される物理ボリュームは、その論理ボリューム内でそれより前から 1 つ以上の論理エクステントにより使用されている必要があります。allocation/cling_tag_listの設定パラメーターが定義されている場合に、一覧表示されているいずれかのタグが 2 つの物理ボリュームに存在していると、この両方の物理ボリュームは適合すると考えられます。これにより、同じプロパティ (物理的な場所など) を持つ物理ボリュームのグループを、割り当て目的でタグして同等に処理することができます。LVM ボリュームの拡張時に使用する追加の物理ボリュームを指定する LVM タグとともに、clingポリシーの使用に関しては、「cling割り当てポリシーを使用した論理ボリュームの拡張」 をご覧ください。論理ボリュームがストライプ化またはミラー化されると、clingの割り当て制限が、領域を必要とする各ストライプまたはミラーイメージ (レッグ) に個別に適用されます。normalの割り当てポリシーは、並列の論理ボリューム (異なるストライプまたはミラーイメージ/レッグ) 内の同じオフセットで、その並列の論理ボリュームにすでに割り当て済みの論理エクステントと同じ物理ボリュームを共有する物理エクステントは選択しません。ミラーデータ保持のために論理ボリュームと同時にミラーログを割り当てる場合、normalの割り当てポリシーは最初にログやデータに対して異なる物理ボリュームを選択しようとします。それが不可能で、かつallocation/mirror_logs_require_separate_pvs設定パラメーターが 0 にセットされている場合は、ログが物理ボリュームとデータの一部を共有できるようになります。同様に、シンプールメタデータを割り当てる場合、normalの割り当てポリシーはミラーログを割り当てる場合と同じ注意事項に沿います。allocation/thin_pool_metadata_require_separate_pvs設定パラメーターの値に基づきます。- 割り当て要求を満たすだけの十分な空きエクステントがあっても
normalの割り当てポリシーがそれらを使用しない場合は、たとえパフォーマンスが低下しても、同じ物理ボリュームに 2 つのストライプを配置することによって、anywhere割り当てポリシーが使用します。
割り当てポリシーは
vgchange コマンドを使用して変更できます。
注記
If you rely upon any layout behavior beyond that documented in this section according to the defined allocation policies, you should note that this might change in future versions of the code. For example, if you supply on the command line two empty physical volumes that have an identical number of free physical extents available for allocation, LVM currently considers using each of them in the order they are listed; there is no guarantee that future releases will maintain that property. If it is important to obtain a specific layout for a particular Logical Volume, then you should build it up through a sequence of
lvcreate and lvconvert steps such that the allocation policies applied to each step leave LVM no discretion over the layout.
割り当てプロセスが特定のケースで現在実行する方法を表示するには、コマンドに
-vvvv オプションを追加するなどして、デバッグロギングの出力を読み取ることができます。