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


ボリュームグループ (VG) を作成および使用すると、複数の物理ボリューム (PV) を 1 つのストレージエンティティーにまとめて管理およびサイズ変更できます。

LVM で割り当てることができる最小単位の領域のことを、エクステントといいます。物理エクステント (PE) と論理エクステント (LE) のデフォルトサイズは 4 MiB です。このサイズは設定可能です。すべてのエクステントは同じサイズです。

VG 内に論理ボリューム (LV) を作成すると、LVM が PV に物理エクステントを割り当てます。LV 内の論理エクステントは、VG 内の物理エクステントと 1 対 1 で対応します。LV を作成するために PE を指定する必要はありません。LVM は利用可能な PE を検出してそれらを組み合わせて、要求されたサイズの LV を作成します。

VG 内では、複数の LV を作成できます。各 LV は、従来のパーティションのように機能しますが、複数の物理ボリュームにまたがって動的にサイズを変更する機能を備えています。VG はディスク領域の割り当てを自動的に管理できます。

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

vgcreate コマンドを使用してボリュームグループ (VG) を作成できます。非常に大きいボリュームまたは非常に小さいボリュームのエクステントサイズを調整すると、パフォーマンスとストレージ効率を最適化できます。エクステントサイズは、VG を作成するときに指定できます。エクステントサイズを変更するには、ボリュームグループを再作成する必要があります。

前提条件

  • 管理アクセスがある。
  • lvm2 パッケージがインストールされている。
  • 1 つ以上の物理ボリュームが作成されている。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。

手順

  1. VG に含める PV をリスト表示して特定します。

    # pvs
  2. VG を作成します。

    # vgcreate VolumeGroupName PhysicalVolumeName1 PhysicalVolumeName2

    VolumeGroupName は、作成するボリュームグループの名前に置き換えます。PhysicalVolumeName は、PV の名前に置き換えます。

    VG を作成するときにエクステントサイズを指定するには、-s ExtentSize オプションを使用します。ExtentSize は、エクステントサイズに置き換えます。サイズの接尾辞を指定しなかった場合、このコマンドではデフォルトで MB が使用されます。

検証

  • VG が作成されたことを確認します。

    # vgs
    
      VG              #PV #LV #SN Attr   VSize  VFree
      VolumeGroupName   1   0   0 wz--n- 28.87g 28.87g

関連情報

  • システム上の vgcreate(8)vgs(8)、および pvs(8) man ページ

58.3.2. Web コンソールでボリュームグループの作成

1 つ以上の物理ドライブまたは他のストレージデバイスからボリュームグループを作成します。

論理ボリュームは、ボリュームグループから作成されます。各ボリュームグループに、複数の論理ボリュームを追加できます。

前提条件

  • RHEL 8 Web コンソールがインストールされている。

    手順は、Web コンソールのインストールおよび有効化 を参照してください。

  • cockpit-storaged パッケージがシステムにインストールされている。
  • ボリュームグループを作成する物理ドライブ、またはその他の種類のストレージデバイス。

手順

  1. RHEL 8 Web コンソールにログインします。

    詳細は、Web コンソールへのログイン を参照してください。

  2. Storage をクリックします。
  3. Storage テーブルで、メニューボタンをクリックします。
  4. ドロップダウンメニューから、Create LVM2 volume group を選択します。

    Image displaying the available options in the Storage table drop-down menu. Selecting Create LVM2 volume group.

  5. Name フィールドにボリュームグループの名前を入力します。名前にスペースを含めることはできません。
  6. ボリュームグループを作成するために組み合わせるドライブを選択します。

    cockpit create volume group

    RHEL Web コンソールは、未使用のブロックデバイスのみを表示します。リストにデバイスが表示されない場合は、そのデバイスがシステムで使用されていないことを確認するか、デバイスを空で未使用の状態にフォーマットしてください。使用されるデバイスには、たとえば次のようなものがあります。

    • ファイルシステムでフォーマットしたデバイス
    • 別のボリュームグループの物理ボリューム
    • 別のソフトウェアの RAID デバイスのメンバーになる物理ボリューム
  7. Create をクリックします。

    ボリュームグループが作成されている。

検証

  • Storage ページで、新しいボリュームグループが Storage テーブルにリストされているかどうかを確認します。

58.3.3. LVM ボリュームグループの名前変更

vgrename コマンドを使用してボリュームグループ (VG) の名前を変更できます。

前提条件

  • 管理アクセスがある。
  • lvm2 パッケージがインストールされている。
  • 1 つ以上の物理ボリュームが作成されている。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。
  • ボリュームグループが作成されている。ボリュームグループの作成の詳細は、「LVM ボリュームグループの作成」 を参照してください。

手順

  1. 名前を変更する VG をリスト表示して特定します。

    # vgs
  2. VG の名前を変更します。

    # vgrename OldVolumeGroupName NewVolumeGroupName

    OldVolumeGroupName は、VG の名前に置き換えます。NewVolumeGroupName は、VG の新しい名前に置き換えます。

検証

  • VG に新しい名前が付けられたことを確認します。

    # vgs
    
      VG                  #PV #LV #SN Attr   VSize  VFree
      NewVolumeGroupName   1   0   0 wz--n- 28.87g 28.87g

関連情報

  • vgrename(8)vgs(8) man ページ

58.3.4. LVM ボリュームグループの拡張

vgextend コマンドを使用して、物理ボリューム (PV) をボリュームグループ (VG) に追加できます。

前提条件

  • 管理アクセスがある。
  • lvm2 パッケージがインストールされている。
  • 1 つ以上の物理ボリュームが作成されている。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。
  • ボリュームグループが作成されている。ボリュームグループの作成の詳細は、「LVM ボリュームグループの作成」 を参照してください。

手順

  1. 拡張する VG をリスト表示して特定します。

    # vgs
  2. VG に追加する PV をリスト表示して特定します。

    # pvs
  3. VG を拡張します。

    # vgextend VolumeGroupName PhysicalVolumeName

    VolumeGroupName は、VG の名前に置き換えます。PhysicalVolumeName は、PV の名前に置き換えます。

検証

  • VG に新しい PV が含まれていることを確認します。

    # pvs
    
      PV         VG              Fmt  Attr PSize  PFree
      /dev/sda   VolumeGroupName lvm2 a--  28.87g 28.87g
      /dev/sdd   VolumeGroupName lvm2 a--   1.88g  1.88g

関連情報

  • vgextend(8)vgs(8)pvs(8) man ページ

58.3.5. LVM ボリュームグループの結合

vgmerge コマンドを使用して、既存の 2 つのボリュームグループ (VG) を結合できます。結合元ボリュームが結合先ボリュームにマージされます。

前提条件

  • 管理アクセスがある。
  • lvm2 パッケージがインストールされている。
  • 1 つ以上の物理ボリュームが作成されている。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。
  • 2 つ以上のボリュームグループが作成されている。ボリュームグループの作成の詳細は、「LVM ボリュームグループの作成」 を参照してください。

手順

  1. マージする VG をリスト表示して特定します。

    # vgs
    
      VG               #PV #LV #SN Attr   VSize  VFree
      VolumeGroupName1   1   0   0 wz--n- 28.87g 28.87g
      VolumeGroupName2   1   0   0 wz--n-  1.88g  1.88g
  2. 結合元 VG を結合先 VG にマージします。

    # vgmerge VolumeGroupName2 VolumeGroupName1

    VolumeGroupName2 は、結合元 VG の名前に置き換えます。VolumeGroupName1 は、結合先 VG の名前に置き換えます。

検証

  • VG に新しい PV が含まれていることを確認します。

    # vgs
    
      VG               #PV #LV #SN Attr   VSize  VFree
      VolumeGroupName1   2   0   0 wz--n- 30.75g 30.75g

関連情報

  • システム上の vgmerge(8) man ページ

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

ボリュームグループ (VG) から未使用の物理ボリューム (PV) を削除するには、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. 新しく作成した物理ボリュームをボリュームグループに追加します。

      # vgextend VolumeGroupName /dev/vdb4
        Volume group "VolumeGroupName" 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 VolumeGroupName /dev/vdb3
    Removed "/dev/vdb3" from volume group "VolumeGroupName"

検証

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

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

関連情報

  • システム上の vgreduce(8)pvmove(8)、および pvs(8) man ページ

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

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

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

前提条件

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

手順

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

    # vgsplit VolumeGroupName1 VolumeGroupName2 /dev/vdb3
      Volume group "VolumeGroupName2" successfully split from "VolumeGroupName1"
    注記

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

    # lvchange -a n /dev/VolumeGroupName1/LogicalVolumeName

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

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

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

検証

  • 新しく作成したボリュームグループ VolumeGroupName2 が、/dev/vdb3 物理ボリュームで構成されていることを確認します。

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

関連情報

  • システム上の vgsplit(8)vgs(8)、および pvs(8) man ページ

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

次のコマンドを使用して、LVM ボリュームグループ (VG) 全体を別のシステムに移動できます。

vgexport
既存のシステムでこのコマンドを使用して、システムから非アクティブな VG にアクセスできないようにします。VG にアクセスできなくなったら、その物理ボリューム (PV) の接続を解除できます。
vgimport
他のシステムでこのコマンドを使用して、新しいシステムで、古いシステムで非アクティブだった VG にアクセスできるようにします。

前提条件

  • 移動するボリュームグループ内のアクティブなボリュームのファイルにアクセスしているユーザーがいない。

手順

  1. LogicalVolumeName 論理ボリュームをアンマウントします。

    # umount /dev/mnt/LogicalVolumeName
  2. ボリュームグループ内のすべての論理ボリュームを非アクティブ化します。これにより、ボリュームグループでこれ以上の動作が発生しないようにします。

    # vgchange -an VolumeGroupName
    vgchange -- volume group "VolumeGroupName" successfully deactivated
  3. ボリュームグループをエクスポートして、削除元のシステムがボリュームグループにアクセスできないようにします。

    # vgexport VolumeGroupName
    vgexport -- volume group "VolumeGroupName" successfully exported
  4. エクスポートされたボリュームグループを表示します。

    # pvscan
      PV /dev/sda1    is in exported VG VolumeGroupName [17.15 GB / 7.15 GB free]
      PV /dev/sdc1    is in exported VG VolumeGroupName [17.15 GB / 15.15 GB free]
      PV /dev/sdd1    is in exported VG VolumeGroupName [17.15 GB / 15.15 GB free]
      ...
  5. システムをシャットダウンし、ボリュームグループを構成するディスクを取り外し、新しいシステムに接続します。
  6. ディスクを新しいシステムに接続し、ボリュームグループをインポートして、新しいシステムからアクセスできるようにします。

    # vgimport VolumeGroupName
    注記

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

  7. ボリュームグループをアクティブ化します。

    # vgchange -ay VolumeGroupName
  8. ファイルシステムをマウントして使用できるようにします。

    # mkdir -p /mnt/VolumeGroupName/users
    # mount /dev/VolumeGroupName/users /mnt/VolumeGroupName/users

関連情報

  • システム上の vgimport(8)vgexport(8)、および vgchange(8) man ページ

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

vgremove コマンドを使用して、既存のボリュームグループを削除できます。削除できるボリュームグループは、論理ボリュームが含まれていないものだけです。

前提条件

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

手順

  1. ボリュームグループに論理ボリュームが含まれていないことを確認します。

    # vgs -o vg_name,lv_count VolumeGroupName
    
      VG               #LV
      VolumeGroupName    0

    VolumeGroupName は、ボリュームグループの名前に置き換えます。

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

    # vgremove VolumeGroupName

    VolumeGroupName は、ボリュームグループの名前に置き換えます。

関連情報

  • システム上の vgs(8)vgremove(8) man ページ

58.3.10. クラスター環境での LVM ボリュームグループの削除

クラスター環境では、LVM は lockspace <qualifier> を使用して、複数のマシン間で共有されるボリュームグループへのアクセスを調整します。ボリュームグループを削除する前に lockspace を停止し、削除プロセス中に他のノードがボリュームグループにアクセスしたり変更したりしないようにする必要があります。

前提条件

  • 管理アクセスがある。
  • ボリュームグループには論理ボリュームがありません。

手順

  1. ボリュームグループに論理ボリュームが含まれていないことを確認します。

    # vgs -o vg_name,lv_count VolumeGroupName
    
      VG               #LV
      VolumeGroupName    0

    VolumeGroupName は、ボリュームグループの名前に置き換えます。

  2. ボリュームグループを削除するノードを除くすべてのノードで lockspace を停止します。

    # vgchange --lockstop VolumeGroupName

    VolumeGroupName は、ボリュームグループの名前に置き換えます。ロックが停止するまで待ちます。

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

    # vgremove VolumeGroupName

    VolumeGroupName は、ボリュームグループの名前に置き換えます。

関連情報

  • vgremove(8)vgchange(8) man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.