ボリュームサイズ変更後の Linux ファイルシステムの拡張 - Amazon Elastic Compute Cloud

ボリュームサイズ変更後の Linux ファイルシステムの拡張

EBS ボリュームのサイズを増やしたら、ファイルシステム固有のコマンドを使用して、ファイルシステムを大きなサイズに拡張します。ボリュームの状態が optimizing になった時点で、ファイルシステムのサイズを変更できます。

重要

重要なデータを含むファイルシステムを拡張する前に、変更をロールバックする必要がある場合に備えて、ベストプラクティスとしてボリュームのスナップショットを作成することをお勧めします。詳細については、「Amazon EBS スナップショットの作成」を参照してください。Linux AMI で MBR partitioning scheme を使用する場合、起動ボリュームサイズが最大 2 TiB に制限されます。詳細については、「Linux ボリュームの要件」および「EBS ボリュームのサイズと設定の制限」を参照してください。

Linux でファイルシステムを拡張するプロセスは以下のとおりです。

  1. EBS ボリュームには、ファイルシステムとデータを含むパーティションが存在する場合があります。ボリュームのサイズを拡張しても、パーティションのサイズは拡張されません。サイズ変更されたボリュームのファイルシステムを拡張する前に、新しいサイズのボリュームに拡張する必要があるパーティションがそのボリュームにあるかどうかを確認します。

  2. ファイルシステム固有のコマンドを使用して、各ファイルシステムのサイズを新しいボリューム容量に変更します。

Windows ファイルシステムの拡張については、『Windows インスタンスの Amazon EC2 ユーザーガイド』の「ボリュームサイズ変更後の Windows ファイルシステムの拡張」を参照してください。

以下の例では、Linux ファイルシステムを拡張するプロセスについて説明します。ファイルシステムとパーティションスキームがここに示されているもの以外の場合、手順については、それらのファイルシステムとパーティションスキームのドキュメントを参照してください。

例: NVMe EBS ボリュームのファイルシステムの拡張

この例では、Nitro System で構築されたインスタンス (M5 インスタンスなど) があるとします。ブートボリュームのサイズを 8 GB から 16 GB に変更し、追加ボリュームのサイズを 8 GB から 30 GB に変更しました。サイズを変更したボリュームのファイルシステムを拡張するには、以下の手順を使用します。

NVMe EBS ボリュームのファイルシステムを拡張するには

  1. インスタンスに接続する

  2. 各ボリュームのファイルシステムを確認するには、df -hT コマンドを使用します。

    [ec2-user ~]$ df -hT

    以下に示しているのは、XFS ファイルシステムのブートボリュームと XFS ファイルシステムの追加ボリュームがあるインスタンスの出力例です。命名規則 /dev/nvme[0-26]n1 は、ボリュームが NVMe ブロックデバイスとして公開されることを示しています。

    [ec2-user ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/nvme0n1p1 xfs 8.0G 1.6G 6.5G 20% / /dev/nvme1n1 xfs 8.0G 33M 8.0G 1% /data ...
  3. ボリュームに拡張が必要なパーティションがあるかどうかを確認するには、lsblk コマンドを使用して、インスタンスにアタッチされている NVMe ブロックデバイスに関する情報を表示します。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part

    この出力例は以下のことを示しています。

    • ルートボリュームである /dev/nvme0n1 には、パーティション /dev/nvme0n1p1 があります。ルートボリュームのサイズに新しいサイズ (16 GB) が反映されている場合、パーティションのサイズには元のサイズ (8 GB) が反映されるため、ファイルシステムを拡張する前に拡張する必要があります。

    • ボリューム /dev/nvme1n1 にはパーティションはありません。ボリュームのサイズには、新しいサイズ (30 GB) が反映されます。

  4. ルートボリュームのパーティションを拡張するには、次の growpart コマンドを使用します。デバイス名とパーティション番号の間にスペースがある点に注意してください。

    [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
  5. (オプション) 増加したボリュームサイズがパーティションに反映されていることを確認するには、再度 lsblk コマンドを使用します。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 16G 0 part / └─nvme0n1p128 259:3 0 1M 0 part
  6. 各ボリュームのファイルシステムのサイズを確認するには、df -h コマンドを使用します。この出力例では、両方のファイルシステムに元のボリュームサイズである 8 GB が反映されています。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 8.0G 1.6G 6.5G 20% / /dev/nvme1n1 8.0G 33M 8.0G 1% /data ...
  7. [XFS file system (XFS ファイルシステム)] 各ボリュームのファイルシステムを拡張するには、xfs_growfs コマンドを使用します。この例では、//data は、df -h の出力で示されているボリュームのマウントポイントです。

    [ec2-user ~]$ sudo xfs_growfs -d / [ec2-user ~]$ sudo xfs_growfs -d /data

    XFS ツールがまだインストールされていない場合は、以下のようにインストールできます。

    [ec2-user ~]$ sudo yum install xfsprogs
  8. [ext4 file system (ext4 ファイルシステム)] 各ボリュームのファイルシステムを拡張するには、resize2fs コマンドを使用します。

    [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1 [ec2-user ~]$ sudo resize2fs /dev/nvme1n1
  9. [その他のファイルシステム] 手順については、お使いのファイルシステムのドキュメントを参照してください。

  10. (オプション) 増加したボリュームサイズが各ファイルシステムに反映されていることを確認するには、再度 df -h コマンドを使用します。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 16G 1.6G 15G 10% / /dev/nvme1n1 30G 33M 30G 1% /data ...

例: EBS ボリュームのファイルシステムの拡張

この例では、T2 インスタンスなどのインスタンスのブートボリュームのサイズを 8 GB から 16 GB に変更し、追加ボリュームを 8 GB から 30 GB に変更したとします。サイズを変更したボリュームのファイルシステムを拡張するには、以下の手順を使用します。

EBS ボリュームのファイルシステムを拡張するには

  1. インスタンスに接続する

  2. 各ボリュームで使用中のファイルシステムを確認するには、df -hT コマンドを使用します。

    [ec2-user ~]$ df -hT

    以下に示しているのは、ext4 ファイルシステムのブートボリュームと XFS ファイルシステムの追加ボリュームがあるインスタンスの出力例です。

    [ec2-user ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 8.0G 1.9G 6.2G 24% / /dev/xvdf1 xfs 8.0G 45M 8.0G 1% /data ...
  3. ボリュームに拡張が必要なパーティションがあるかどうかを確認するには、lsblk コマンドを使用して、インスタンスにアタッチされているブロックデバイスに関する情報を表示します。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 30G 0 disk └─xvdf1 202:81 0 8G 0 part /data

    この出力例は以下のことを示しています。

    • ルートボリュームである /dev/xvda には、パーティション /dev/xvda1 があります。ボリュームのサイズが 16 GB の場合、パーティションのサイズは 8 GB のままになるため、拡張する必要があります。

    • ボリューム /dev/xvdf には、パーティション /dev/xvdf1 があります。ボリュームのサイズが 30 GB の場合、パーティションのサイズは 8 GB のままになるため、拡張する必要があります。

  4. 各ボリュームのパーティションを拡張するには、次の growpart コマンドを使用します。デバイス名とパーティション番号の間にスペースがある点に注意してください。

    [ec2-user ~]$ sudo growpart /dev/xvda 1 [ec2-user ~]$ sudo growpart /dev/xvdf 1
  5. (オプション) 増加したボリュームサイズがパーティションに反映されていることを確認するには、再度 lsblk コマンドを使用します。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 16G 0 part / xvdf 202:80 0 30G 0 disk └─xvdf1 202:81 0 30G 0 part /data
  6. 各ボリュームのファイルシステムのサイズを確認するには、df -h コマンドを使用します。この出力例では、両方のファイルシステムに元のボリュームサイズである 8 GB が反映されています。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 8.0G 1.9G 6.2G 24% / /dev/xvdf1 8.0G 45M 8.0G 1% /data ...
  7. [XFS volumes (XFS ボリューム)] 各ボリュームのファイルシステムを拡張するには、xfs_growfs コマンドを使用します。この例では、//data は、df -h の出力で示されているボリュームのマウントポイントです。

    [ec2-user ~]$ sudo xfs_growfs -d / [ec2-user ~]$ sudo xfs_growfs -d /data

    XFS ツールがまだインストールされていない場合は、以下のようにインストールできます。

    [ec2-user ~]$ sudo yum install xfsprogs
  8. [ext4 volumes (ext4 ボリューム)] 各ボリュームのファイルシステムを拡張するには、resize2fs コマンドを使用します。

    [ec2-user ~]$ sudo resize2fs /dev/xvda1 [ec2-user ~]$ sudo resize2fs /dev/xvdf1
  9. [その他のファイルシステム] 手順については、お使いのファイルシステムのドキュメントを参照してください。

  10. (オプション) 増加したボリュームサイズが各ファイルシステムに反映されていることを確認するには、再度 df -h コマンドを使用します。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 16G 1.9G 14G 12% / /dev/xvdf1 30G 45M 30G 1% /data ...