67.13. LVM の割り当ての制御


デフォルトでは、ボリュームグループは normal 割り当てポリシーを使用します。これにより、同じ物理ボリューム上に並行ストライプを配置しないなどの常識的な規則に従って物理エクステントが割り当てられます。vgcreate コマンドで --alloc 引数を使用すると、別の割り当てポリシー (contiguousanywhere、または cling) を指定できます。一般的に、normal 以外の割り当てポリシーが必要となるのは、通常とは異なる、標準外のエクステント割り当てを必要とする特別なケースのみです。

67.13.1. 指定したデバイスからのエクステントの割り当て

lvcreate コマンドと lvconvert コマンドを使用する際に、コマンドラインの末尾でデバイス引数を使用すると、特定のデバイスからの割り当てに制限できます。より詳細に制御するために、各デバイスの実際のエクステント範囲を指定できます。このコマンドは単に、指定した物理ボリューム (PV) を引数として使用して、新しい論理ボリューム (LV) にエクステントを割り当てます。各 PV から利用可能なエクステントがなくなるまでエクステントを取得し、その後、次にリストされている PV からエクステントを取得します。リストされているすべての PV の領域が、要求された LV サイズに対して不足する場合、コマンドは失敗します。このコマンドは、指定した PV からのみ割り当てを行うことに注意してください。Raid LV は、個別の RAID イメージまたは個別のストライプにシーケンシャル PV を使用します。PV のサイズが RAID イメージ全体に対して十分でない場合、デバイスの使用量を完全に予測することはできません。

手順

  1. ボリュームグループ (VG) を作成します。

    # vgcreate <vg_name> <PV> ...

    ここでは、以下のようになります。

    • <vg_name> は VG の名前です。
    • <PV> は PV です。
  2. PV を割り当てて、リニアや RAID などのさまざまなボリュームタイプを作成できます。

    1. エクステントを割り当ててリニアボリュームを作成します。

      # 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 から割り当てられる可能性があります。

          例67.10 1 つの PV からのエクステントの割り当て

          この例では、lv1 エクステントが sda から割り当てられます。

          # lvcreate -n lv1 -L1G vg /dev/sda

          例67.11 2 つの PV からのエクステントの割り当て

          この例では、lv2 エクステントが sdasdb、または両方の組み合わせから割り当てられます。

          # lvcreate -n lv2 L1G vg /dev/sda /dev/sdb

          例67.12 PV を指定しないエクステントの割り当て

          この例では、lv3 エクステントが、VG 内の PV の 1 つ、または VG 内のすべての PV の任意の組み合わせから割り当てられます。

          # lvcreate -n lv3 -L1G vg

          または、以下を実行します。

    2. エクステントを割り当てて RAID ボリュームを作成します。

      # lvcreate --type <segment_type> -m <mirror_images> -n <lv_name> -L <lv_size> <vg_name> [ <PV> ... ]

      ここでは、以下のようになります。

      • <segment_type> は、指定したセグメントタイプ (例: raid5mirrorsnapshot) です。
      • <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 から割り当てられます。以後も同様です。

        例67.13 2 つの PV からの RAID イメージの割り当て

        この例では、lv4 の最初の RAID イメージは sda から割り当てられ、2 番目のイメージは sdb から割り当てられます。

        # lvcreate --type raid1 -m 1 -n lv4 -L1G vg /dev/sda /dev/sdb

        例67.14 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 ページ

67.13.2. LVM の割り当てポリシー

LVM の操作で物理エクステントを 1 つまたは複数の論理ボリューム (LV) に割り当てる必要がある場合、割り当ては以下のように行われます。

  • ボリュームグループで割り当てられていない物理エクステントのセットが、割り当てのために生成されます。コマンドラインの末尾に物理エクステントの範囲を指定すると、指定した物理ボリューム (PV) の中で、その範囲内で割り当てられていない物理エクステントだけが、割り当て用エクステントとして考慮されます。
  • 割り当てポリシーは順番に試行されます。最も厳格なポリシー (contiguous) から始まり、最後は --alloc オプションで指定した割り当てポリシーか、特定の LV やボリュームグループ (VG) にデフォルトとして設定されている割り当てポリシーが試行されます。各割り当てポリシーでは、埋める必要がある空の LV 領域の最小番号の論理エクステントから始まり、割り当てポリシーによる制限に従って、できるだけ多くの領域の割り当てを行います。領域が足りなくなると、LVM は次のポリシーに移動します。

割り当てポリシーの制限は以下のとおりです。

  • contiguous ポリシーでは、LV の最初の論理エクステントを除き、論理エクステントの物理的位置が、直前の論理エクステントの物理的位置に隣接している必要があります。

    LV がストライプ化またはミラーリングされている場合、contiguous の割り当て制限は、領域を必要とする各ストライプまたは RAID イメージに個別に適用されます。

  • cling の割り当てポリシーでは、既存の LV に追加する論理エクステントに使用される PV が、その LV にある少なくとも 1 つの論理エクステントですでに使用されている必要があります。
  • normal の割り当てポリシーでは、並行 LV 内の同じオフセットで、並行 LV (つまり、異なるストライプまたは RAID イメージ) にすでに割り当てられている論理エクステントと同じ PV を共有する物理エクステントは選択されません。
  • 割り当て要求を満たすのに十分な空きエクステントがあっても、normal の割り当てポリシーによって使用されない場合は、たとえ同じ PV に 2 つのストライプを配置することによってパフォーマンスが低下しても、anywhere の割り当てポリシーがその空きエクステントを使用します。

vgchange コマンドを使用して、割り当てポリシーを変更できます。

注記

今後の更新で、定義された割り当てポリシーに基づくレイアウト操作のコードが変更される可能性があることに注意してください。たとえば、割り当て可能な空き物理エクステントの数が同じ 2 つの空の物理ボリュームをコマンドラインで指定する場合、現行バージョンの LVM では、それが表示されている順番に使用が検討されます。ただし、今後のリリースで、そのプロパティーが変更されない保証はありません。特定の LV 用に特定のレイアウトが必要な場合は、各手順に適用される割り当てポリシーに基づいて LVM がレイアウトを決定することがないように、lvcreatelvconvert を順に使用してレイアウトを構築してください。

67.13.3. 物理ボリュームでの割り当て防止

pvchange コマンドを使用すると、単一または複数の物理ボリュームの空き領域で物理エクステントが割り当てられないようにすることができます。これは、ディスクエラーが発生した場合や、物理ボリュームを削除する場合に必要となる可能性があります。

手順

  • device_name での物理エクステントの割り当てを無効にするには、次のコマンドを使用します。

    # pvchange -x n /dev/sdk1

    pvchange コマンドで -xy 引数を使用すると、無効にされていた割り当てを許可できます。

関連情報

  • システム上の pvchange(8) man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.