AWSのEC2上でサービスを稼働させていると
EBSも無料でないので最小限からスタートさせることも多いですが、
どこかのタイミングでぶつかるディスク不足問題。
予算が十分にあるならば最初から大きめにVolumeを確保しておけば良いわけですが
すべてのプロジェクトサービスでそういくわけもなく、ある日アラートで気づくわけです。
概要
EC2 ディスク不足!! EBS Volumeを増やさなくては!!
「ディ、ディスク足りねえ!!」
サービス稼働中にEBS Volumeを追加しなくてはいけなくなる。
そんなときには、今回のダウンタイムゼロでEBS Volume拡張をしよう。
EBS ボリュームサイズ拡張手順
実際にEBSボリュームをサイズアップさせていきます。
AWS管理コンソールからEBSボリュームサイズの変更
まずAWSコンソールにアクセスする。
EC2/ボリュームの設定画面で、
EBSのボリュームサイズを変更してください。
例として30GB->100GBに変更する感じです。
web画面での操作はこれで終了です。
EC2インスタンスにsshログイン
次にEC2インスタンス内にsshでログインする。
1 |
$ ssh -i ~/.ssh/ec2-server.pem ec2-user@***.***.***.*** |
sudo su でrootになる。
1 |
$ sudo su |
df -hで現状確認。
まだファイルシステムでは変更したサイズは認識していない。
1 2 3 4 5 6 7 |
$ [ec2-user@machine ~]$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 30G 19G 12G 61% / devtmpfs 897M 0 897M 0% /dev * * * * * * * * * |
lsblkでブロック確認すると
disk側がpartより大きくなっておりDiskサイズが変更されている。
1 2 3 |
$ lsblk xvda 202:0 0 32G 0 disk <-こっちが大きくなっている、 └─xvda1 202:1 0 16G 0 part / |
growpartでパーティションの拡張
xvda1を拡張していく。
まずgrowpartでパーティションの拡張したら
再度lsblkで確認するとサイズが上下一緒になる
1 |
$ sudo growpart /dev/xvda 1 |
1 2 3 4 |
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 20G 0 disk └─xvda1 202:2 0 20G 0 part / <-上下が同じサイズになる。 |
この時点ではファイルシステムにまで影響していないので
df -hをしても変化がない。
xfs_growfsでファイルシステムを拡張
最後にファイルシステムを拡張する。
xfs_growfsコマンドを使用します。
1 |
$sudo xfs_growfs /dev/xvda1 |
$df -h
でサイズがでかくなる。
以上。
簡単だね。
じゃあね〜〜〜〜。