AWS EC2(ubuntu18.04)のファイルシステム拡張方法

f:id:hige_dev:20210306175511p:plain

何度かやってるけど忘れてしまうので備忘録。

ファイルシステム拡張の流れ

  1. EC2ダッシュボードから、EBSのvolumeを増やす
  2. EC2にsshして、lsblkなどでvolumeの確認
  3. growpartでパーティションを拡張
  4. resize2fsで、ファイルシステムを拡張

1. EC2コンソールで、EBSのvolumeを増やす

ここはすぐわかるので簡潔に。 ①EC2コンソールのElastic Block Store(EBS)のボリュームから、 ②対象のボリュームを選択して「アクション => ボリュームの変更」 して、任意のサイズに変更。 f:id:hige_dev:20210304063455p:plain 基本的にサイズアップのみ。サイズダウンする場合は、手間がかかるので割愛。(新しくインスタンスを立ち上げて、減らしたいEBSをそちらにアタッチして、新EC2に元からアタッチされてたEBSに内容をコピーする、的な流れ)

2. EC2にsshして、lsblkなどでvolumeの確認

1で8 => 16GB増やしてから、EC2にsshでログインして lsblk コマンドを叩いてみると、EBSがマウントされている /(ルート)が拡張されてないことがわかる

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/nvme0n1p1  7.7G  2.6G  5.2G  34% /
...

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
nvme0n1     259:0    0   16G  0 disk
└─nvme0n1p1 259:1    0    8G  0 part /

1で増やしたdiskサイズに合わせて、part(パーティション)を拡張してあげる必要がある。

3. growpartでパーティションを拡張

growpartコマンドで、パーティションを拡張する。この時の引数は、 growpart [ディスク] [パーティション番号]なので、以下のように指定する。

$ $ sudo growpart /dev/nvme0n1 1
CHANGED: partition=1 start=2048 old: size=16775135 end=16777183 new: size=33552351,end=33554399

nvme0n1ディスクの、1番目のパーティション。nvme0n1p1の、最後のp1パーティション1という意味なので、二つ目の引数には1だけを指定する。sudo growpart /dev/nvme0n1 p1ではない。

4. resize2fsで、ファイルシステムを拡張

lsblkではパーティションが拡張されたが、この時点ではまだファイルシステムには認識されていない。

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
nvme0n1     259:0    0   16G  0 disk
└─nvme0n1p1 259:1    0   16G  0 part /

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/nvme0n1p1  7.7G  2.6G  5.2G  34% /
...

そのため、拡張したパーティションを、ファイルシステムに認識させる必要がある。 そのためには、resize2fsコマンドを打つだけ。

$ sudo resize2fs /dev/nvme0n1p1
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/nvme0n1p1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/nvme0n1p1 is now 4194043 (4k) blocks long.

なんか英語が出てびびるけど、dfしてみると8 =>16に拡張されていることがわかる。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/nvme0n1p1   16G  2.6G   13G  17% /
...

まとめ

同じような情報は腐る程あるけど、書いてみると理解が進むのでよし。