問題
AMI から作成した EC2 インスタンスのルートパーティションが EBS のサイズよりも小さくなってしまう.
10 GiB の EBS で作成したにもかかわらず,実際は 8 GiB しか使われていない.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 749M 6.7G 10% /
tmpfs 498M 0 498M 0% /dev/shm
ただし,デバイスとしては 10 GiB として認識されている.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 8G 0 part /
8 GiB は AMI の元となったインスタンスのルートパーティションのサイズであり,その値に引きずられていると思われる.
解決
growpart で RHEL EC2 のルートパーティションを自動拡張する « サーバーワークス エンジニアブログ によると, OS が Amazon Linux であれば EBS のサイズに合わせてルートパーティションをよしなに拡張してくれるらしいが,他の OS (今回は CentOS) では当該機能がプリインストールされていないことがあるため,別途追加する必要があるとのこと.
というわけで yum に epel リポジトリを追加して cloud-utils-growpart
をインストールする.
sudo yum install epel-release
sudo yum install --enablerepo=epel cloud-utils-growpart
サーバーワークスの記事では /etc/cloud/cloud.cfg
の [cloud_init_modules]
セクションに - growpart
を追記するように書いてあったが,今回インストールした cloud-utils-growpart
ではデフォルトで設定されていた.
よって,何も追記せずに再起動する.これでパーティションが拡張される.
sudo shutdown -r now
次に,ファイルシステム拡張のために再起動する.
sudo shutdown -r now
無事にパーティションとファイルシステムが拡張された.
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 9.8G 803M 8.5G 9% /
tmpfs 498M 0 498M 0% /dev/shm
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
└─xvda1 202:1 0 10G 0 part /