Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

EC2でvolumeアタッチしたはずなのに、possibly out of free disk space とかでる時は、パーテーションの拡張を確認してみる

More than 1 year has passed since last update.

概要

急にpossibly out of free disk spaceといったエラーがでた時の原因のひとつ。
EC2のinstanceを生成する時には、十分な容量のEBSボリュームをアタッチしたはずなのになあ、おかしいなと思っていたところ、割り当てたボリュームが認識されていないという問題がありました。

動作環境

AWS CentOS Linux release 7.7.1908 (Core)

解決策

まず、パーテーションの確認を行います。
xvdaには最初にアタッチした160GBのストレージを確認できますが、実際に使われているのは、そのうちのxvda2のパーテーションの34GBしかないです。

$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  160G  0 disk
├─xvda1 202:1    0    1G  0 part /boot
└─xvda2 202:2    0   34G  0 part /

この時のdisk容量を確認すると、見事100%になっています。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         7.8G     0  7.8G    0% /dev
tmpfs            7.8G     0  7.8G    0% /dev/shm
tmpfs            7.8G  225M  7.6G    3% /run
tmpfs            7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/xvda2        34G   34G     0  100% /
/dev/xvda1      1014M  192M  823M   19% /boot
tmpfs            1.6G     0  1.6G    0% /run/user/1000

したがって、この状況を解決するには、
まず、xvda2のパーテーションを拡張する必要があります。
その時にgrowpartというツールを使うので、インストールします。
growpartをinstallできない場合は、空き容量がないということなので、いらないファイルを削除して、再試行するするとうまくいくと思います。

$ sudo yum install cloud-utils-growpart
$ sudo growpart /dev/xvda 2 # xvdaの2番目のパーテーション(xvda2)を拡張
$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  160G  0 disk
├─xvda1 202:1    0    1G  0 part /boot
└─xvda2 202:2    0  159G  0 part /

パーテーションを拡張できました!

念の為、ファイルサイズを確認すると、、、

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         7.8G     0  7.8G    0% /dev
tmpfs            7.8G     0  7.8G    0% /dev/shm
tmpfs            7.8G  225M  7.6G    3% /run
tmpfs            7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/xvda2        34G   34G  249M  100% /
/dev/xvda1      1014M  192M  823M   19% /boot
tmpfs            1.6G     0  1.6G    0% /run/user/1000

あれれ。。。まだ使用率が100%になっています。
このままだと、xvda2のファイルサイズが、元の34GBのままなので、今度はファイルシステムを拡張する必要があります。その前に、ext2、ext3、ext4、XFSといったどのファイルシステムでxvdaが管理されているのかを確認します。

$ df -T
ファイルシス   タイプ   1K-ブロック     使用  使用可 使用% マウント位置
devtmpfs       devtmpfs     8110620        0 8110620    0% /dev
tmpfs          tmpfs        8132940        0 8132940    0% /dev/shm
tmpfs          tmpfs        8132940   229880 7903060    3% /run
tmpfs          tmpfs        8132940        0 8132940    0% /sys/fs/cgroup
/dev/xvda2     xfs         35640300 35386356  253944  100% /
/dev/xvda1     xfs          1038336   195928  842408   19% /boot
tmpfs          tmpfs        1626592        0 1626592    0% /run/user/1000

xvda2はxfs形式であることが確認できました。
それでは、xvda2のmount pointである/からファイルシステムを拡張します。

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

無事ファイルシステムを拡張することができました!

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         7.8G     0  7.8G    0% /dev
tmpfs            7.8G     0  7.8G    0% /dev/shm
tmpfs            7.8G  225M  7.6G    3% /run
tmpfs            7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/xvda2       159G   34G  126G   22% /
/dev/xvda1      1014M  192M  823M   19% /boot
tmpfs            1.6G     0  1.6G    0% /run/user/1000

volumeの確認→パーテーションの拡張→ファイルシステムの拡張の順番で処理していけば大丈夫そうですね。

参考

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

____easy
no pain no gain
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away