Amazon Linux2(CentOS7)で何も考えずにストレージ拡張できるようにする


はじめに

私が作業するとき「あれ、これどうだったっけな」ってググるのが面倒だったのと
忘れっぽいのでメモ。

環境

AWS
EC2 t2.micro

CentOS7(Amazon Linux2)での論理拡張手順(xfs編)

1.AWSのコンソールでEBS選択し、GUI上から明示的に増加させる。

2.SSHでEC2ログイン

3.lsblkコマンドを使い論理ストレージの現状を確認。

[ec2-user /]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 20G 0 disk
-nvme0n1p1 259:1 0 8G 0 part /
-nvme0n1p128 259:2 0 1M 0 part```

4.ディスク容量を確認。

[ec2-user /]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 249M 1.7G 13% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 8.0G 8.0G 4.3M 100% /
tmpfs 389M 0 389M 0% /run/user/1000
tmpfs 389M 0 389M 0% /run/user/1001

100%でひっ迫。

5.追加を実施。指定ファイル数があるなら-dの引数で指定する。指定しないと全部割り当たる。
正し、成功する場合と失敗する場合がある。
No space left on deviceが出力され失敗した場合は5-1に移行。

[ec2-user /]$ sudo growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=41938911,end=41943007

-------------------(成功した場合は6まで飛ぶ)-----------------------

5-1.inode残ファイル数を確認。

[ec2-user /]$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 493131 291 492840 1% /dev
tmpfs 497543 1 497542 1% /dev/shm
tmpfs 497543 379 497164 1% /run
tmpfs 497543 16 497527 1% /sys/fs/cgroup
/dev/nvme0n1p1 51368 51273 95 100% /
tmpfs 497543 1 497542 1% /run/user/1000
tmpfs 497543 1 497542 1% /run/user/0

5-2.問答無用で不要なファイルを探す。
find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -nr

5-3.不要なファイルを倒す。

5-4.inode残数が問題なさそうなら5.に戻る

-----------------------(ここまで)----------------------------

6.またlsblkコマンドを使い論理ストレージの現状を確認。

[ec2-user /]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 20G 0 disk
tqnvme0n1p1 259:1 0 20G 0 part /
mqnvme0n1p128 259:2 0 1M 0 part

7.この段階で問題なければストレージを拡張する。
ただし、Cent7ではxfs_growfsを使う。
resize2fsは使えないということを忘れてはならない。
resizeを打つとスパブロされる。

[ec2-user /]$ sudo xfs_growfs /dev/nvme0n1p1
meta-data=/dev/nvme0n1p1 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 5242363

最後の一文で出来たことが分かる。

8.確認
[ec2-user /]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 249M 1.7G 13% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 20G 8.0G 12G 41% /
tmpfs 389M 0 389M 0% /run/user/1000
tmpfs 389M 0 389M 0% /run/user/1001

よしOK。

[ec2-user /]$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 493131 291 492840 1% /dev
tmpfs 497543 1 497542 1% /dev/shm
tmpfs 497543 391 497152 1% /run
tmpfs 497543 16 497527 1% /sys/fs/cgroup
/dev/nvme0n1p1 10484720 51263 10433457 1% /
tmpfs 497543 1 497542 1% /run/user/1000
tmpfs 497543 1 497542 1% /run/user/1001

こっちも大丈夫。

終わりに

ただのメモ書きです。本当にありがとうございました。