Modify VolumeでAmazon Linuxのルートボリュームサイズを変更しても変わらないときの対処方法

アイキャッチ AWS EC2

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コカコーラ好きのカジです。

以下で簡単にディスクのボリュームサイズが変更できるようになりました。

【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も)

ただ、EBS の Actions の Modify Volume することでボリュームサイズが変更できるようになりましたが、ルートボリュームで行う手順がわかりにくく、メンバーに教わりながら拡張できたのでご紹介します。

Modify Volume する手順は上記のブログにあるので省略します。 念のため何かあっても良いように作業前にスナップショットのバックアップは取得しておきましょう。

Modify Volume 完了直後

Amazon LinuxのルートボリュームをModify Volumeにて8GBを50GBへ拡張した後の状態は以下となります。 ボリュームは拡張していますが、ファイルシステム側は、そのままの状態になります。

[ec2-user@ip-172-16-xxx-xxx ~]$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/xvda1       7.8G  2.1G  5.7G   27% /
devtmpfs         994M   56K  994M    1% /dev
tmpfs           1002M     0 1002M    0% /dev/shm
[ec2-user@ip-172-16-xxx-xxx ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
└─xvda1 202:1    0   8G  0 part /
[ec2-user@ip-172-16-xxx-xxx ~]$

手順

growpart(cloud-utils-growpart)でファイルシステムの拡張を行います。

[ec2-user@ip-172-16-xxx-xxx ~]$ sudo LANG=C growpart --dry-run /dev/xvda 1
CHANGE: disk=/dev/xvda partition=1: start=4096 old: size=16773086,end=16777182 new: size=104853470,end=104857566
[ec2-user@ip-172-16-xxx-xxx ~]$ 
[ec2-user@ip-172-16-xxx-xxx ~]$ sudo LANG=C growpart /dev/xvda 1
CHANGED: disk=/dev/xvda partition=1: start=4096 old: size=16773086,end=16777182 new: size=104853470,end=104857566
[ec2-user@ip-172-16-xxx-xxx ~]$

resize2fsでパーティションを拡張し、結果を確認します。

[ec2-user@ip-172-16-xxx-xxx ~]$ sudo resize2fs /dev/xvda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/xvda1 is now 13106683 (4k) blocks long.

[ec2-user@ip-172-16-xxx-xxx ~]$
[ec2-user@ip-172-16-xxx-xxx ~]$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/xvda1        50G  2.1G   47G    5% /
devtmpfs         994M   56K  994M    1% /dev
tmpfs           1002M     0 1002M    0% /dev/shm
[ec2-user@ip-172-16-xxx-xxx ~]$
[ec2-user@ip-172-16-xxx-xxx ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
└─xvda1 202:1    0  50G  0 part /

できましたね。

まとめ

ちなみに、growpartは再起動時でも実行されるようで、インスタンスの再起動でも上記と同じ状態になります。 他のLinuxでもgrowpart(cloud-utils-growpart)がインストールされていると対応できるかもしれませんね。 チャンスがあれば試して見たいと思います。