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 /