Amazon EC2 で CentOS インスタンスを立ち上げると、デフォルトでは 8GB しかルートドライブのディスク容量が無いため、空き容量が不足することがあります。 Amazon Linux を使っている場合は AWS コンソールから無停止でディスク増設できるようなのですが、 CentOS ではできなかったので、やり方をメモしておきます。
実施環境
- CentOS 6.7 64bit
前準備
上記の AMI から EC2 インスタンスを作成しておいてください。今回は全てデフォルト設定なので、ディスク容量は 8GB です。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 741M 6.7G 10% /
tmpfs 498M 0 498M 0% /dev/shm
増設手順
ディスクサイズを変更する
- EC2 コンソールのメニューから "Volumes" をクリック
- 容量を追加したいボリュームにチェックを付け、 "Actions > Modify Volume" をクリック
- "Size" を
8
から16
に変更して "Modify" をクリック
これで ELB の State が "Optimizing (0%)" に変わります。100% を待つ必要はないので、次に進んでください。
dracut をインストールする
EC2 インスタンスに SSH ログインしたら、 dracut というツールを EPEL からインストールします。
sudo rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo yum -y install dracut-modules-growroot
新たなボリュームを認識させる
# 現在のディスク容量の確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 741M 6.7G 10% / # <- まだ 8GB しか有効化されていない
tmpfs 498M 0 498M 0% /dev/shm
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk # <- ディスクは認識されている
└─xvda1 202:1 0 8G 0 part /
# フルにディスクを使うよう設定
$ sudo dracut --force --add growroot /boot/initramfs-$(uname -r).img
# 変更を反映させるために再起動
$ sudo shutdown -r now
# 再確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 16G 716M 15G 5% /
tmpfs 498M 0 498M 0% /dev/shm
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 16G 0 part /