Amazon EBS ボリュームのサイズ変更後にファイルシステムを拡張 - Amazon EBS

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

EBS ボリュームのサイズを増やしたら、パーティションおよびファイルシステムを新しいより大きなサイズに拡張する必要があります。ボリュームが optimizing 状態に入るとすぐにこれを実行できます。

開始する前に

注記

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

ボリュームにパーティションがある場合、Linux でファイルシステムを拡張する前にパーティションを拡張する必要があります。

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

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

Xen インスタンスおよび Nitro System 上に構築されたインスタンスでは、デバイスおよびパーティションの命名が異なることに注意してください。インスタンスが 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 ベースであることを示しています。

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

      パーティション番号は、p の後の番号です。例えば、nvme0n1p1 の場合、パーティション番号は 1 です。nvme0n1p128 の場合、パーティション番号は 128 です。

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

      重要

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

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

      パーティション番号は、デバイス名の後の番号です。例えば、xvda1 の場合、パーティション番号は 1 です。xvda128 の場合、パーティション番号は 128 です。

      例えば、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 コマンドを使用して、ファイルシステムのサイズがボリュームサイズと等しいことを確認します。

次のいずれかの方法を使用して Windows インスタンスでファイルシステムを拡張します。

Disk Management utility
ディスクの管理を使用してファイルシステムを拡張するには
  1. 重要なデータを含むファイルシステムを拡張する前に、変更をロールバックする必要がある場合に備えて、ファイルシステムを含むボリュームのスナップショットを作成するのがベストプラクティスです。詳細については、Amazon EBS スナップショットの作成を参照してください。

  2. リモートデスクトップを使用して Windows インスタンスにログインします。

  3. [実行] ダイアログボックスにdiskmgmt.mscと入力し、Enter キーを押します。ディスクの管理ユーティリティが表示されます。

    Windows Server ディスクの管理ユーティリティ
  4. [ディスクの管理] メニューで、[操作]、[ディスクの再スキャン] の順に選択します。

  5. 拡張したドライブのコンテキスト (右クリック) メニューを開き、[Extend Volume (ボリュームの拡張)] を選択します。

    注記

    次の場合には、[ボリュームを拡張] が無効化されている (グレー表示される) ことがあります。

    • 未割り当ての領域が、ドライブに隣接していない。未割り当て領域は、拡張するドライブの右側に隣接している必要があります。

    • ボリュームが、マスターブートレコード (MBR) パーティションスタイルを使用しており、そのサイズが既に 2 TB に達している。MBR を使用するボリュームのサイズは 2 TB を超えることはできません。

    Windows Server ディスクの管理ユーティリティ
  6. [Extend Volume (ボリュームの拡張)] ウィザードで、[Next (次へ)] を選択します。[Select the amount of space in MB] で、ボリュームを拡張するメガバイト数を入力します。通常は、使用可能な最大領域を指定します。[Selected] のハイライト表示されたテキストは、ボリュームの最終的なサイズではなく、追加分の容量を表します。ウィザードを終了します。

    Windows Server ボリュームの拡張ウィザード
  7. AWS NVMe ドライバーがないインスタンスで NVMe ボリュームのサイズを増やす場合、インスタンスを再起動して Windows を有効にし、新規のボリュームサイズを表示する必要があります。AWS NVMe ドライバーのインストールの詳細については、「AWS Windows インスタンス用 NVMe ドライバー」を参照してください。

PowerShell

PowerShell を使用して Windows ファイルシステムを拡張するには、以下の手順に従います。

PowerShell を使用してファイルシステムを拡張するには
  1. 重要なデータを含むファイルシステムを拡張する前に、変更をロールバックする必要がある場合に備えて、ファイルシステムを含むボリュームのスナップショットを作成するのがベストプラクティスです。詳細については、Amazon EBS スナップショットの作成を参照してください。

  2. リモートデスクトップを使用して Windows インスタンスにログインします。

  3. 管理者として PowerShell を実行します。

  4. Get-Partition コマンドを実行します。PowerShell は、各パーティションに対応するパーティション番号、ドライブ文字、オフセット、サイズ、タイプを返します。拡張するパーティションのドライブ文字をメモします。

  5. 以下のコマンドを実行して、ディスクを再スキャンします。

    "rescan" | diskpart
  6. <drive-letter> の代わりに手順 4 でメモしたドライブ文字を使用して、以下のコマンドを実行します。PowerShell から、許可されているパーティションの最小サイズと最大サイズがバイト単位で返されます。

    Get-PartitionSupportedSize -DriveLetter <drive-letter>
  7. 指定された規模にパーティションを拡張するには、<size> の代わりにボリュームの新しいサイズを入力しながら、次のコマンドを実行します。サイズは、KBMBGB で入力できます (50GB など)。

    Resize-Partition -DriveLetter <drive-letter> -Size <size>

    使用可能な最大サイズにパーティションを拡張するには、次のコマンドを実行します。

    Resize-Partition -DriveLetter <drive-letter> -Size $(Get-PartitionSupportedSize -DriveLetter <drive-letter>).SizeMax

    特定のサイズにファイルシステムを拡張するための、完全な PowerShell コマンドと、そのレスポンスフローを以下に示します。

    PowerShell を使用してパーティションを拡張する – 指定サイズの例

    使用可能な最大サイズにファイルシステムを拡張するための、完全な PowerShell コマンドと、そのレスポンスフローを以下に示します。

    PowerShell を使用してパーティションを拡張する – 最大サイズ