スキマノート

AIメーカーなどのwebサービスを作っています。ここでは気になった技術、話題などをまとめたり、雑記を書いたりします。

Google Compute Engine(GCE)で稼働中のLinux CentOS7サーバを停止せずにオンラインでディスクサイズを拡張する方法

GCP 永続ディスク Persistent Disk


こんにちは、2z(Twitter: @2zn01 )です。

Google Compute Engine(GCE)で運用しているLinux CentOS7サーバのディスクサイズが結構いっぱいになってきたので、停止せずにオンラインでディスクサイズ拡張をしてみます。
今回は 100GB から 200GB に拡張してみました。

GCEのコンソール上でディスクサイズを変更

まずはGoogle Compute Engine(GCE)のウェブのコンソール上でディスクサイズを変更します。
(画面のスクリーンショットについては、今回は省かせて頂きます)

これだけでは稼働中のサーバにディスクサイズは反映されませんので、月にLinuxサーバ上で作業していきます。

※ここで事前にスナップショットを取っておきます。

Linuxサーバでディスクサイズを反映

環境はLinuxのCentOS7です。

サーバにログインし、ディスクのサイズを確認します。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G   83G   18G  83% /
devtmpfs        3.6G     0  3.6G   0% /dev
tmpfs           3.6G     0  3.6G   0% /dev/shm
tmpfs           3.6G  369M  3.3G  11% /run
tmpfs           3.6G     0  3.6G   0% /sys/fs/cgroup
tmpfs           732M     0  732M   0% /run/user/1000
tmpfs           732M     0  732M   0% /run/user/0

ディスクのサイズが設定した値 200GBになっていることを確認します。

$ sudo lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk
└─sda1   8:1    0  200G  0 part /

そして、パーティションサイズを拡大します。

$ sudo growpart /dev/sda 1

しかし、ディスクサイズを反映しようとすると、エラーが。。。

$ sudo resize2fs /dev/sda1
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/sda1
Couldn't find valid filesystem superblock.

こちらについて調べてみると、CentOS7からデフォルトになっているXFSではresize2fsは利用できないみたいです。。

そこで、XFSでは resize2fs の代わりに xfs_growfs を使えばいいみたいです!

$ sudo xfs_growfs /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=41, agsize=655296 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=26213807, 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=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 26213807 to 52427871

無事、ディスクサイズを拡張することに成功しました。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       200G   83G  118G  42% /
devtmpfs        3.6G     0  3.6G   0% /dev
tmpfs           3.6G     0  3.6G   0% /dev/shm
tmpfs           3.6G  369M  3.3G  11% /run
tmpfs           3.6G     0  3.6G   0% /sys/fs/cgroup
tmpfs           732M     0  732M   0% /run/user/1000
tmpfs           732M     0  732M   0% /run/user/0

以上です。


この記事が少しでもお役に立ちましたら、本ブログの読者登録やTwitter: @2zn01をフォローして頂くと更新の励みになります!

よろしくお願いします!