EBS ボリューム全体で LVM 論理ボリュームを作成する方法を教えてください。

最終更新日: 2022 年 4 月 27 日

Logical Volume Manager (LVM) を使用して、Amazon Elastic Block Store (Amazon EBS) ボリューム全体に論理ボリューム (LV) を作成する方法を教えてください。

簡単な説明

LVM では、ディスク容量の割り当て、論理ボリュームのストリップ、再ミラーリング、およびサイズ変更を行うことができます。LVM を使用して、1 つの EBS ボリュームまたは EBS ボリュームのセットを 1 つ以上の物理ボリュームに割り当てることができます。

EBS ボリュームで LVM を使用し、パーティションを拡張する方法:

  1. EBS ボリュームから物理ボリューム (PV) を作成します。
  2. ボリュームグループ (VG) を作成し、物理ボリュームをボリュームグループに追加します。
  3. 論理ボリューム (LV) を作成し、LVM にディレクトリをマウントします。
  4. ファイルシステムを作成してマウントします。
  5. 論理ボリュームのサイズを変更します。

注意: Nitro ベースのインスタンスでの LVM 使用の詳細については、第 11 章をご参照ください。Red Hat カスタマーポータルウェブサイトの LVM (Logical Volume Manager)

解決方法

注意: 既にボリュームに LVM を作成し、使用目的でマウントしている場合は、「論理ボリュームを拡張する」で始まる手順に従います。

EBS ボリュームから物理ボリュームを作成する

LVM 論理ボリュームの基盤となる物理ストレージユニットは、EBS ボリュームのパーティションや EBS ボリューム全体などのブロックデバイスです。PV は、1 つの EBS ボリュームまたは複数の EBS ボリュームに作成できます。

注意: Nitro ベースのインスタンスは、ボリュームを NVMe デバイスとして公開します。ブロックデバイス名は、/dev/nvme1n1/dev/nvme2n1/dev/nvme3n1 などのパターンに従います。Nitro ベースのインスタンスを使用している場合は、次のステップのデバイス名を適切なデバイス名に置き換えます。デバイス命名の詳細については、「Linux インスタンスでのデバイス名」を参照してください。

1.    Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。

2.    EBS ボリュームを作成しそのボリュームをインスタンスにアタッチします

3.    pvcreate コマンドを使用して、物理ボリュームを作成します。次の例では、1 つのボリューム /dev/xvdf を使用して物理ボリュームを作成します。

$ sudo pvcreate /dev/xvdf
  Physical volume "/dev/xvdf" successfully created.

pvs または pvdisplay コマンドを使用して、物理ボリュームの詳細を表示します。

$ sudo pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/xvdf      lvm2 ---  10.00g 10.00g

ボリュームグループを作成し、物理ボリュームをボリュームグループに追加する

vgcreate コマンドを使用して、新しい物理ボリュームを結合するボリュームグループを作成します。次の例では、1 つの物理ボリュームを使用して、ボリュームグループ Dock を作成します。

$ sudo vgcreate Dock /dev/xvdf                     
  Volume group "Dock" successfully created

vgs または vgdisplay を使用して、新しいボリュームグループの詳細を表示します。

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize  VFree 
  Dock           1   0   0 wz--n- <10.00g <10.00g

論理ボリューム (LV) とマウントディレクトリを作成する

1.    lvcreate コマンドを使用して、ボリュームグループから論理ボリューム (パーティション) を作成します。次の例では、Dock ボリュームグループから 9 GB の論理ボリューム station1 を 1 つ作成します。

$ sudo lvcreate -n station1 -L 9G Dock
  Logical volume "station1" created.

lvs または lvdisplay コマンドを使用して、論理ボリュームの詳細を表示します。

$ sudo lvs
  LV          VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  station1   Dock -wi-a----- 9.00g

2.    mkdir コマンドを使用して、マウントディレクトリを作成します。次の例では、ディレクトリ /mnt1 を作成します。

$ sudo mkdir /mnt1

ファイルシステムを作成してマウントする

1.    ファイルシステムを作成し、使用するパーティションをマウントするには、次のコマンドを使用します。

mkfs -t コマンドを実行して、ファイルシステムを作成します。注意: 異なる場合は、xfs をファイルシステムタイプに置き換えます。例えば、ext2、ext3、または ext4 などです。

$ sudo mkfs -t xfs /dev/Dock/station1

lsblk -f コマンドを実行して、新しいファイルシステムの作成を確認します。注意: 前のステップで作成したファイルシステムのタイプは、FSTYPE の下に表示されます。

$ lsblk -f
NAME                         FSTYPE      LABEL UUID                                   MOUNTPOINT
xvda                                                                                  
├─xvda1                                                                               
└─xvda2                      xfs               66e5e079-770e-4359-a9da-5205c3d8d5af   /
xvdf                         LVM2_member       YeDuj5-YHmY-U0Hx-xJyt-R1BP-SPIj-3uCcGF 
└─Dock-station1              xfs              Feiuj5-kH9Y-UxHx-zJ9t-R7cP-5PIY-7ugcuM

mount コマンドを実行して、前のステップで作成したマウントディレクトリにファイルシステムをマウントします。

$ sudo mount /dev/Dock/station1 /mnt1

2.    再起動後に新しいマウントが保持されるように、/etc/fstab ファイルのマウントオプションを編集します。

注意: 異なる場合は、xfs/etc/fstab エントリのファイルシステムタイプに置き換えます。

/dev/Dock/station1 /mnt1  xfs     defaults,nofail   0   0

論理ボリュームの拡張

論理ボリュームの拡張には 2 つのオプションがあります。

  • オプション 1: 既存の EBS ボリュームのサイズを増やします。
  • オプション 2: ボリュームグループに EBS ボリュームを追加します。

注意: 既存のボリュームサイズを増やす場合、サイズの変更は通常、ボリュームが最適化状態になってから、数秒以内に有効になります。ボリュームのパフォーマンスは、最適化状態の間は影響を受けますが、ソース設定の仕様を下回ることはありません。ボリュームタイプによっては、パフォーマンスの変更に数分から数時間かかることがあります。詳細については、「ボリューム変更の進行状況のモニタリング」を参照してください。

オプション 1: 既存の EBS ボリュームのサイズを増やす

1.    既存の EBS ボリュームのサイズを変更します。

2.    pvresize コマンドを実行して物理ボリュームのサイズを変更します。

$ sudo pvresize /dev/xvdf
  Physical volume "/dev/xvdf" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

pvs または pvdisplay を使用して、物理ボリュームの詳細を表示します。

$ sudo pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/xvdf  Dock          lvm2 a--  <20.00g <11.00g

vgs または vgdisplay を使用して、ボリュームグループの詳細を表示します。

$ sudo vgs
  VG            #PV #LV #SN Attr   VSize   VFree  
  Dock            1   1   0 wz--n- <20.00g <11.00g

3.    lvextend コマンドを実行して、論理ボリュームを拡張します。

$ sudo lvextend -L +19G /dev/Dock/station1

lvs または lvdisplay コマンドを使用して、論理ボリュームの詳細を表示します。

$ sudo lvs
  LV        VG            Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  station1  Dock          -wi-a----- 19.00g

4.    ファイルシステムを展開します。

注意: ユースケースに応じて、XFS または Ext2、Ext3、および Ext4 ファイルシステムの手順通りに進めます。

Ext2、Ext3、および Ext4 ファイルシステム:

$ sudo resize2fs /dev/Dock/station1

XFS ファイルシステム:

$ sudo yum install xfsprogs
$ sudo xfs_growfs /dev/Dock/station1

オプション 2: ボリュームグループに EBS ボリュームを追加する

1.    10 GB の別の EBS ボリュームを作成し、ボリュームをインスタンスにアタッチします。次の例では、ボリュームのブロックデバイス名は /dev/xvdi です。

$ sudo pvcreate /dev/xvdi

2.    vgextend コマンドを使用して、ボリュームグループを拡張し、新しいボリュームを追加します。次の例では、ボリュームグループ Dock を拡張してボリューム /dev/xvdi を含めます。

$ sudo vgextend Dock /dev/xvdi
  Physical volume "/dev/xvdi" successfully created.
  Volume group "Dock" successfully extended

拡張機能を確認するには、vgs または vgdisplay コマンドを使用します。次の例は、Dock ボリュームグループに 2 つの PV があることを示します。

$ sudo vgs
  VG            #PV #LV #SN Attr   VSize   VFree   
  Dock            2   1   0 wz--n-  29.99g   20.99g

3.    lvextend コマンドを使用して、論理ボリュームを拡張します。

$ sudo lvextend -L +29G /dev/Dock/station1

4.    ファイルシステムのサイズを変更します。

注意: ユースケースに応じて、XFS または Ext2、Ext3、および Ext4 ファイルシステムの手順通りに進めます。

Ext2、Ext3、および Ext4 ファイルシステム:

$ sudo resize2fs /dev/Dock/station1

XFS ファイルシステム:

$ sudo xfs_growfs /dev/Dock/station1