論理ボリューム (LV) を拡張するには、そのボリュームグループ (VG) に空き領域が必要です。必要に応じて、まず新しいディスクを追加するか、既存のディスクをサイズ変更して VG を拡張します。次に、LV とそのファイルシステムを拡張して、プロセスを完了します。
仕組み
LV の拡張は、主に 2 つのステップで構成されます。
VG の拡張: LV は VG から割り当てられます。したがって、まず物理ボリューム (PV) を拡張または追加して、VG の容量を増やす必要があります。
LV の拡張: VG から新しい領域をターゲット LV に割り当て、そのファイルシステムを拡張して、新しい領域をオペレーティングシステムで利用できるようにします。
手順
Logical Volume Manager (LVM) はデータ冗長性を提供しません。本番データについては、アプリケーション層で冗長性ソリューションを実装するか、Alibaba Cloud の スナップショット整合性グループ を使用してデータを保護してください。
ステップ 1: VG の拡張
ECS インスタンスに接続します。
ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。
ターゲットインスタンスの詳細ページに移動し、[接続] をクリックして [Workbench] を選択します。画面の指示に従ってログインし、ターミナルを開きます。
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コマンドを実行して、PV (PV列) に対応するディスク (Devices列) を特定します。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/vdc1に対応します。ディスク名は/dev/vdcで、パーティション番号は 1 です。パーティションを拡張する必要があります。
ディスクのサイズを変更します。
ECS コンソール - ブロックストレージ に移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。
ターゲットディスクの [アクション] 列で、[サイズ変更] をクリックします。
[ディスクの決定と注意事項の確認] ページで、情報を確認し、[リスクを理解し、データをバックアップしました。続行します。] をクリックします。
[サイズ変更方法と新しいサイズの設定] ページで、サイズ変更パラメーターを設定し、料金を確認してから、[OK] をクリックします。
たとえば、ディスクを 40 GiB から 50 GiB にサイズ変更するには、[新しいディスクサイズ] を 50 GiB に設定します。
重要ディスクをサイズ変更すると、追加容量に対して課金されます。
(条件付き) ディスクがサブスクリプションディスクの場合、支払いダイアログボックスで 5 秒間のカウントダウンが終了するのを待ってから、[支払いを完了] をクリックし、支払いを完了してサイズ変更ページに戻り、[支払い済み] をクリックします。ダイアログボックスを閉じます。
支払いを完了せずに [支払い済み。ダイアログボックスを閉じる。] をクリックした場合は、[アクション] 列の [注文センターへ] をクリックして支払いを完了します。
(条件付き) 拡張する PV がディスクパーティション上にある場合は、ECS インスタンス内でパーティションを拡張する必要があります。
次のコマンドを実行します。
<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_01VG の容量が 79.99 GiB から 89.99 GiB に増加し、空き領域VFreeは 10 GiB になりました。これは期待どおりであり、VG は正常に拡張されました。
新しい PV を VG に追加する
続行する前に、新しいディスクを作成し、ターゲットインスタンスにアタッチしていることを確認してください。ディスクを初期化しないでください。
新しいデータディスクのデバイス名を見つけます。
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を PV として初期化し、VGvg_01に追加するには、sudo vgextend vg_01 /dev/vddを実行します。出力に
successfully extendedというフレーズが含まれている場合、コマンドは成功です。VG が拡張されたことを確認します。
sudo vgsを実行し、VG の合計容量 (VSize列の値) が期待どおりに増加したかどうかを確認します。sudo vgsVG #PV #LV #SN Attr VSize VFree vg_01 3 1 0 wz--n- <89.99g <10.00gこの例では、
vg_01VG の容量が 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 の容量を増やす場合:
追加のディスク容量に対して課金されます。追加容量の課金方法は、元のディスクの課金方法と一致します。
サブスクリプションディスクの場合: 追加容量に対して 1 回限りの料金が請求され、サブスクリプション期間の残りの期間がカバーされます。
価格差 = (月額料金 / 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>