LVM パーティションで EBS ボリュームを拡張する方法を教えてください。
LVM パーティションを持つ Amazon Elastic Block Store (Amazon EBS) ボリュームを拡張したいと考えています。
簡単な説明
論理ボリュームを拡張する方法は 2 つあります。
- 既存の EBS ボリュームのサイズを増やします。
- ボリュームグループに EBS ボリュームを追加し、VG-LV を拡張します。
解決方法
オプション 1: 既存の EBS ボリュームのサイズを増やす
**注:**既存のボリュームへのサイズ変更は、通常、ボリュームが最適化状態になってから数秒以内に反映されます。最適化状態ではボリュームのパフォーマンスが影響を受けますが、ソース構成の仕様を下回ることはありません。ボリュームの種類によっては、変更に数分から数時間かかる場合があります。詳細については、「ボリューム変更の進行状況を監視する」を参照してください。
-
既存の EBS ボリュームのサイズを変更します。
-
次のコマンドを実行して、growpart ユーティリティをインストールします。
$ sudo yum install cloud-utils-growpart
**注:**Debian または Ubuntu ベースのシステムに growpart ユーティリティをインストールするには、次のコマンドを使用します。
$ sudo apt install -y cloud-guest-utils
- growpart コマンドを実行してパーティションを拡張します。
$ sudo growpart /dev/xvdh 1 CHANGED: disk=/dev/xvdh partition=1: start=2048 old: size=20971519,end=16777182 new: size=41940958,end=41943006
- pvresize コマンドを実行して、PV のサイズを変更します。次の例では、パーティション /dev/xvdh1 が拡張されています。
$ 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
- lvextend コマンドを実行して論理ボリュームを拡張します。
$ sudo lvextend -L 19G /dev/examplegroup1/lvexample1
**注:**前述の例では、19G が LV の新しい拡大したサイズです。19G は LV を上げる必要があるサイズではありません。
lvs コマンドまたは lvdisplay コマンドを使用して、論理ボリュームの詳細を表示します。
$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvexample1 examplegroup1 -wi-a----- 19.00g
- 以下のコマンドを実行してファイルシステムを拡張します。
Ext2、Ext3、Ext4 のファイルシステム:
$ sudo resize2fs /dev/examplegroup1/lvexample1
XFS ファイルシステム:
$ sudo xfs_growfs /dev/examplegroup1/lvexample1
オプション 2: ボリュームグループに EBS ボリュームを追加し、VG-LV を拡張する
- 10 GB の EBS ボリュームをもう 1 つ作成し、インスタンスにボリュームをアタッチします。[EBS ボリュームのパーティションに物理ボリュームを作成する] のステップ 3 に従って、デバイス /dev/xvdi にパーティションを作成します。次に、pvcreate コマンドを実行します。次の例では、ボリュームのブロックデバイス名は [/dev/xvdi1] です。
$ sudo pvcreate /dev/xvdi1 Physical volume "/dev/xvdi1" successfully created
- 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
- lvextend コマンドを実行して論理ボリュームを拡張します。
$ sudo lvextend -L 29G /dev/examplegroup1/lvexample1
**注:**前述の例では、29G が LV の新しい拡大したサイズです。29G は LV を上げる必要があるサイズではありません。
- ファイルシステムのサイズ変更:
Ext2、Ext3、Ext4 のファイルシステム:
$ sudo resize2fs /dev/examplegroup1/lvexample1
XFS ファイルシステム:
$ sudo xfs_growfs /dev/examplegroup1/lvexample1
ストライプされたボリュームを拡張
ストライピングは、データを複数のディスクに分散させる手法です。論理ボリュームを拡張するときに、次のようなメッセージが表示される場合があります。
$ pvcreate /dev/xvdd Physical volume "/dev/xvdd" successfully created. $ vgextend vg01 /dev/xvdd Volume group "vg01" successfully extended $ vgs VG #PV #LV #SN Attr VSize VFree vg01 3 1 0 wz--n- <23.99g <13.99g $ lvextend /dev/vg01/lv01 -L +10G Using stripesize of last segment 128.00 KiB Insufficient suitable allocatable extents for logical volume lv01: 1026 more required
上記のエラーまたは同様のエラーは、データをストライピングするのに十分な数のデバイスを追加せずに「ストライプされた」論理ボリュームを拡張した場合に発生します。
ストライプされたボリュームを拡張するときにこれらのエラーを回避するには、次の手順を実行してください。
- 次のコマンドを実行して、LV がデータをストライピングするデバイスの数を特定します。
$ lvs -o+lv_layout,stripes LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Layout #Str lv01 vg01 -wi-a----- 10.00g striped 2
- #Str 列、またはストライプ列は、データがストライピングされているデバイスの数を表します。前の例では、データは 2 つのデバイスにまたがってストライピングされています。そのため、LV を拡張するには、少なくとも 2 つのデバイス (または 2 の倍数のデバイス) を vg に追加する必要があります。前の手順で 1 つのデバイスを追加したので、2 つ目のデバイスを追加して、もう一度拡張を試みます。
$ pvcreate /dev/xvde Physical volume "/dev/xvde" successfully created. $ vgextend vg01 /dev/xvde Volume group "vg01" successfully extended $ vgs VG #PV #LV #SN Attr VSize VFree vg01 4 1 0 wz--n- 31.98g 21.98g $ lvextend /dev/vg01/lv01 -L +10G Using stripesize of last segment 128.00 KiB Size of logical volume vg01/lv01 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents). Logical volume vg01/lv01 successfully resized. $ lvs -o+lv_layout,stripes LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Layout #Str lv01 vg01 -wi-a----- 20.00g striped 2 lv01 vg01 -wi-a----- 20.00g striped 2
前述の出力例は、2 つ目のデバイスが追加されたときに lvextend コマンドが正常に完了したことを示します。
- 以下のコマンドを実行してファイルシステムのサイズを変更します。
Ext2、Ext3、Ext4 のファイルシステム:
$ sudo resize2fs /dev/vg01/lv01
XFS ファイルシステム:
$ sudo xfs_growfs /dev/vg01/lv01
関連するコンテンツ
- 質問済み 6年前lg...
- 質問済み 4年前lg...
- 質問済み 5年前lg...
- 質問済み 6年前lg...
- 質問済み 8ヶ月前lg...
- AWS公式更新しました 9ヶ月前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
- AWS公式更新しました 1年前