すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:LV の拡張

最終更新日:Nov 05, 2025

論理ボリューム (LV) を拡張するには、そのボリュームグループ (VG) に空き領域が必要です。必要に応じて、まず新しいディスクを追加するか、既存のディスクをサイズ変更して VG を拡張します。次に、LV とそのファイルシステムを拡張して、プロセスを完了します。

仕組み

LV の拡張は、主に 2 つのステップで構成されます。

  1. VG の拡張: LV は VG から割り当てられます。したがって、まず物理ボリューム (PV) を拡張または追加して、VG の容量を増やす必要があります。

  2. LV の拡張: VG から新しい領域をターゲット LV に割り当て、そのファイルシステムを拡張して、新しい領域をオペレーティングシステムで利用できるようにします。

手順

重要

Logical Volume Manager (LVM) はデータ冗長性を提供しません。本番データについては、アプリケーション層で冗長性ソリューションを実装するか、Alibaba Cloud の スナップショット整合性グループ を使用してデータを保護してください。

ステップ 1: VG の拡張

  1. ECS インスタンスに接続します。

    1. ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。

    2. ターゲットインスタンスの詳細ページに移動し、[接続] をクリックして [Workbench] を選択します。画面の指示に従ってログインし、ターミナルを開きます。

  2. VG の空き領域を確認します。

    sudo vgs コマンドを実行します。出力で、VG 列の VG 名と VFree 列の空き領域を確認します。

    sudo vgs
      VG    #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 を拡張できます。

  3. VG を拡張します。

    VG 内の PV の拡張

    1. PV とディスク間のマッピングを確認します。

      sudo pvs -a -o +devices コマンドを実行して、PV (PV 列) に対応するディスク (Devices 列) を特定します。PV とディスクの名前を記録します。

      sudo pvs -a -o +devices
        PV         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 です。パーティションを拡張する必要があります。

    2. ディスクのサイズを変更します。

      1. ECS コンソール - ブロックストレージ に移動します。上部のナビゲーションバーで、ターゲットリージョンとリソースグループを選択します。

      2. ターゲットディスクの [アクション] 列で、[サイズ変更] をクリックします。

      3. [ディスクの決定と注意事項の確認] ページで、情報を確認し、[リスクを理解し、データをバックアップしました。続行します。] をクリックします。

      4. [サイズ変更方法と新しいサイズの設定] ページで、サイズ変更パラメーターを設定し、料金を確認してから、[OK] をクリックします。

        たとえば、ディスクを 40 GiB から 50 GiB にサイズ変更するには、[新しいディスクサイズ] を 50 GiB に設定します。
        重要

        ディスクをサイズ変更すると、追加容量に対して課金されます。

      5. (条件付き) ディスクがサブスクリプションディスクの場合、支払いダイアログボックスで 5 秒間のカウントダウンが終了するのを待ってから、[支払いを完了] をクリックし、支払いを完了してサイズ変更ページに戻り、[支払い済み] をクリックします。ダイアログボックスを閉じます。

        支払いを完了せずに [支払い済み。ダイアログボックスを閉じる。] をクリックした場合は、[アクション] 列の [注文センターへ] をクリックして支払いを完了します。
    3. (条件付き) 拡張する 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 が含まれている場合、コマンドは成功です。

    4. PV を拡張します。

      <physical_volume_name>ステップ a で記録した名前に置き換えます。

      sudo pvresize <physical_volume_name>
      たとえば、PV /dev/vdb を拡張するには、sudo pvresize /dev/vdb を実行します。

      出力に 1 physical volume(s) resized or updated というフレーズが含まれている場合、コマンドは成功です。

    5. VG が拡張されたことを確認します。

      sudo vgs を実行し、VFree の値が期待どおりに増加したことを確認します。

      sudo vgs
      VG    #PV #LV #SN Attr   VSize  VFree 
      vg_01   2   1   0 wz--n- 89.99g 10.00g

      この例では、vg_01 VG の容量が 79.99 GiB から 89.99 GiB に増加し、空き領域 VFree は 10 GiB になりました。これは期待どおりであり、VG は正常に拡張されました。

    新しい PV を VG に追加する

    続行する前に、新しいディスクを作成し、ターゲットインスタンスにアタッチしていることを確認してください。ディスクを初期化しないでください。

    1. 新しいデータディスクのデバイス名を見つけます。

      sudo lsblk -f を実行します。NAME 列と FSTYPE 列に基づいて、新しいデータディスクのデバイス名を特定します。

      sudo lsblk -f
      NAME         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 は空です。これは、新しいデータディスクであることを示します。

    2. PV を作成し、VG に追加します。

      重要

      vgextend コマンドはディスクを PV として初期化し、ディスク上のすべてのデータを削除します。ディスクが空であることを確認してください。

      <new_disk_device_name>前のステップで見つけた名前に置き換えます。

      sudo vgextend <volume_group_name> /dev/<new_disk_device_name>
      たとえば、ディスク vdd を PV として初期化し、VG vg_01 に追加するには、sudo vgextend vg_01 /dev/vdd を実行します。

      出力に successfully extended というフレーズが含まれている場合、コマンドは成功です。

    3. VG が拡張されたことを確認します。

      sudo vgs を実行し、VG の合計容量 (VSize 列の値) が期待どおりに増加したかどうかを確認します。

      sudo vgs
      VG    #PV #LV #SN Attr   VSize   VFree  
      vg_01   3   1   0 wz--n- <89.99g <10.00g

      この例では、vg_01 VG の容量が 79.99 GiB から 89.99 GiB に増加し、空き領域 VFree は約 10 GiB です。これは期待どおりであり、VG は正常に拡張されました。

ステップ 2: LV の拡張

  1. 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 です。

  2. 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 というメッセージは成功を示します。

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

    1. sudo lsblk -f コマンドを実行します。出力で、LV の FSTYPEMOUNTPOINT を記録します。この情報は、ファイルシステムを拡張するための正しいコマンドを選択するために必要です。

      sudo lsblk -f                                 
      NAME         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 です。

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

      • 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 を実行します。
    3. ファイルシステムが正常に拡張されたかどうかを確認します。

      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 で利用可能な領域を超えてはなりません。

    1. VG の空き領域を確認します。

      sudo vgs コマンドを実行し、VFree 列の空き領域を確認します。

      sudo vgs
      VG    #PV #LV #SN Attr   VSize  VFree 
      vg_01   2   1   0 wz--n- 89.99g 10.00g

      この例では、追加される容量は 10 GiB を超えることはできません。

    2. 残りのすべての空き領域を LV に割り当てます。

      <logical_volume_path> を、拡張する LV に対して取得したパスに置き換えます。

      sudo lvextend -l +100%FREE <logical_volume_path>