ファイルシステムにスペースが残っていないというエラーが表示された場合に、EBS ボリュームのサイズを増加する方法を教えてください。

所要時間3分
0

Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズを増加しようと思います。しかし、ファイルシステムに空き容量がないというエラーが表示されました。

簡単な説明

EBS ボリュームのルートパーティションまたはルートファイルシステムを拡張しようとすると、「デバイスに空き容量がありません」というエラーが表示されることがあります。このエラーを回避するには、仮想メモリにある一時ファイルシステム (tmpfs) を使用してください。tmpfs ファイルシステムを /tmp マウントポイントの下にマウントし、ルートパーティションまたはルートファイルシステムを拡張します。

次の例は、ルート EBS ボリュームブロックデバイス (/dev/nvme0n1) が 9 GiB で、ルートパーティション (パーティション 1) がすでに 8 GiB であることを示しています。

$ lsblkNAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   8G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part

ルートパーティション (パーティション 1) を増やそうとすると、次のエラー出力のいずれかが表示されます。

$ sudo growpart /dev/nvme0n1 1/bin/growpart: line 248: /tmp/growpart.fklt5u/dump.out: No space left on device
FAILED: failed to dump sfdisk info for /dev/nvme0n1

- または -

$ sudo growpart /dev/nvme0n1 1CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
FAILED: failed: sfdisk --list /dev/nvme0n1

**注:**先に進む前に、インスタンスの Amazon マシンイメージ (AMI) バックアップを作成するのがベストプラクティスです。または、インスタンスにアタッチされているルート EBS ボリュームのスナップショットを作成します。バックアップを使用すると、予期しない問題からデータを回復できます。

解決策

  1. Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに SSH を使用して接続します

  2. df-h コマンドを使用して、/の下にマウントされているルートパーティションがいっぱい (100%) かどうか確認します。次の例では、/dev/nvme0n1p1 はその容量を 100% 使用しています。

    $ df -hFilesystem      Size  Used Avail Use% Mounted on
    devtmpfs        460M     0  475M   0% /dev
    tmpfs           478M     0  492M   0% /dev/shm
    tmpfs           478M  432K  492M   1% /run
    tmpfs           478M     0  492M   0% /sys/fs/cgroup
    /dev/nvme0n1p1  8.0G  8.0G  664K 100% /
    tmpfs            96M     0   99M   0% /run/user/1000

    接続されているブロックデバイスとルート / マウントポイントに関する詳細を収集するには、以下のコマンドを実行します。

    $ lsblkNAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    nvme0n1       259:0    0   9G  0 disk
    ├─nvme0n1p1   259:1    0   8G  0 part /
    └─nvme0n1p128 259:2    0   1M  0 part
    
    $ lsblk -fNAME          FSTYPE LABEL           UUID                                 MOUNTPOINT
    nvme0n1
    ├─nvme0n1p1   xfs    /               afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 /
    └─nvme0n1p128

    この出力例では、ルート EBS ボリュームの総容量は 9 GiB です。ただし、ルートパーティション (/dev/nvme0n1p1) またはパーティション 1 は 8 GiB しかありません。ファイルシステムのタイプは XFS です。

  3. 「ブロックデバイスにスペースが残っていません」 というエラーを回避するには、一時ファイルシステム tmpfs/tmp マウントポイントにマウントします。これにより、/tmp: に 10 M の tmpfs がマウントされます。

    $ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
  4. ルートパーティションまたはパーティション 1 のサイズを増やすには、growpart コマンドを実行します。/dev/nvme0n1 を自分のルートパーティションに置き換えてください。

    $ sudo growpart /dev/nvme0n1 1 CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
  5. パーティション 1 Gib を 9 GiB に拡張したことを確認するには、lsblk コマンドを実行します。

    $ lsblkNAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    nvme0n1       259:0    0   9G  0 disk
    ├─nvme0n1p1   259:1    0   9G  0 part /
    └─nvme0n1p128 259:2    0   1M  0 part
  6. ファイルシステムを拡張します。ステップ 3 を参照して、ルートパーティション / のファイルシステムを確認してください。次の例では、XFS タイプのファイルシステムを拡張します。

    $ sudo xfs_growfs -d /data blocks changed from 2096635 to 2358779
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    log      =internal               bsize=4096   blocks=2560, version=2
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
             =                       sunit=0      swidth=0 blks
    data     =                       bsize=4096   blocks=2096635, imaxpct=25
             =                       crc=1        finobt=1 spinodes=0
             =                       sectsz=512   attr=2, projid32bit=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    meta-data=/dev/nvme0n1p1         isize=512    agcount=4, agsize=524159 blks

    次の例では、パーティション 1 の EXT2/EXT3/EXT4 ファイルシステムを拡張します。

    $ sudo resize2fs /dev/nvme0n1p1
  7. ファイルシステムを拡張したら、df-h コマンドを使用して、OS が追加のスペースを認識できることを確認します。

    $ df -hFilesystem      Size  Used Avail Use% Mounted on
    devtmpfs        960M     0  960M   0% /dev
    tmpfs           978M     0  978M   0% /dev/shm
    tmpfs           978M  392K  978M   1% /run
    tmpfs           978M     0  978M   0% /sys/fs/cgroup
    /dev/nvme0n1p1  9.0G  8.0G 1022M  89% /
    tmpfs           196M     0  196M   0% /run/user/1000
    tmpfs            10M     0   10M   0% /tmp
  8. tmpfs ファイルシステムをアンマウントするには、unmount コマンドを実行します。

    $ sudo umount /tmp
AWS公式
AWS公式更新しました 8ヶ月前
コメントはありません