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

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

注記

次のトピックでは、Linux 用の XFS および Ext4 ファイルシステムを拡張するプロセスについて説明します。他のファイルシステムの詳細については、そのドキュメントを参照して、手順を確認してください。

EBS ボリュームのサイズを増やしたら、ファイルシステム固有のコマンドを使用して、ファイルシステムを新しいより大きなサイズに拡張します。ボリュームが optimizing 状態に入るとすぐにこれを実行できます。

Linux でファイルシステムを拡張するには、次の操作を実行する必要があります。

  1. ボリュームにパーティションがある場合は、パーティションを拡張します。

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

開始する前に

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

サイズを変更したボリュームのファイルシステムを拡張するには、以下の手順を使用します。

Xen インスタンスと Nitro インスタンスでは、デバイスとパーティションの命名が異なることに注意してください。インスタンスが Xen ベースか Nitro ベースかを判断するには、以下のように describe-instance-types AWS CLI コマンドを使用します。

[ec2-user ~]$ aws ec2 describe-instance-types --instance-type instance_type --query "InstanceTypes[].Hypervisor"

nitro は、インスタンスが Nitro ベースであることを示します。xen または xen-on-nitro は、インスタンスが Xen ベースであることを示しています。

EBS ボリュームのファイルシステムを拡張するには
  1. インスタンスに接続します

  2. 必要に応じて、パーティションのサイズを変更します。そのためには、次の操作を行います。

    1. ボリュームにパーティションがあるかどうかを確認します。lsblk コマンドを実行します。

      Nitro instance example

      次の出力例では、ルートボリューム (nvme0n1) には 2 つのパーティション (nvme0n1p1 および nvme0n1p128) がありますが、追加のボリューム (nvme1n1) にはパーティションがありません。

      [ec2-user ~]$ sudo 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
      Xen instance example

      次の出力例では、ルートボリューム (xvda) にはパーティション (xvda1) がありますが、追加のボリューム (xvdf) にはパーティションがありません。

      [ec2-user ~]$ sudo 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 24G 0 disk

      ボリュームにパーティションがある場合は、次のステップ (2b) から手順を継続します。ボリュームにパーティションがない場合は、手順 2b、2c、2d をスキップして、手順 3 から続行します。

      トラブルシューティングのヒント

      コマンド出力でボリュームが表示されない場合は、ボリュームがインスタンスにアタッチされ、フォーマットおよびマウントされていることを確認します。

    2. パーティションを拡張する必要があるかどうかを確認します。前のステップの lsblk コマンド出力で、パーティションサイズとボリュームサイズを比較します。

      パーティションサイズがボリュームサイズよりも小さい場合は、次のステップに進みます。パーティションサイズがボリュームサイズと同じ場合、パーティションを拡張することはできません。

      トラブルシューティングのヒント

      ボリュームがまだ元のサイズを反映している場合は、ボリュームの変更が成功したことを確認します

    3. パーティションを拡張します。growpart コマンドを使用して、拡張するパーティションを指定します。

      Nitro instance example

      例えば、nvme0n1p1 という名前のパーティションを拡張するには、次のコマンドを使用します。

      重要

      デバイス名 (nvme0n1) とパーティション番号 (1) の間のスペースに注意してください。

      [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
      Xen instance example

      例えば、xvda1 という名前のパーティションを拡張するには、次のコマンドを使用します。

      重要

      デバイス名 (xvda) とパーティション番号 (1) の間のスペースに注意してください。

      [ec2-user ~]$ sudo growpart /dev/xvda 1
      トラブルシューティングのヒント
      • mkdir: cannot create directory ‘/tmp/growpart.31171’: No space left on device FAILED: failed to make temp dir: サイズ変更の実行に必要な一時ディレクトリを growpart が作成するのに十分な空きディスク容量がボリュームにないことを示します。ディスク容量を少し解放してから、もう一度お試しください。

      • must supply partition-number: 正しくないパーティションが指定されたことを示します。lsblk コマンドを使用してパーティション名を確認し、デバイス名とパーティション番号の間にスペースが入力されていることを確認します。

      • NOCHANGE: partition 1 is size 16773087. it cannot be grown: パーティションが既にボリューム全体を拡張しており、拡張できないことを示します。ボリュームの変更が成功したことを確認します

    4. パーティションが拡張されたことを確認します。lsblk コマンドを実行します。これで、パーティションのサイズはボリュームサイズと同じになります。

      Nitro instance example

      次の出力例は、両方のボリューム (nvme0n1) とパーティション (nvme0n1p1) が同じサイズ (16 GB) であることを示しています。

      [ec2-user ~]$ sudo 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
      Xen instance example

      次の出力例は、両方のボリューム (xvda) とパーティション (xvda1) が同じサイズ (16 GB) であることを示しています。

      [ec2-user ~]$ sudo 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 24G 0 disk
  3. ファイルシステムを拡張します。

    1. 拡張する必要があるファイルシステムの名前、サイズ、タイプ、およびマウントポイントを取得します。df -hT コマンドを実行します。

      Nitro instance example

      次の出力例では、/dev/nvme0n1p1 ファイルシステムのサイズが 8 GB、タイプが xfs、マウントポイントが / であることを示しています。

      [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 ...
      Xen instance example

      次の出力例では、/dev/xvda1 ファイルシステムのサイズが 8 GB、タイプが ext4、マウントポイントが / であることを示しています。

      [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 24.0G 45M 8.0G 1% /data ...
    2. ファイルシステムを拡張するコマンドは、ファイルシステムのタイプによって異なります。前のステップで書き留めたファイルシステムのタイプに基づいて、次の正しいコマンドを選択します。

      • [XFS ファイルシステム] xfs_growfs コマンドを使用して、前のステップで書き留めたファイルシステムのマウントポイントを指定します。

        Nitro and Xen instance example

        例えば、/ にマウントされているファイルシステムを拡張するには、次のコマンドを使用します。

        [ec2-user ~]$ sudo xfs_growfs -d /
        トラブルシューティングのヒント
        • xfs_growfs: /data is not a mounted XFS filesystem: 正しくないマウントポイントが指定されたか、ファイルシステムが XFS でないことを示します。マウントポイントとファイルシステムタイプを確認するには、df -hT コマンドを使用します。

        • data size unchanged, skipping: ファイルシステムが既にボリューム全体を拡張していることを示します。ボリュームにパーティションがない場合は、ボリュームの変更が成功したことを確認します。ボリュームにパーティションがある場合は、ステップ 2 で説明されているように、パーティションが拡張されていることを確認します。

      • [Ext4 ファイルシステム] resize2fs コマンドを使用して、前のステップで書き留めたファイルシステムの名前を指定します。

        Nitro instance example

        例えば、マウントされた /dev/nvme0n1p1 という名前のファイルシステムを拡張するには、次のコマンドを使用します。

        [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1
        Xen instance example

        例えば、マウントされた /dev/xvda1 という名前のファイルシステムを拡張するには、次のコマンドを使用します。

        [ec2-user ~]$ sudo resize2fs /dev/xvda1
        トラブルシューティングのヒント
        • resize2fs: Bad magic number in super-block while trying to open /dev/xvda1: ファイルシステムが Ext4 ではないことを示します。ファイルのシステムタイプを確認するには、df -hT コマンドを使用します。

        • open: No such file or directory while opening /dev/xvdb1: 正しくないパーティションが指定されたことを示します。パーティションを検証するには、df -hT コマンドを使用します。

        • The filesystem is already 3932160 blocks long. Nothing to do!: ファイルシステムが既にボリューム全体を拡張していることを示します。ボリュームにパーティションがない場合は、ボリュームの変更が成功したことを確認します。ボリュームにパーティションがある場合は、ステップ 2 で説明されているように、パーティションが拡張されていることを確認します。

      • [その他のファイルシステム] 手順については、ファイルシステムのドキュメントを参照してください。

    3. ファイルシステムが拡張されたことを確認します。df -hT コマンドを使用して、ファイルシステムのサイズがボリュームサイズと等しいことを確認します。