パーティションがある EBS のボリュームサイズの拡張方法。
EC2 を運用中にパーティションがある EBS ボリュームのサイズが足りなくなったのでボリュームサイズを拡張したときのメモ。
EBS ボリュームサイズの拡張前
まずは状態を確認していく。
lsblk コマンドで状態を確認するとルートボリュームは /dev/xvda があり、/dev/xvda ルートボリュームは /dev/xvda1 パーティションがあることが分かる。また、/dev/xvda ルートボリュームのサイズは 8GB で /dev/xvda1 パーティションのサイズは 8GB であることも分かる。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part /
df コマンドでファイルシステムの状態を確認すると /dev/xvda1 パーティションは割り当てている 8GB のうち 7.8GB とほぼすべてを使い切っている状態で、このままだと何をするにも支障があるので EBS のボリュームサイズを拡張していく。
$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 8.0G 7.8G 200M 98% / # 省略
EBS ボリュームサイズの拡張方法
パーティションがある EBS ボリュームサイズを拡張するときは、EBS ボリュームサイズ自体の拡張のほかにパーティションの拡張とファイルシステムの拡張が必要になるので、それぞれやっていく。
EBS ボリュームサイズの拡張
まず一番最初に EBS のボリュームサイズを拡張していく。
AWS の EC2 コンソールのサイドバーで ボリューム
を押してボリューム一覧を表示して、ボリューム一覧の対象のボリュームを選択して アクション > ボリュームの変更
で ボリュームの変更
画面を表示する。
ボリュームの変更
画面は変更後のサイズ (ここでは 50GB) を入力して 変更
ボタンを押す。
拡張するサイズによっては拡張が完了するまで時間がかかることがあるので EBS ボリュームの 状態
が in-use
になるまで待つ。
EBS ボリュームの 状態
が in-use
であることを確認したら作業を続けていく。
lsblk コマンドで状態を確認すると /dev/xvda ルートボリュームは新しいサイズ (50 GB) が反映されているが /dev/xvda1 パーティションは元のサイズ (8 GB) のままであることが分かる。 そのため、ファイルシステムを拡張する前にパーティションを拡張していく。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 50G 0 disk └─xvda1 202:1 0 8G 0 part /
パーティションの拡張
/dev/xvda1 パーティションを拡張するために growpart コマンドを使う。
$ sudo growpart /dev/xvda 1 CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=104853471,end=104857567
lsblk コマンドで状態を確認すると /dev/xvda1 パーティションが 50GB に拡張されていることが分かる。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 50G 0 disk └─xvda1 202:1 0 50G 0 part /
/dev/xvda1 パーティションのサイズは拡張されたが、df コマンドでファイルシステムの状態を確認するとファイルシステムは 8GB のままなので、続いてファイルシステムを拡張していく。
$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 8.0G 7.8G 200M 98% / # 省略
ファイルシステムの拡張
ここまででボリュームサイズの拡張とパーティションサイズの拡張をしてきたので最後にファイルシステムを拡張していく。
ext2、ext3、ext4 ファイルシステムは resize2fs コマンドを使って拡張していき、XFS ファイルシステムは xfs_growfs コマンドを使って拡張していく。
使っているファイルシステムは df -T
コマンドで確認できる。
ここでは タイプ
のところが xfs
と出力されているので XFS ファイルシステムを使っていることが分かる。
$ df -T ファイルシス タイプ 1K-ブロック 使用 使用可 使用% マウント位置 /dev/xvda1 xfs 8376300 1435180 6941120 18% / # 省略
ファイルシステムが XFS ファイルシステムなので xfs_growfs コマンドを使って拡張していく。
xfs_growfs コマンドがないときは yum install xfsprogs
コマンドで XFS ファイルシステム管理ユーティリティをインストールしてから xfs_growfs コマンドを実行する。
$ sudo xfs_growfs / meta-data=/dev/xvda1 isize=512 agcount=4, agsize=524159 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1 spinodes=0 data = bsize=4096 blocks=2096635, 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 2096635 to 13106683
xfs_growfs コマンドの実行後に df コマンドでファイルシステムの状態を確認するとファイルシステムが 50GB に拡張されていることが分かる。
$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/xvda1 50G 7.8G 42G 16% / # 省略
パーティションがある EBS のボリュームサイズの拡張方法は以上。