EBS ボリュームで作成されたパーティションに LVM 論理ボリュームを作成する方法を教えてください。
最終更新日: 2022 年 9 月 27 日
Logical Volume Manager (LVM) を使用して、Amazon Elastic Block Store (Amazon EBS) ボリュームで作成されたパーティションに論理ボリューム (LV) を作成する方法を教えてください。
簡単な説明
LVM では、ディスク容量の割り当て、論理ボリュームのストリップ、再ミラーリング、およびサイズ変更を行うことができます。LVM を使用して、1 つの EBS ボリュームまたは EBS ボリュームのセットを 1 つ以上の物理ボリュームに割り当てることができます。
EBS ボリュームで LVM を使用してパーティションを拡張するには、次のステップに従ってください。
- EBS ボリュームから物理ボリューム (PV) を作成します。
- ボリュームグループ (VG) を作成し、物理ボリュームをボリュームグループに追加します。
- 論理ボリューム (LV) を作成し、LVM にディレクトリをマウントします。
- ファイルシステムを作成してマウントします。
- 論理ボリュームのサイズを変更します。
解決方法
注意: 既にボリュームに 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