67.4. LVM 論理ボリュームの管理


論理ボリュームは、ファイルシステム、データベース、またはアプリケーションが使用できる仮想のブロックストレージデバイスです。LVM 論理ボリュームを作成する場合は、物理ボリューム (PV) をボリュームグループ (Volume Group: VG) に統合します。これによりディスク領域のプールが作成され、そこから LVM 論理ボリューム (Logical Volume: LV) を割り当てます。

67.4.1. 論理ボリューム機能の概要

論理ボリュームマネージャー (LVM) を使用すると、従来のパーティションスキームでは実現できない柔軟かつ効率的な方法でディスクストレージを管理できます。以下は、ストレージの管理と最適化に使用される主要な LVM 機能の概要です。

連結
連結では、1 つ以上の物理ボリュームの領域を 1 つの論理ボリュームに結合し、物理ストレージを効果的にマージします。
ストライピング
ストライピングは、データを複数の物理ボリュームに分散することで、データの I/O 効率を最適化します。並列 I/O 操作を可能にすることで、シーケンシャルな読み取りおよび書き込みのパフォーマンスを向上させます。
RAID
LVM は、RAID レベル 0、1、4、5、6、10 に対応します。RAID 論理ボリュームを作成するとき、LVM は、データまたはアレイ内のパリティーサブボリュームごとに、サイズが 1 エクステントのメタデータサブボリュームを作成します。
シンプロビジョニング
シンプロビジョニングを使用すると、使用可能な物理ストレージよりも大きい論理ボリュームを作成できます。シンプロビジョニングでは、事前に決められた量ではなく、実際の使用量に基づいてシステムがストレージを動的に割り当てます。
スナップショット
LVM スナップショットを使用すると、論理ボリュームの特定時点のコピーを作成できます。スナップショットは、最初は空の状態です。元の論理ボリュームに変更が発生すると、スナップショットがコピーオンライト (CoW) により変更前の状態をキャプチャーします。変更があった場合にのみ、元の論理ボリュームの状態を保持するためにサイズが増加します。
キャッシュ
LVM は、高速ブロックデバイス (SSD ドライブなど) を、大規模で低速なブロックデバイスのライトバックまたはライトスルーのキャッシュとして使用することに対応します。既存の論理ボリュームのパフォーマンスを改善するためにキャッシュ論理ボリュームを作成したり、大規模で低速なデバイスと共に小規模で高速なデバイスで構成される新規のキャッシュ論理ボリュームを作成したりできます。

67.4.2. 論理ボリュームのスナップショットの管理

スナップショットは、特定時点における別の LV の内容をミラーリングする論理ボリューム (LV) です。

67.4.2.1. 論理ボリュームスナップショットにてういて

スナップショットを作成すると、特定時点における別の LV のコピーとして機能する新しい LV が作成されます。スナップショット LV は、最初は実際のデータを含んでいません。代わりに、スナップショット作成時における元の LV のデータブロックを参照します。

警告

スナップショットのストレージ使用率を定期的に監視することが重要です。スナップショットに割り当てられている領域の 100% に達すると、スナップショットが無効になります。

スナップショットが完全にいっぱいになる前に拡張することが重要です。これは、lvextend コマンドを使用して手動で行うことも、/etc/lvm/lvm.conf ファイルを使用して自動的に行うこともできます。

シック LV スナップショット
元の LV のデータが変更されると、コピーオンライト (CoW) システムによって、変更前の元のデータがスナップショットにコピーされます。この方法では、変更が発生した場合にのみスナップショットのサイズが増加し、スナップショット作成時における元のボリュームの状態が保存されます。シックスナップショットは、事前に一定量のストレージ領域を割り当てる必要がある LV の一種です。この量は後で増減できますが、元の LV にどのような変更を加える予定かを検討してください。そうすることで、割り当てる領域が多すぎるためにリソースが無駄になったり、割り当てる領域が少なすぎるためにスナップショットのサイズを頻繁に増やす必要が生じたりすることがなくなります。
シン LV スナップショット

シンスナップショットは、既存のシンプロビジョニングされた LV から作成される LV の一種です。シンスナップショットでは、事前に追加の領域を割り当てる必要はありません。最初は、元の LV とそのスナップショットの両方が同じデータブロックを共有します。元の LV に変更が加えられると、新しいデータが別のブロックに書き込まれますが、スナップショットは元のブロックを参照し続け、スナップショット作成時における LV データの特定時点のビューが保持されます。

シンプロビジョニングは、必要に応じてディスク領域を割り当てることで、ストレージを効率的に最適化および管理する方法です。そのため、各 LV に事前に大量のストレージを割り当てる必要がなく、複数の LV を作成できます。ストレージがシンプール内のすべての LV で共有されるため、リソースをより効率的に使用できます。シンプールは、必要に応じて LV に領域を割り当てます。

シック LV スナップショットとシン LV スナップショットの選択
シック LV スナップショットとシン LV スナップショットの選択は、スナップショットの作成元とする LV のタイプによって直接決まります。元の LV がシック LV である場合、スナップショットもシックになります。元の LV がシン LV の場合は、スナップショットもシンになります。

67.4.2.2. シック論理ボリュームスナップショットの管理

シック LV スナップショットを作成するときは、ストレージ要件とスナップショットの想定される有効期間を考慮することが重要です。元のボリュームに予想される変更に基づいて、十分なストレージを割り当てる必要があります。スナップショットは、想定される有効期間中の変更を取り込むのに十分なサイズである必要がありますが、元の LV のサイズを超えることはできません。変更頻度が低いと予想される場合は、10% - 15% の小さいスナップショットサイズで十分な場合があります。変更頻度が高い LV の場合は、30% 以上を割り当てる必要がある場合があります。

重要

スナップショットが完全にいっぱいになる前に拡張することが重要です。スナップショットに割り当てられている領域の 100% に達すると、スナップショットが無効になります。lvs -o lv_name,data_percent,origin コマンドを使用すると、スナップショットの容量を監視できます。

67.4.2.2.1. シック論理ボリュームスナップショットの作成

lvcreate コマンドを使用して、シック LV スナップショットを作成できます。

前提条件

手順

  1. スナップショットを作成する LV を特定します。

    # lvs -o vg_name,lv_name,lv_size
    
      VG              LV                LSize
      VolumeGroupName LogicalVolumeName 10.00g

    スナップショットのサイズは LV のサイズを超えることはできません。

  2. シック LV スナップショットを作成します。

    # lvcreate --snapshot --size SnapshotSize --name SnapshotName VolumeGroupName/LogicalVolumeName

    SnapshotSize は、スナップショットに割り当てるサイズ (例: 10 G) に置き換えます。SnapshotName は、スナップショット論理ボリュームに付ける名前に置き換えます。VolumeGroupName は、元の論理ボリュームを含むボリュームグループの名前に置き換えます。LogicalVolumeName は、スナップショットの作成元とする論理ボリュームの名前に置き換えます。

検証

  • スナップショットが作成されたことを確認します。

    # lvs -o lv_name,origin
    
      LV                  Origin
      LogicalVolumeName
      SnapshotName        LogicalVolumeName

関連情報

  • lvcreate(8) および lvs(8) man ページ
67.4.2.2.2. 論理ボリュームスナップショットの手動拡張

スナップショットに割り当てられている領域の 100% に達すると、スナップショットが無効になります。スナップショットが完全にいっぱいになる前に拡張することが重要です。これは、lvextend コマンドを使用して手動で実行できます。

前提条件

  • 管理アクセスがある。

手順

  1. ボリュームグループ、論理ボリューム、スナップショットのソースボリュームの名前、使用率、およびサイズをリスト表示します。

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 82.00   5.00g
  2. シックプロビジョニングされたスナップショットを拡張します。

    # lvextend --size +AdditionalSize VolumeGroupName/SnapshotName

    AdditionalSize は、スナップショットに追加する容量 (例: +1G) に置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。SnapshotName は、スナップショットの名前に置き換えます。

検証

  • LV が拡張されたことを確認します。

    # lvs -o vg_name,lv_name,origin,data_percent,lv_size
      VG              LV                Origin            Data%  LSize
      VolumeGroupName LogicalVolumeName                          10.00g
      VolumeGroupName SnapshotName      LogicalVolumeName 68.33   6.00g
67.4.2.2.3. シック論理ボリュームスナップショットの自動拡張

スナップショットに割り当てられている領域の 100% に達すると、スナップショットが無効になります。スナップショットが完全にいっぱいになる前に拡張することが重要です。これは自動的に実行できます。

前提条件

  • 管理アクセスがある。

手順

  1. root ユーザーとして、任意のエディターで /etc/lvm/lvm.conf ファイルを開きます。
  2. snapshot_autoextend_threshold 行と snapshot_autoextend_percent 行のコメントを解除し、各パラメーターを必要な値に設定します。

    snapshot_autoextend_threshold = 70
    snapshot_autoextend_percent = 20

    snapshot_autoextend_threshold は、LVM がスナップショットの自動拡張を開始するパーセンテージを指定します。たとえば、このパラメーターを 70 に設定すると、容量の 70% に達したときに LVM がスナップショットの拡張を試みます。

    snapshot_autoextend_percent は、しきい値に達したときにスナップショットを何パーセント拡張するかを指定します。たとえば、パラメーターを 20 に設定すると、スナップショットが現在のサイズの 20% 増加します。

  3. 変更を保存し、エディターを終了します。
  4. lvm2-monitor を再起動します。

    # systemctl restart lvm2-monitor
67.4.2.2.4. シック論理ボリュームのスナップショットのマージ

シック LV スナップショットを、スナップショットの作成元となった元の論理ボリュームにマージできます。マージプロセスでは、元の LV がスナップショット作成時点の状態に戻されます。マージが完了すると、スナップショットは削除されます。

注記

元の LV とスナップショット LV 間のマージは、どちらかがアクティブな場合、延期されます。両方の LV が再アクティブ化され、使用されていない場合にのみ続行されます。

前提条件

  • 管理アクセスがある。

手順

  1. LV、そのボリュームグループ、およびそのパスをリスト表示します。

    # lvs -o lv_name,vg_name,lv_path
    
      LV                   VG              Path
      LogicalVolumeName    VolumeGroupName /dev/VolumeGroupName/LogicalVolumeName
      SnapshotName         VolumeGroupName /dev/VolumeGroupName/SnapshotName
  2. LV がマウントされている場所を確認します。

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/SnapshotName

    /dev/VolumeGroupName/LogicalVolumeName は、論理ボリュームへのパスに置き換えます。/dev/VolumeGroupName/SnapshotName は、スナップショットへのパスに置き換えます。

  3. LV をアンマウントします。

    # umount /LogicalVolume/MountPoint
    # umount /Snapshot/MountPoint

    /LogicalVolume/MountPoint は、論理ボリュームのマウントポイントに置き換えます。/Snapshot/MountPoint は、スナップショットのマウントポイントに置き換えます。

  4. LV を非アクティブ化します。

    # lvchange --activate n VolumeGroupName/LogicalVolumeName
    # lvchange --activate n VolumeGroupName/SnapshotName

    VolumeGroupName は、ボリュームグループの名前に置き換えます。LogicalVolumeName は、論理ボリュームの名前に置き換えます。SnapshotName は、スナップショットの名前に置き換えます。

  5. シック LV スナップショットを元の LV にマージします。

    # lvconvert --merge SnapshotName

    SnapshotName は、スナップショットの名前に置き換えます。

  6. LV をアクティブ化します。

    # lvchange --activate y VolumeGroupName/LogicalVolumeName

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

  7. LV をマウントします。

    # umount /LogicalVolume/MountPoint

    /LogicalVolume/MountPoint は、論理ボリュームのマウントポイントに置き換えます。

検証

  • スナップショットが削除されたことを確認します。

    # lvs -o lv_name

関連情報

  • lvconvert(8)lvs(8) man ページ

67.4.2.3. シン論理ボリュームスナップショットの管理

ストレージ効率を優先する場合は、シンプロビジョニングが適しています。ストレージ領域の動的割り当てにより、初期のストレージコストが削減され、利用可能なストレージリソースが最大限に使用されます。動的なワークロードがある環境や、時間の経過とともにストレージが増加する環境では、シンプロビジョニングによって柔軟性が向上します。これにより、ストレージ領域を事前に大量に割り当てることなく、ストレージシステムをニーズの変化に適応させることができます。動的な割り当てにより、オーバープロビジョニングが可能になります。つまり、すべての LV の合計サイズが、シンプールの物理サイズを超えることがあります。これは、すべての領域が同時に使用されるわけではないということを前提にしているためです。

67.4.2.3.1. シン論理ボリュームスナップショットの作成

lvcreate コマンドを使用して、シン LV スナップショットを作成できます。シン LV スナップショットを作成するときは、スナップショットサイズを指定しないでください。サイズのパラメーターを含めると、代わりにシックスナップショットが作成されます。

前提条件

手順

  1. スナップショットを作成する LV を特定します。

    # lvs -o lv_name,vg_name,pool_lv,lv_size
    
      LV                VG              Pool       LSize
      PoolName          VolumeGroupName            152.00m
      ThinVolumeName    VolumeGroupName PoolName   100.00m
  2. シン LV スナップショットを作成します。

    # lvcreate --snapshot --name SnapshotName VolumeGroupName/ThinVolumeName

    SnapshotName は、スナップショット論理ボリュームに付ける名前に置き換えます。VolumeGroupName は、元の論理ボリュームを含むボリュームグループの名前に置き換えます。ThinVolumeName は、スナップショットの作成元とするシン論理ボリュームの名前に置き換えます。

検証

  • スナップショットが作成されたことを確認します。

    # lvs -o lv_name,origin
    
      LV                Origin
      PoolName
      SnapshotName      ThinVolumeName
      ThinVolumeName

関連情報

  • lvcreate(8) および lvs(8) man ページ
67.4.2.3.2. シン論理ボリュームスナップショットのマージ

シン LV スナップショットを、スナップショットの作成元となった元の論理ボリュームにマージできます。マージプロセスでは、元の LV がスナップショット作成時点の状態に戻されます。マージが完了すると、スナップショットは削除されます。

前提条件

  • 管理アクセスがある。

手順

  1. LV、そのボリュームグループ、およびそのパスをリスト表示します。

    # lvs -o lv_name,vg_name,lv_path
    
      LV                VG              Path
      ThinPoolName      VolumeGroupName
      ThinSnapshotName  VolumeGroupName /dev/VolumeGroupName/ThinSnapshotName
      ThinVolumeName    VolumeGroupName /dev/VolumeGroupName/ThinVolumeName
  2. 元の LV がマウントされている場所を確認します。

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/ThinVolumeName

    VolumeGroupName/ThinVolumeName は、論理ボリュームへのパスに置き換えます。

  3. LV をアンマウントします。

    # umount /ThinLogicalVolume/MountPoint

    /ThinLogicalVolume/MountPoint は、論理ボリュームのマウントポイントに置き換えます。/ThinSnapshot/MountPoint は、スナップショットのマウントポイントに置き換えます。

  4. LV を非アクティブ化します。

    # lvchange --activate n VolumeGroupName/ThinLogicalVolumeName

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

  5. シン LV スナップショットを元の LV にマージします。

    # lvconvert --mergethin VolumeGroupName/ThinSnapshotName

    VolumeGroupName は、ボリュームグループの名前に置き換えます。ThinSnapshotName は、スナップショットの名前に置き換えます。

  6. LV をマウントします。

    # umount /ThinLogicalVolume/MountPoint

    /ThinLogicalVolume/MountPoint は、論理ボリュームのマウントポイントに置き換えます。

検証

  • 元の LV がマージされたことを確認します。

    # lvs -o lv_name

関連情報

  • lvremove(8)lvs(8) man ページ

67.4.3. RAID0 ストライプ化論理ボリュームの作成

RAID0 論理ボリュームは、論理ボリュームデータをストライプサイズ単位で複数のデータサブボリューム全体に分散します。以下の手順では、ディスク間でデータをストライピングする mylv という LVM RAID0 論理ボリュームを作成します。

前提条件

  1. 3 つ以上の物理ボリュームを作成している。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。
  2. ボリュームグループを作成している。詳細は、LVM ボリュームグループの作成 を参照してください。

手順

  1. 既存のボリュームグループから RAID0 論理ボリュームを作成します。次のコマンドは、ボリュームグループ myvg から RAID0 ボリューム mylv を作成します。このボリュームは、サイズが 2G で、ストライプが 3 つあります。ストライプのサイズは 4kB です。

    # lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg
      Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB(513 extents).
      Logical volume "mylv" created.
  2. RAID0 論理ボリュームにファイルシステムを作成します。以下のコマンドを使用すると、論理ボリュームに ext4 ファイルシステムが作成されます。

    # mkfs.ext4 /dev/my_vg/mylv
  3. 論理ボリュームをマウントして、ファイルシステムのディスクの領域使用率を報告します。

    # mount /dev/my_vg/mylv /mnt
    
    # df
    Filesystem             1K-blocks     Used  Available  Use% Mounted on
    /dev/mapper/my_vg-mylv   2002684     6168  1875072    1%   /mnt

検証

  • 作成された RAID0 ストライピング論理ボリュームを表示します。

    # lvs -a -o +devices,segtype my_vg
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type
      mylv my_vg rwi-a-r--- 2.00g mylv_rimage_0(0),mylv_rimage_1(0),mylv_rimage_2(0) raid0
      [mylv_rimage_0] my_vg iwi-aor--- 684.00m /dev/sdf1(0) linear
      [mylv_rimage_1] my_vg iwi-aor--- 684.00m /dev/sdg1(0) linear
      [mylv_rimage_2] my_vg iwi-aor--- 684.00m /dev/sdh1(0) linear

67.4.4. 論理ボリュームからのディスクの削除

この手順では、ディスクを交換するか、別のボリュームで使用するために、既存の論理ボリュームからディスクを削除する方法を説明します。

ディスクを削除する前に、LVM 物理ボリュームのエクステントを、別のディスクまたはディスクセットに移動する必要があります。

手順

  1. LV を使用する際に、物理ボリュームの使用済み容量と空き容量を表示します。

    # pvs -o+pv_used
      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 myvg  lvm2   a--    1020.00m   1008.00m   12.00m
  2. データを他の物理ボリュームに移動します。

    1. 既存のボリュームグループ内の他の物理ボリュームに空きエクステントが十分にある場合は、以下のコマンドを使用してデータを移動します。

      # pvmove /dev/vdb3
        /dev/vdb3: Moved: 2.0%
       ...
        /dev/vdb3: Moved: 79.2%
       ...
        /dev/vdb3: Moved: 100.0%
    2. 既存のボリュームグループ内の他の物理ボリュームに空きエクステントが十分にない場合は、以下のコマンドを使用して新しい物理ボリュームを追加し、新たに作成した物理ボリュームを使用してボリュームグループを拡張し、この物理ボリュームにデータを移動します。

      # pvcreate /dev/vdb4
        Physical volume "/dev/vdb4" successfully created
      
      # vgextend myvg /dev/vdb4
        Volume group "myvg" successfully extended
      
      # pvmove /dev/vdb3 /dev/vdb4
        /dev/vdb3: Moved: 33.33%
        /dev/vdb3: Moved: 100.00%
  3. 物理ボリュームを削除します。

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

    論理ボリュームに、障害のある物理ボリュームが含まれる場合は、その論理ボリュームを使用することはできません。見つからない物理ボリュームをボリュームグループから削除します。その物理ボリュームに論理ボリュームが割り当てられていない場合は、vgreduce コマンドの --removemissing パラメーターを使用できます。

    # vgreduce --removemissing myvg

関連情報

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

67.4.5. Web コンソールを使用してボリュームグループ内の物理ドライブを変更する

RHEL 8 Web コンソールを使用して、ボリュームグループ内のドライブを変更できます。

前提条件

  • 古いまたは不具合がある物理ドライブを交換するための新しい物理ドライブ。
  • この設定には、物理ドライブがボリュームグループに編成されていることが必要になります。

67.4.5.1. Web コンソールでボリュームグループに物理デバイスを追加

RHEL 8 Web コンソールを使用して、既存の論理ボリュームに新しい物理ドライブまたはその他のタイプのボリュームを追加できます。

前提条件

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

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

  • cockpit-storaged パッケージがシステムにインストールされている。
  • ボリュームグループが作成されている。
  • マシンに新しいドライブが接続されている。

手順

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

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

  2. Storage をクリックします。
  3. Storage テーブルで、物理ドライブを追加するボリュームグループをクリックします。
  4. LVM2 volume group ページで、Add physical volume をクリックします。
  5. Add Disks ダイアログボックスでドライブを選択し、Add をクリックします。

検証

  • LVM2 volume group ページで、Physical volumes セクションをチェックして、新しい物理ドライブがボリュームグループで使用可能かどうかを確認します。

67.4.5.2. Web コンソールでボリュームグループから物理ドライブを削除

論理ボリュームに複数の物理ドライブが含まれている場合は、オンラインの物理ドライブのいずれかを削除できます。

システムは、削除時に、削除するドライブから全てのデータを自動的に別のデバイスに移動します。これには少し時間がかかる場合があります。

Web コンソールは、物理ドライブを削除するための十分な容量があるかどうかを検証します。

前提条件

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

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

  • cockpit-storaged パッケージがシステムにインストールされている。
  • 複数の物理ドライブが接続するボリュームグループ

手順

  1. RHEL 8 Web コンソールにログインします。
  2. Storage をクリックします。
  3. Storage テーブルで、物理ドライブを追加するボリュームグループをクリックします。
  4. LVM2 volume group ページで、Physical volumes セクションまでスクロールします。
  5. 削除する物理ボリュームの横にあるメニューボタン をクリックします。
  6. ドロップダウンメニューから Remove を選択します。

    ディスクを削除するための十分な容量が論理ボリュームにあるかどうかを RHEL 8 Web コンソールが検証します。データを転送するための空き領域がない場合は、ディスクを削除することはできず、最初に別のディスクを追加してボリュームグループの容量を増やす必要があります。詳細については、Web コンソールで物理ドライブを論理ボリュームに追加する を参照してください。

67.4.6. 論理ボリュームの削除

lvremove コマンドを使用して、スナップショットを含む既存の論理ボリュームを削除できます。

前提条件

  • 管理アクセスがある。

手順

  1. 論理ボリュームとそのパスをリスト表示します。

    # lvs -o lv_name,lv_path
    
      LV                Path
      LogicalVolumeName /dev/VolumeGroupName/LogicalVolumeName
  2. 論理ボリュームがマウントされている場所を確認します。

    # findmnt -o SOURCE,TARGET /dev/VolumeGroupName/LogicalVolumeName
    
    SOURCE                                        TARGET
    /dev/mapper/VolumeGroupName-LogicalVolumeName /MountPoint

    /dev/VolumeGroupName/LogicalVolumeName は、論理ボリュームへのパスに置き換えます。

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

    # umount /MountPoint

    /MountPoint は、論理ボリュームのマウントポイントに置き換えます。

  4. 論理ボリュームを削除します。

    # lvremove VolumeGroupName/LogicalVolumeName

    VolumeGroupName/LogicalVolumeName は、論理ボリュームへのパスに置き換えます。

関連情報

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

67.4.7. RHEL システムロールを使用した LVM 論理ボリュームの管理

storage ロールを使用して、次のタスクを実行します。

  • 複数のディスクで設定されるボリュームグループに LVM 論理ボリュームを作成します。
  • 論理ボリューム上に特定のラベルを付けて ext4 ファイルシステムを作成します。
  • ext4 ファイルシステムを永続的にマウントします。

前提条件

  • storage ロールを含む Ansible Playbook がある。

67.4.7.1. storage RHEL システムロールを使用して論理ボリュームを作成またはサイズ変更する

storage ロールを使用して、次のタスクを実行します。

  • 多数のディスクで構成されるボリュームグループに LVM 論理ボリュームを作成する
  • LVM 上の既存のファイルシステムのサイズを変更する
  • LVM ボリュームのサイズをプールの合計サイズのパーセンテージで表す

ボリュームグループが存在しない場合、このロールによって作成されます。ボリュームグループ内に論理ボリュームが存在する場合に、そのサイズが Playbook で指定されたサイズと一致しないと、サイズが変更されます。

論理ボリュームを縮小する場合、データの損失を防ぐために、その論理ボリューム上のファイルシステムによって、縮小する論理ボリューム内の領域が使用されていないことを確認する必要があります。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Create logical volume
          ansible.builtin.include_role:
            name: rhel-system-roles.storage
          vars:
            storage_pools:
              - name: myvg
                disks:
                  - sda
                  - sdb
                  - sdc
                volumes:
                  - name: mylv
                    size: 2G
                    fs_type: ext4
                    mount_point: /mnt/data

    サンプル Playbook で指定されている設定は次のとおりです。

    size: <size>
    単位 (GiB など) またはパーセンテージ (60% など) を使用してサイズを指定する必要があります。

    Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイルを参照してください。

  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  • 指定したボリュームが作成されたこと、または要求したサイズに変更されたことを確認します。

    # ansible managed-node-01.example.com -m command -a 'lvs myvg'

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイル
  • /usr/share/doc/rhel-system-roles/storage/ ディレクトリー

67.4.7.2. 関連情報

67.4.8. storage RHEL システムロールを使用して LVM 上の既存のファイルシステムのサイズを変更する

ストレージ RHEL システムロールを使用して、ファイルシステムを持つ LVM 論理ボリュームのサイズを変更できます。

縮小する論理ボリュームにファイルシステムがある場合は、データの損失を防ぐために、縮小する論理ボリューム内の領域がファイルシステムによって使用されていないことを確認する必要があります。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Resize LVM logical volume with file system
          ansible.builtin.include_role:
            name: rhel-system-roles.storage
          vars:
            storage_pools:
              - name: myvg
                disks:
                  - /dev/sda
                  - /dev/sdb
                  - /dev/sdc
                volumes:
                  - name: mylv1
                    size: 10 GiB
                    fs_type: ext4
                    mount_point: /opt/mount1
                  - name: mylv2
                    size: 50 GiB
                    fs_type: ext4
                    mount_point: /opt/mount2

    この Playbook は、以下の既存のファイルシステムのサイズを変更します。

    • /opt/mount1 にマウントされる mylv1 ボリュームの Ext4 ファイルシステムは、そのサイズを 10 GiB に変更します。
    • /opt/mount2 にマウントされる mylv2 ボリュームの Ext4 ファイルシステムは、そのサイズを 50 GiB に変更します。

    Playbook で使用されるすべての変数の詳細は、コントロールノードの /usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイルを参照してください。

  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  1. 論理ボリュームが要求されたサイズに変更されたことを確認します。

    # ansible managed-node-01.example.com -m command -a 'lvs myvg'
  2. ファイルシステムツールを使用してファイルシステムのサイズを確認します。たとえば、ext4 の場合、dumpe2fs ツールによって報告されたブロック数とブロックサイズを掛け合わせてファイルシステムのサイズを計算します。

    # ansible managed-node-01.example.com -m command -a 'dumpe2fs -h /dev/myvg/mylv | grep -E "Block count|Block size"'

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイル
  • /usr/share/doc/rhel-system-roles/storage/ ディレクトリー
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.