むらじゅん風呂具

ITエンジニアとたまに歌手と司会などで活動する村中淳のブログ

【AWS】少しでもxfsに触れたくてEBSの拡張をしてみた

できないことで悶々とするより、平日はサクッと試せることを試したいので、
Amazon Linux 2 のルートデバイスの拡張をしてみた。

テスト用のインスタンスを立ててボリュームを拡張する

EBS-Extension-Test というテストインスタンスを立てる

対象のインスタンスを選択して、アクション > ボリュームの変更

f:id:pj124183:20200117212039p:plain


ボリュームの変更でサイズを20GiBにする

変更をすると、画面にてサイズが20GiBになっていることを確認

f:id:pj124183:20200117212632p:plain


OSにてボリュームを認識させる

インスタンスにログイン後、確認してみると変更前の容量のまま

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         475M     0  475M    0% /dev
tmpfs            492M     0  492M    0% /dev/shm
tmpfs            492M  400K  492M    1% /run
tmpfs            492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1       8.0G  1.3G  6.8G   16% /
tmpfs             99M     0   99M    0% /run/user/1000
$


現在利用できるブロックデバイスを表示する lsblk コマンドで見ると20Gがある

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  20G  0 disk
└─xvda1 202:1    0   8G  0 part /
$


df コマンドでファイルシステムを確認、xfs だ

$ df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs   475M     0  475M    0% /dev
tmpfs          tmpfs      492M     0  492M    0% /dev/shm
tmpfs          tmpfs      492M  456K  492M    1% /run
tmpfs          tmpfs      492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1     xfs        8.0G  1.3G  6.8G   16% /
tmpfs          tmpfs       99M     0   99M    0% /run/user/1000
tmpfs          tmpfs       99M     0   99M    0% /run/user/0
$


次に、調べるとパーティションサイズを拡張する際に、
cloud-initのモジュールである、growpart が必要になるとのこと

Amazon Linux 2 には標準で入っている

$ rpm -qa | grep growpart
cloud-utils-growpart-0.31-2.amzn2.noarch
$


以下、コマンドを実行

$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=41938911 end=41943007
$


これが何をしているかわからずhelpをみたところ、

Example:
    - growpart /dev/sda 1
      Resize partition 1 on /dev/sda

リサイズしてくれている様子

次に、拡張したパーティションファイルシステムに認識させる、
xfs_growfs というコマンドが必要

www.systutorials.com

実行してみる

$ xfs_growfs -d /
xfs_growfs: cannot open /dev/xvda1: Permission denied
[ec2-user@ip-10-1-11-244 ~]$ sudo xfs_growfs -d /
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 5242363
$


うまくいった様子
再び確認すると / の容量が増えていることを確認

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         475M     0  475M    0% /dev
tmpfs            492M     0  492M    0% /dev/shm
tmpfs            492M  456K  492M    1% /run
tmpfs            492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1        20G  1.3G   19G    7% /
tmpfs             99M     0   99M    0% /run/user/1000
tmpfs             99M     0   99M    0% /run/user/0
$


どうやらOSの再起動で自動認識してくれるらしい

調べてみると、わざわざここまでの処理をしなくても、
OS再起動で認識してくれるらしい↓

dev.classmethod.jp

ともあれ、昨日ハマったxfsに触れたのでよしとする。

ごっつあんです。