AWS EC2インスタンスのEBSディスク領域をサービス無停止で拡張する方法
amazon ec2ディスクを無停止で拡張する
EC2インタンスで数年運用していると、様々の理由でディスクの領域が枯渇することってないですか?私の場合、データベースサーバをEC2 インスタンスで動かしていて、初めは不要なファイル、もしくはテーブルをDROPしてなんとか対処していたのですが、にっちもさっちもいかなくなってもう限界に・・しかし、サービス止めれないよな?どうしよう(汗)って感じで、色々調べているうちに、いつの間にかインスタンスを止めずにディスク領域を拡張できるようになっていた・・・って話です。
今回EC2のインスタンスは、CENTOS7で実行しております。redhat linuxおよび amazon linuxでの作業内容に大きな差はないと思います。
ディスク領域の拡張
対象のEBSIDをクリックする
ディスク確認
対象のディスクが100GBであることを確認する、今回はこれを拡張する
ディスクの拡張
ディスク拡張
ボリュームを変更する
100GB -> 200GBに拡張
確認画面がでるので「はい」を選択
変更が正常に完了すると以下のダイアログが表示されます
Linuxでの作業
ディスクの状態をチェックする
xvda
が200GBになっていることを確認、ただし、マウントは100G
[centos@my-server ~]$df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 100G 40G 61G 40% / devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 1.2G 15G 8% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup tmpfs 3.2G 0 3.2G 0% /run/user/1000 [centos@my-server ~]$lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 200G 0 disk └─xvda1 202:1 0 100G 0 part /
念のためファイルシステムを確認する
ファイルシステムは、xfs
[centos@my-server ~]$df -T ファイルシス タイプ 1K-ブロック 使用 使用可 使用% マウント位置 /dev/xvda1 xfs 104846316 41230940 63615376 40% / devtmpfs devtmpfs 16369716 0 16369716 0% /dev tmpfs tmpfs 16390380 0 16390380 0% /dev/shm tmpfs tmpfs 16390380 1237288 15153092 8% /run tmpfs tmpfs 16390380 0 16390380 0% /sys/fs/cgroup tmpfs tmpfs 3278076 0 3278076 0% /run/user/1000
ディスク拡張作業
growpart
コマンドを利用します
[centos@my-server ~]$sudo growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=209713119 end=209715167 new: size=419428319,end=419430367
上記コマンド実行後、再度チェック
200GBになっていることを確認
[centos@my-server ~]$lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 200G 0 disk └─xvda1 202:1 0 200G 0 part /
xfsフォーマットでファイルシステムを拡張
上記のコマンドだけでは、論理ディスクは拡張できないので、xfs_growfs
コマンドでファイルシステムも拡張します
[centos@my-server ~]$sudo xfs_growfs -d / meta-data=/dev/xvda1 isize=512 agcount=51, agsize=524224 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=26214139, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 26214139 to 52428539
作業後チェック
ルートボリュームが、200Gになっていることを確認
[centos@my-server ~]$df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 200G 40G 161G 20% / devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 1.2G 15G 8% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup tmpfs 3.2G 0 3.2G 0% /run/user/1000