今月ひとつもブログを書いていなかったので、滑り込みのタイミングで何か書こうと思い、キーボードをとりました。
EBSのディスクがいっぱいになってしまった
EC2でJenkinsを動かしていて、Gitにソースコードをコミットするたびにそのビルドが走るようになっているのですが、半年間で数千回にのぼるコミットのすえEBSのディスク容量を食い尽くしてしまいました。
Amazon Web ServicesのデータベースサーバであるAmazon RDSでは、ボタンをポチポチするだけでデータベースのディスクを拡張してくれる素晴らしい機能があるのですが、さすがにEBSにはそのような便利な機能はありません。
Management Consoleと数個のコマンドで拡張できる
でも、EBSには、データ丸ごとのスナップショットをとる機能があるので、少しの作業でディスクを拡張することができます。
今回はJenkins用のディレクトリを拡張するので、まずはJenkinsをとめて、EBSをアンマウントします。
sudo /etc/init.d/jenkins stop
sudo umount /var/lib/jenkins
Management Consoleでの作業は以下です。
- EBSをデタッチする。
- スナップショットを作成する。、
- スナップショットから、容量を大きくした別のEBSを作成する。
- 新しいEBSをアタッチする。
これだけでディスク増えたらとても楽なんですが、残念ながらこのままマウントしてもディスクは拡張されません。EBS自体は大きい容量をもつものの、ファイルシステムとしてはスナップショット作成時の大きさのままだからです。
そこで、resize2fsコマンドでファイルシステムのサイズを変更してやります。
sudo e2fsck -f /dev/sdf
sudo resize2fs /dev/sdf
容量が大きいものは数十分かかりましたが、これが完了したあとにマウントすると、無事にディスクが拡張されました!
sudo mount -t ext4 /dev/sdf /var/lib/jenkins
sudo /etc/init.d/jenkins start
※ 2ヶ月ほど前の作業ログと当時の記憶を頼りに書いております。
コメント