論理ボリューム (LV) を拡張するには、そのボリュームグループ (VG) に空き領域が必要です。必要に応じて、まず新しいディスクを追加するか、既存のディスクのサイズを変更して VG を拡張します。次に、LV とそのファイルシステムを拡張して、プロセスを完了します。
仕組み
LV を拡張するには:
-
VG の拡張: LV は VG から割り当てられます。まず、物理ボリューム (PV) を拡張または追加して、VG の容量を増やします。
-
LV の拡張: VG の空き領域をターゲットの LV に割り当て、そのファイルシステムを拡張します。
手順
論理ボリュームマネージャー (LVM) は、データの冗長性を提供しません。本番データの場合は、アプリケーション層で冗長性を実装するか、スナップショット整合性グループを使用してデータを保護してください。
手順 1: VG の拡張
-
Elastic Compute Service (ECS) インスタンスに接続します。
-
ECS コンソール - インスタンスに移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
-
インスタンス詳細ページで、接続 > ワークベンチ をクリックします。ログインしてターミナルを開きます。
-
-
VG の空き領域を確認します。
sudo vgsを実行します。VG列の VG 名とVFree列の空き領域を確認します。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 79.99g 0この例では、VG
vg_01の総容量は 79.99 GiB で、空き容量は 0 GiB です。まず VG を拡張する必要があります。VG に空き容量がある場合は、直接 LV を拡張します。 -
VG を拡張します。
VG 内の PV の拡張
-
PV とディスク間のマッピングを確認します。
sudo pvs -a -o +devicesを実行します。Devices列のディスクをPV列の PV に対応付けます。PV 名とディスク名を記録します。sudo pvs -a -o +devicesPV VG Fmt Attr PSize PFree Devices /dev/vda1 --- 0 0 /dev/vda2 --- 0 0 /dev/vda3 --- 0 0 /dev/vdb vg_01 lvm2 a-- <40.00g 0 /dev/vdb(0) /dev/vdc1 vg_01 lvm2 a-- <40.00g 0 /dev/vdc1(0)-
PV がディスク全体 (パーティションなし) を使用している場合は、ディスクのリサイズのみを行います。 この例では、PV
/dev/vdbは、パーティションのないディスク/dev/vdbにマッピングされます。 -
PV がディスクパーティションを使用している場合は、ディスクをリサイズしてから、パーティションを拡張します。 この例では、PV
/dev/vdc1は、ディスク/dev/vdcのパーティション 1 (/dev/vdc1) に対応します。
-
-
ディスクのサイズを変更します。
-
ECS コンソール - ブロックストレージに移動します。上部メニューで、対象のリージョンとリソースグループを選択します。
-
操作 列で、ディスクの拡張 をクリックします。
-
[ディスクの決定と注意事項の確認] ページで、注意事項を確認し、[リスクを理解し、データをバックアップしました。続行します。] をクリックします。
-
[サイズ変更方法と新しいサイズの設定] ページで、パラメーターを設定し、料金を確認して、ディスクの拡張 をクリックします。
例:ディスクを 40 GiB から 50 GiB にサイズ変更するには、[新しいディスクサイズ] を 50 GiB に設定します。
重要ディスクのサイズを変更すると、追加の容量に対して課金されます。
-
(条件付き) サブスクリプションディスクの場合、支払いダイアログボックスで 5 秒間のカウントダウンを待ち、[支払いを完了] をクリックして支払いを完了し、サイズ変更ページに戻って [支払い済み] をクリックします。ダイアログボックスを閉じます。
支払いを完了せずに [支払い済み。ダイアログボックスを閉じる。] をクリックした場合は、[注文センターに移動] をクリックして支払いを完了します。
-
-
(条件付き) PV がディスクパーティション上にある場合は、パーティションを拡張します。
<disk_name>と<partition_number>を、ステップ a の値で置き換えます。重要ディスク名とパーティション番号の間にスペースを必ず入れてください。
sudo LC_ALL=en_US.UTF-8 growpart <disk_name> <partition_number>例:
/dev/vdc1を拡張するには、sudo LC_ALL=en_US.UTF-8 growpart /dev/vdc 1を実行します。出力内の
CHANGEDキーワードは成功を示します。 -
PV を拡張します。
<physical_volume_name>を 手順 a の値で置き換えます。sudo pvresize <physical_volume_name>例:PV
/dev/vdbを拡張するには、sudo pvresize /dev/vdbを実行します。1 physical volume(s) resized or updatedというメッセージは、成功したことを示します。 -
VG が拡張されたことを確認します。
sudo vgsを実行し、VFreeが期待どおりに増加したことを確認します。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 89.99g 10.00gこの例では、VG
vg_01は 79.99 GiB から 89.99 GiB に増加し、VFreeは 10 GiB となり、VG が拡張されたことが確認できます。
VG への新しい PV の追加
続行する前に、新しいディスクを作成し、ターゲットインスタンスにアタッチします。ディスクは初期化しないでください。
-
新しいデータディスクのデバイス名を見つけます。
sudo lsblk -fを実行します。NAMEと空のFSTYPEで新しいディスクを特定します。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb LVM2_member okx24E-qSjZ-zv9l-lOkm-Pcxu-q6KX-qzRcCu └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdc LVM2_member ISeUSM-AhRp-KdNN-7pWJ-HxGW-2AEq-85m9dE └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vddこの例では、
vddにはパーティションがなく、FSTYPEが空であるため、これが新しいデータディスクであることを示しています。 -
PV を作成し、VG に追加します。
重要vgextend コマンドは、ディスクを PV として初期化し、ディスク上のすべてのデータを削除します。ディスクが空であることを確認してください。
<new_disk_device_name>を前の手順の値で置き換えます。sudo vgextend <volume_group_name> /dev/<new_disk_device_name>例:ディスク
vddを VGvg_01に追加するには、sudo vgextend vg_01 /dev/vddを実行します。successfully extendedというメッセージは、成功を示します。 -
VG が拡張されたことを確認します。
sudo vgsを実行し、VSizeが期待どおりに増加したことを確認します。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 3 1 0 wz--n- <89.99g <10.00gこの例では、VG
vg_01は 79.99 GiB から 89.99 GiB に増加し、VFreeは約 10 GiB となり、VG が拡張されたことを確認できます。
-
手順 2: LV の拡張
-
LV のパスを取得します。
sudo lvdisplayを実行し、後の手順で使用するLV Pathの値をメモしておきます。sudo lvdisplay--- Logical volume --- LV Path /dev/vg_01/lv01 LV Name lv01 VG Name vg_01 LV UUID DAD6Fy-4lbd-9EW9-UTvx-rGti-hYss-txxxxx LV Write Access read/write LV Creation host, time iZbp1hww2c2kyj54i1xxxxx, 2025-09-22 10:37:58 +0800 LV Status available # open 1 LV Size 79.99 GiB Current LE 20478 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256この例では、LV
lv01のパスは/dev/vg_01/lv01です。 -
LV を拡張します。
sudo lvextend -L +<logical_volume_size> <logical_volume_path>パラメーター
説明
<logical_volume_size>
追加する領域。 VG の空き領域を超えることはできません。
<logical_volume_path>
サイズ変更する LV のパス。 前の手順で取得しました。
たとえば、
/dev/vg_01/lv01にある LV に 10 GiB を追加するには、sudo lvextend -L +10G /dev/vg_01/lv01を実行します。successfully resizedメッセージは成功を示します。 -
ファイルシステムを拡張します。
-
sudo lsblk -fを実行し、LV のFSTYPEとMOUNTPOINTを記録します。sudo lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda ├─vda1 ├─vda2 vfat 7938-FA03 /boot/efi └─vda3 ext4 root 33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 / vdb LVM2_member okx24E-qSjZ-zv9l-lOkm-Pcxu-q6KX-qzRcCu └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01 vdc LVM2_member ISeUSM-AhRp-KdNN-7pWJ-HxGW-2AEq-85m9dE └─vg_01-lv01 xfs 9e2bfe15-074e-4bf5-aac5-62c58299364f /mnt/lv01この例では、LV
/dev/vg_01/lv01のファイルシステムタイプはxfsで、マウントポイントは/mnt/lv01です。 -
ファイルシステムを拡張します。
-
ext2、ext3、または ext4 ファイルシステムの場合:
<logical_volume_path>をLV 用に取得したパスに置き換えます。sudo resize2fs <logical_volume_path>例: LV
lv01(パス/dev/vg_01/lv01) を拡張するには、sudo resize2fs /dev/vg_01/lv01を実行します。 -
xfs ファイルシステムの場合:
<mount_point>を LV 用に取得したマウントポイントに置き換えます。sudo xfs_growfs <mount_point>例:
/mnt/lv01にマウントされている LV を拡張するには、sudo xfs_growfs /mnt/lv01を実行します。
-
-
ファイルシステムが拡張されたことを確認します。
sudo df -Thを実行し、Size列に新しい LV 容量が反映されていることを確認してください。ファイルシステムはメタデータ用に一部の容量を予約するため、表示されるサイズは LV の容量よりわずかに小さくなる場合があります。 「df コマンドで表示されるディスク容量が購入した容量と異なるのはなぜですか?」をご参照ください。
-
課金
LV を拡張すると、以下の料金が発生する場合があります。
-
既存の PV の容量を増やす場合:
追加されたディスク容量に対して課金されます。追加容量の課金方法は、元のディスクの課金方法と一致します。
-
サブスクリプションディスクの場合: 追加容量に対して、サブスクリプション期間の残りの期間分の料金が一度だけ課金されます。
価格差 = (月額料金 / 30 日) × 残り期間 × 追加容量。
残り期間は日数単位で、秒単位まで正確に測定されます。
-
従量課金ディスクの場合: 次の課金時間から、新しい、より高いレートが適用されます。
-
-
新しい PV を追加する場合:
新しいディスクは、インスタンスにアタッチされているかどうかに関わらず、作成されるとすぐに課金されます。料金はディスクの種類とリージョンによって異なり、容量、プロビジョニングされたパフォーマンス、バーストパフォーマンスの料金が含まれる場合があります。
「Elastic Block Storage の課金」をご参照ください。
よくある質問
-
ツールのインストール時に「404 Not Found」エラーが発生するのはなぜですか?
CentOS 6 および Debian 9/10/11 は保守終了 (EOL) となっています。ツールをインストールする前に、CentOS のリポジトリ URL または Debian 9/10/11 のリポジトリ URL を切り替えてください。
-
LV を拡張する際に
Insufficient free spaceというエラーが表示された場合はどうすればよいですか?LV に追加する容量は、VG で利用可能な領域を超えることはできません。
-
VG の空き領域を確認します。
sudo vgsを実行し、VFree列を確認します。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 2 1 0 wz--n- 89.99g 10.00gこの例では、追加できる容量は 10 GiB を超えることはできません。
-
残りのすべての空き領域を LV に割り当てます:
<logical_volume_path>を、LV 用に取得したパスに置き換えます。sudo lvextend -l +100%FREE <logical_volume_path>
-