無停止でCentOS7 on EC2のEBSストレージを拡張する
遅ればせながら今回の案件で初めてEC2を触ることに。
そこでまずはステージング環境を作ろうとごにょごにょしてたら、ディスクを8GiBで作成してしましました。
ステージング環境とはいえもう少し欲しかったのでディスクを拡張しようとしたらAWSではなんと無停止で拡張可能とのこと!再起動も不要!マジ最高!ってなったんですが、やり方が分からず詰まったりしたので備忘録か。
AWSコンソールからEBSボリュームを増やす
AWSコンソールからEC2のボリュームサイズを変更する。
変更後ステータスがin-use-optimizing
が100%になるのを待ちましょう。
いや、待つ必要があるかは分かんないんですが。この辺誰か情報ください。
私は8 -> 40GiBに変更で1時間ほどかかりました。
web上での操作は以上です。
拡張されたボリュームを適用する
拡張が完了したので早速sshログイン後確認してみよう。
$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/nvme0n1p1 8.0G 896M 7.2G 11% /
しかし拡張されていない。
おかしい・・・。何かが、あったに・・・違いない・・・。
「そう、誰もパーティショニングを拡張していないのである!」
まずは落ち着いてブロックデバイスを見てみる。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 40G 0 disk └─nvme0n1p1 259:1 0 8G 0 part /
lsblkでブロック確認するとdisk側がpartitionより大きくなって、先ほど指定したサイズに変更されていることが分かる。
というわけでnvme0n1のパーティション、nvme0n1p1をgrowpartで拡張する。
nvme0n1p1をどうやって拡張するんだろうと思ったら、nvme0n1のパーティション1(nvme0n1p1)を拡張するので、/dev/nvme0n1 1
と指定するみたい。
$ sudo growpart /dev/nvme0n1 1 CHANGED: partition=1 start=2048 old: size=16775168 end=16777216 new: size=83883999,end=83886047 $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 40G 0 disk └─nvme0n1p1 259:1 0 40G 0 part /
これでパーティションがディスクのサイズまで拡張された。
ただこの時点ではファイルシステムにまで影響していないので、最後にファイルシステムを拡張する。
$ sudo xfs_growfs /dev/nvme0n1p1
最後にちゃんと拡張されているか確認して完了だ。
$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/nvme0n1p1 40G 897M 40G 3% /
以上ーー!