Amazon Web ServicesでEC2 Linuxのディスクを再起動せずに拡張する
手順に従って、再起動せずに拡張する方法を学ぶ。通常、Linuxサーバーのルートディスクの拡張は本当に難しい。

何らかの理由で、EC2 Linuxサーバーを再起動せずに安全に拡張する必要がある場合がある。この記事では、AWSでEC2 Linuxディスクを拡張する方法を学ぶ。
この例では、ディスクサイズを80GiBから120GiBに拡張する手順を紹介する。
Step 1: ボリュームを変更する
AWSコンソールにログインし、EC2のボリューム(ディスク)を見つける。左ペインのElastic Block Store > Volumesにある。ボリュームを右クリックし、「Modify Volume」オプションを選択する。下の画像のようになる。適切なサイズを選び、Modifyボタンをクリックする。

Step 2: ディスクサイズを確認する
まず、コマンドを実行する前にサーバーでrootまたはsudoになる必要がある。最初にディスクサイズを確認する。ボリューム変更前のサイズが表示されるはずだ。この例では80GiBのはずだ。
[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 416K 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/nvme0n1p1 80G 51G 30G 64% /
tmpfs 1.6G 0 1.6G 0% /run/user/0はい、ディスク全体のサイズは80GiBと表示されている。正しい。次にブロックデバイスのリストを確認しよう。コマンド出力は/dev/nvme0n1デバイスに新しいディスクサイズを表示するはずだ。
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 120G 0 disk
├─nvme0n1p1 259:1 0 80G 0 part /
└─nvme0n1p128 259:2 0 1M 0 partはい!nvme0n1p1は80GiBだが、nvme0n1は120GiBと表示されている。つまり、nvme0n1p1パーティションを80GiBから120GiBに拡張できるということだ。
Step 3: 拡張しよう
ここが魔法の部分だ:
[root@server ~]# growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=167768031 end=167772127 new: size=251654111 end=251658207growpartコマンドはディスクパーティションを拡張しただけで、まだ保存されておらず、まだ120GiBのディスクにはなっていない。今すぐ変更をファイルシステムに保存する必要がある。
[root@server ~]# xfs_growfs /
meta-data=/dev/nvme0n1p1 isize=512 agcount=41, agsize=524159 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0
data = bsize=4096 blocks=20971003, 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 20971003 to 31456763Step 4: ディスクサイズを再度確認する
新しいディスクサイズを確認する時間だ。確認のためにもう一度コマンドを実行する。
[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 412K 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/nvme0n1p1 120G 51G 70G 42% /
tmpfs 1.6G 0 1.6G 0% /run/user/0
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 120G 0 disk
├─nvme0n1p1 259:1 0 120G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
おめでとう!AWS EC2 Linuxサーバーを再起動せず、EBS(Elastic Block Storage)上のデータを失うことなく正常に拡張できた。
Ercan の他のサイト
同じ著者、別の領域のサイトが2つ。