こんにちは、インフラエンジニアの綿引です。
EC2 運用時に いつのまにかディスク使用率が 100% に、、
という経験がある方もいらっしゃるのでないでしょうか。
そこで今回は EC2 の EBS ボリュームを拡張したので、方法を共有したいと思います。
対象の方は以下のような方でしょうか。
- EC2 のディスク使用率がそろそろ危ない、、
実施方法
では早速実施していきます。拡張対象の EC2 の情報は以下です。
- OS : CentOS 7
- 拡張対象 : ルートパーティション
そしてやる前に 必ずバックアップ を取得しておきましょう。
EBS ボリュームの拡張
まずは EBS ボリュームの拡張を行なっていきます。
マネジメントコンソールの EBS の画面から、拡張対象の EBS ボリュームを選択し 「アクション」 → 「ボリュームの変更」 を選択します。
そして画面遷移後、ボリュームタイプ・サイズを任意のものにして「変更」を押下します。
今回は 200GB → 400GB に変更しました。
変更が開始されると、画面の下部に進捗が表示されますので 100% になるまで待ちます。
パーティションとファイルシステムの拡張
EBS のボリューム拡張が完了したら、次は OS 側にてパーティションとファイルシステムの拡張をしていきます。
まずブロックデバイスが拡張されているか lsblk コマンドで確認します。
[root@ebs-test 02:30:58 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 400G 0 disk └─xvda1 202:1 0 200G 0 part /
df コマンドでも確認してみます。
[root@ebs-test 02:31:01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 200G 188G 13G 94% /
ルートボリュームの xvda は先ほどの EBS のボリューム拡張にて 400GB になっていますが、ルートパーテーションの xvda1 はまだ 200GB のままです。
ではパーティションの拡張を growpart コマンドで行います。
[root@ebs-test 02:31:22 ~]# growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=419428319 end=419430367 new: size=838858719 end=838860767
これで xvda1 パーティションが 200GB から 400GB に拡張されました。
[root@ebs-test 02:31:25 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 400G 0 disk └─xvda1 202:1 0 400G 0 part /
次にファイルシステムの拡張を xfs_growfs コマンドで行います。
[root@ebs-test 02:32:00 ~]# xfs_growfs /dev/xvda1 meta-data=/dev/xvda1 isize=512 agcount=9, agsize=6553536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=52428539, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=12799, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 52428539 to 104857339
ファイルシステムの拡張も完了したので、最後に df コマンドで確認してみます。
[root@ebs-test 02:32:28 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 400G 188G 213G 47% /
これで OS 側の拡張も完了です。
注意点
注意点としてはファイルシステムによって、パーティション拡張コマンドが異なることです。
- xfs_growfs : XFS
- resize2fs : ext2・ext3・ext4
CentOS7 以上ですとファイルシステムが XFS ですので上記手順の xfs_growfs コマンドで問題ないですが、CentOS6 以下をお使いの方は resize2fs コマンドを使っていただければと思います。
最後に
今回は EC2 インスタンスの EBS ボリュームを拡張してみましたが、オンラインでできたのは良かったです。
EBS ボリュームの拡張時間としては 200GB 増やして 5〜6時間 ほどでした。
その間パフォーマンスが劣化するとのことだったので、実施タイミングだけ気をつけたいです。
また EBS を拡張すると、EBS ボリューム分のコストが発生する点も気にしておきたいですね。
エンジニア募集中
Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽に話を聞いてみてください。
株式会社ウエディングパークwantedly