EBS ボリュームで作成されたパーティションに LVM 論理ボリュームを作成する方法を教えてください。

最終更新日: 2022 年 3 月 15 日

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 ボリューム全体などのブロックデバイスです。

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

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

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

3.    gdisk コマンドを使用して、パーティションを作成します。変数 Hex code or GUID に、8e00 と入力します。次の例では、/dev/xvdh にパーティション /dev/xvdh1 を作成します。

$ sudo gdisk /dev/xvdh
Command (? for help): n
Partition number (1-1218, default 1): 1
First sector (34-20971486, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8e00        
Changed type of partition to 'Linux LVM'
...
OK; writing new GUID partition table (GPT) to /dev/xvdh.
The operation has completed successfully.

lsblk コマンドを使用して、パーティションの作成を確認します。

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdh    202:80   0  10G  0 disk
└─xvdh1 202:81   0  10G  0 part

4.    pvcreate コマンドを使用して、パーティションから物理ボリュームを作成します。次の例では、/dev/xvdh1 から物理ボリュームを作成します。

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

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

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

$ sudo vgcreate examplegroup1 /dev/xvdh1    
  Volume group "examplegroup1" successfully created

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

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

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

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

$ sudo lvcreate -n lvexample1 -L 9G examplegroup1
  Logical volume "lvexample1" created

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

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

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

$ sudo mkdir /mnt1

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

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

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

$ sudo mkfs -t xfs /dev/examplegroup1/lvexample1

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

$ lsblk -f
NAME                         FSTYPE      LABEL UUID                                   MOUNTPOINT
xvda                                                                            
├─xvda1                                                                         
└─xvda2                      xfs               66e5e079-770e-4359-a9da-5205c3d8d5af   /
xvdh                                                                            
└─xvdh1                      LVM2_member       0UnOic-e2ng-XxH5-z0UW-7aTh-RxQK-KMrDqo
  └─examplegroup1-lvexample1 xfs              5db36052-81d5-4762-8502-6986ff3964e7

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

$ sudo mount /dev/examplegroup1/lvexample1 /mnt1

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

/dev/examplegroup1/lvexample1 /mnt1   xfs     defaults,nofail   0   0

注意: ファイルシステムタイプが xfs でない場合は、xfs/etc/fstab ファイル内のタイプに置き換えます。

論理ボリュームを拡張する

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

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

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

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

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

2.    growpart ユーティリティをインストールします。

$ sudo yum install cloud-utils-growpart

注意: 次のコマンドを使用して、Debian または Ubuntu ベースのシステムに growpart ユーティリティをインストールします。

$ sudo apt install -y cloud-guest-utils

3.    growpart コマンドを実行してパーティションを拡張し、pvresize コマンドを実行して PV のサイズを変更します。次の例では、パーティション /dev/xvdh1 が拡張されています。

$ sudo growpart /dev/xvdh 1                      
CHANGED: disk=/dev/xvdh partition=1: start=2048 old: size=20971519,end=16777182 new: size=41940958,end=41943006

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

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

$ sudo pvs
  PV         VG            Fmt  Attr PSize   PFree
  /dev/xvdh1 examplegroup1 lvm2 a--  <20.00g <13.00g

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

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

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

$ sudo lvextend -L 19G /dev/examplegroup1/lvexample1

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

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

5.    ファイルシステムを拡張します。

注意: /etc/fstab エントリに正しいファイルシステムタイプを入力してください。

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

$ sudo resize2fs /dev/examplegroup1/lvexample1

XFS ファイルシステム:

$ sudo yum install x    rogs
$ sudo xfs_growfs /dev/examplegroup1/lvexample1

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

1.    10 GB の別の EBS ボリュームを作成し、そのボリュームをインスタンスに添付します。「EBS ボリュームのパーティションに物理ボリュームを作成する」のステップ 3 に従って、デバイス /dev/xvdi にパーティションを作成します次に、pvcreate コマンドを実行します。次の例では、ボリュームのブロックデバイス名は /dev/xvdi1 です。

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

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

$ sudo vgextend examplegroup1 /dev/xvdi1
  Volume group "examplegroup2" successfully extended

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

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

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

$ sudo lvextend -L 29G /dev/examplegroup1/lvexample1

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

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

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

$ sudo resize2fs /dev/examplegroup1/lvexample1

XFS ファイルシステム:

$ sudo xfs_growfs /dev/examplegroup1/lvexample1

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?