Red Hat Training

A Red Hat training course is available for RHEL 8

68.3. LVM ボリュームグループの管理

ボリュームグループ (VG) は、物理ボリューム (PV) の集合です。これにより、論理ボリューム (LV) に割り当て可能なディスク領域のプールが作成されます。

ボリュームグループ内で、割り当て可能なディスク領域は、エクステントと呼ばれる固定サイズの単位に分割されます。割り当て可能な領域の最小単位は、1 エクステントです。エクステントは、物理ボリュームでは物理エクステントと呼ばれます。

論理ボリュームには、物理エクステントと同じサイズの論理エクステントが割り当てられます。そのため、エクステントのサイズは、ボリュームグループ内のすべての論理ボリュームで同じになります。ボリュームグループは、論理エクステントを物理エクステントにマッピングします。

68.3.1. LVM ボリュームグループの作成

この手順では、物理ボリューム/dev/vdb1 および /dev/vdb2を使用して、LVM ボリュームグループ (VG) myvgを作成する方法を説明します。

前提条件

  • lvm2 パッケージがインストールされている。
  • 物理ボリュームが作成されます。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。

手順

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

    # vgcreate myvg /dev/vdb1 /dev/vdb2
     Volume group "myvg" successfully created.

    これにより、myvg という名前の VG が作成されます。物理ボリュームの /dev/vdb1 および /dev/vdb2 は、ボリュームグループ myvg のベースストレージレベルです。

  2. 要件に応じて、以下のコマンドのいずれかを使用して、作成したボリュームグループを表示します。

    1. vgs コマンド: ボリュームグループの情報を設定可能な形式で提供し、1 ボリュームグループにつき 1 行ずつ表示します。

      # vgs
        VG    #PV #LV #SN  Attr  VSize   VFree
       myvg   2    0   0   wz-n  159.99g 159.99g
    2. vgdisplay コマンド: 決められた形式でボリュームグループのプロパティー (サイズ、エクステント、物理ボリュームの数など) およびその他のオプションを表示します。以下の例は、ボリュームグループ myvg に関する vgdisplay コマンドの出力を示しています。既存のすべてのボリュームグループを表示するには、ボリュームグループを指定しないでください。

      # vgdisplay myvg
        --- Volume group ---
        VG Name               myvg
        System ID
        Format                lvm2
        Metadata Areas        4
        Metadata Sequence No  6
        VG Access             read/write
      [..]
    3. vgscan コマンド: ボリュームグループ用に、システムにあるサポートされるすべての LVM ブロックデバイスをスキャンします。

      # vgscan
        Found volume group "myvg" using metadata type lvm2
  3. オプション:オプション: 空き物理ボリュームを 1 つまたは複数追加して、ボリュームグループの容量を増やします。

    # vgextend myvg /dev/vdb3
    Physical volume "/dev/vdb3" successfully created.
    Volume group "myvg" successfully extended
  4. オプション:既存のボリュームグループの名前を変更します。

    # vgrename myvg myvg1
    Volume group "myvg" successfully renamed to "myvg1"

関連情報

  • vgcreate (8)vgextend (8)vgdisplay (8)vgs (8)vgscan (8)vgrename (8)、および lvm (8) の man ページ

68.3.2. LVM ボリュームグループの統合

2 つのボリュームグループを統合して 1 つのボリュームグループにするには、vgmerge コマンドを使用します。ボリュームの物理エクステントサイズが同じで、かつ両ボリュームグループの物理ボリュームおよび論理ボリュームのサマリーがマージ先ボリュームグループの制限内に収まる場合は、非アクティブなマージ元のボリュームを、アクティブまたは非アクティブのマージ先ボリュームにマージができます。

手順

  • 非アクティブなボリュームグループ databases をアクティブまたは非アクティブなボリュームグループ myvg にマージして、詳細なランタイム情報を提供します。

    # vgmerge -v myvg databases

関連情報

  • vgmerge(8) の man ページ

68.3.3. ボリュームグループからの物理ボリュームの削除

ボリュームグループから未使用の物理ボリュームを削除するには、vgreduce コマンドを使用します。vgreduce コマンドは、空の物理ボリュームを 1 つまたは複数削除して、ボリュームグループの容量を縮小します。これにより、物理ボリュームが解放され、異なるボリュームグループで使用したり、システムから削除できるようになります。

手順

  1. 物理ボリュームがまだ使用中の場合は、データを同じボリュームグループから別の物理ボリュームに移行します。

    # pvmove /dev/vdb3
      /dev/vdb3: Moved: 2.0%
     ...
      /dev/vdb3: Moved: 79.2%
     ...
      /dev/vdb3: Moved: 100.0%
  2. 既存のボリュームグループ内の他の物理ボリュームに空きエクステントが十分にない場合は、以下を行います。

    1. /dev/vdb4 から、物理ボリュームを新規作成します。

      # pvcreate /dev/vdb4
        Physical volume "/dev/vdb4" successfully created
    2. 新規作成した物理ボリュームを myvg ボリュームグループに追加します。

      # vgextend myvg /dev/vdb4
        Volume group "myvg" successfully extended
    3. データを /dev/vdb3 から /dev/vdb4 に移動します。

      # pvmove /dev/vdb3 /dev/vdb4
        /dev/vdb3: Moved: 33.33%
        /dev/vdb3: Moved: 100.00%
  3. ボリュームグループから物理ボリューム /dev/vdb3 を削除します。

    # vgreduce myvg /dev/vdb3
    Removed "/dev/vdb3" from volume group "myvg"

検証

  • /dev/vdb3 物理ボリュームが myvg ボリュームグループから削除されているかどうかを確認します。

    # pvs
      PV           VG    Fmt   Attr   PSize        PFree      Used
      /dev/vdb1 myvg  lvm2   a--    1020.00m    0          1020.00m
      /dev/vdb2 myvg  lvm2   a--    1020.00m    0          1020.00m
      /dev/vdb3   	    lvm2   a--    1020.00m   1008.00m    12.00m

関連情報

  • vgreduce(8)pvmove(8)、および pvs(8) の man ページ

68.3.4. LVM ボリュームグループの分割

この手順では、既存のボリュームグループを分割する方法を説明します。この物理ボリュームに未使用領域が十分にあれば、新たにディスクを追加しなくてもボリュームグループを作成できます。

初期設定では、ボリュームグループ myvg/dev/vdb1/dev/vdb2、および /dev/vdb3 で設定されます。この手順を完了すると、ボリュームグループ myvg/dev/vdb1 および /dev/vdb2 で設定され、2 番目のボリュームグループ yourvg/dev/vdb3 で設定されます。

前提条件

  • ボリュームグループに十分な空き領域がある。vgscan コマンドを使用すると、現在ボリュームグループで利用可能な空き領域の容量を確認できます。
  • 既存の物理ボリュームの空き容量に応じて、pvmove コマンドを使用して、使用されている物理エクステントをすべて他の物理ボリュームに移動します。詳細は、ボリュームグループからの物理ボリュームの削除 を参照してください。

手順

  1. 既存のボリュームグループ myvg を新しいボリュームグループ yourvg に分割します。

    # vgsplit myvg yourvg /dev/vdb3
      Volume group "yourvg" successfully split from "myvg"
    注記

    既存のボリュームグループを使用して論理ボリュームを作成した場合は、次のコマンドを実行して論理ボリュームを非アクティブにします。

    # lvchange -a n /dev/myvg/mylv

    論理ボリュームを作成する方法は、LVM 論理ボリュームの管理 を参照してください。

  2. 2 つのボリュームグループの属性を表示します。

    # vgs
      VG     #PV #LV #SN Attr   VSize  VFree
      myvg     2   1   0 wz--n- 34.30G 10.80G
      yourvg   1   0   0 wz--n- 17.15G 17.15G

検証

  • 新規作成したボリュームグループ yourvg が、/dev/vdb3 物理ボリュームで設定されているかどうかを確認します。

    # pvs
      PV           VG      Fmt   Attr   PSize        PFree      Used
      /dev/vdb1 myvg   lvm2   a--    1020.00m    0          1020.00m
      /dev/vdb2 myvg   lvm2   a--    1020.00m    0          1020.00m
      /dev/vdb3 yourvg lvm2   a--    1020.00m   1008.00m    12.00m

関連情報

  • vgsplit(8)vgs(8)、および pvs(8) の man ページ

68.3.5. ボリュームグループを別のシステムへ移動

LVM ボリュームグループ全体を、別のシステムに移動できます。これを実行するには、vgexportvgimport のコマンドの使用が推奨されます。

注記

vgimport コマンドの --force 引数を使用できます。この引数を使用すると、物理ボリュームがないボリュームグループをインポートし、その後に vgreduce --removemissing コマンドを実行することが可能になります。

vgexport コマンドは、非アクティブのボリュームグループにシステムがアクセスできないようにするため、物理ボリュームの割り当て解除が可能になります。vgimport コマンドは、vgexport コマンドで非アクティブにしていたボリュームグループに、マシンが再度アクセスできるようにします。

ボリュームグループを 2 つのシステム間で移行するには、以下の手順に従います。

  1. ボリュームグループ内のアクティブなボリュームのファイルにアクセスしているユーザーがいないことを確認してから、論理ボリュームをアンマウントします。
  2. vgchange コマンドで -a n 引数を使用して、そのボリュームグループを非アクティブとしてマークします。これによりこのボリュームグループでこれ以上の動作が発生しないようにします。
  3. vgexport コマンドを使用してボリュームグループをエクスポートします。これにより、削除するシステムからボリュームグループへアクセスできなくなります。

    ボリュームグループをエクスポートして pvscan コマンドを実行すると、以下の例のように、エクスポート先のボリュームグループに物理ボリュームが表示されます。

    # pvscan
      PV /dev/sda1    is in exported VG myvg [17.15 GB / 7.15 GB free]
      PV /dev/sdc1    is in exported VG myvg [17.15 GB / 15.15 GB free]
      PV /dev/sdd1   is in exported VG myvg [17.15 GB / 15.15 GB free]
      ...

    次にシステムがシャットダウンする時に、ボリュームグループを設定していたディスクを外して、新しいシステムに接続できます。

  4. ディスクが新しいシステムに接続したら、vgimport コマンドを使用してボリュームグループをインポートし、新しいシステムからアクセスできるようにします。
  5. vgchange コマンドで -a y 引数を使用して、ボリュームグループをアクティブにします。
  6. ファイルシステムをマウントして使用できるようにします。

68.3.6. LVM ボリュームグループの削除

この手順では、既存のボリュームグループを削除する方法を説明します。

前提条件

  • ボリュームグループには論理ボリュームがありません。ボリュームグループから論理ボリュームを削除するには、LVM 論理ボリュームの削除 を参照してください。

手順

  1. クラスター環境にボリュームグループが存在する場合は、その他のすべてのノードで、ボリュームグループの lockspace を停止します。削除するノード以外の全ノードで、次のコマンドを実行します。

    # vgchange --lockstop vg-name

    ロックが停止するのを待ちます。

  2. ボリュームグループを削除します。

    # vgremove vg-name
      Volume group "vg-name" successfully removed

関連情報

  • vgremove(8) の man ページ