GCEのインスタンスを使っていてディスク不足になること、たまにあります。
インスタンスを作成する時点でディスクサイズを適切に決定できればいいのですが、なかなかそうはいかないですし、ディスクを後から拡張できるのがクラウドの良さでもありますので、実際にディスク拡張を試してみます。
ディスク拡張手順
公式ドキュメントにも手順は記載されていますが、この記事では画面キャプチャ付きで紹介します。
「Compute Engine」→「ディスク」を選択します。
ディスクの一覧が表示されるので、今回拡張したいディスクをクリックします。
ディスクの詳細が表示されるので、「編集」をクリックします。
ディスクサイズを変更し、「保存」をクリックします。(画面キャプチャでは50GB→100GBに拡張)
すると、実際にディスクサイズが拡張されます!
ただ、ここまでの手順だけではOSから見えるディスクサイズは変わらないため、OS上での操作が必要となります。
ここから先の手順はDebianベースである点、ご了承下さい。
まずはOSから見えるディスクサイズを確認します。ここで確認する限りはまだ増えていません。
$ sudo df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs tmpfs 799M 8.4M 790M 2% /run
/dev/sda1 ext4 50G 43G 4.7G 91% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda15 vfat 124M 7.9M 116M 7% /boot/efi
tmpfs tmpfs 799M 0 799M 0% /run/user/1002
ブロックデバイスを表示します。ディスクsdaは100GBとなっていますが、その下にぶら下がるパーティションsda1は50GBのままです。この後の作業でパーティションsda1を100GBに拡張したいです。
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 49.9G 0 part /
├─sda14 8:14 0 3M 0 part
└─sda15 8:15 0 124M 0 part /boot/efi
作業用のツールをインストールします。
$ sudo apt -y install cloud-guest-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
cloud-init
The following NEW packages will be installed:
cloud-guest-utils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 22.1 kB of archives.
After this operation, 59.4 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 cloud-guest-utils all 0.29-1 [22.1 kB]
Fetched 22.1 kB in 0s (161 kB/s)
Selecting previously unselected package cloud-guest-utils.
(Reading database ... 108751 files and directories currently installed.)
Preparing to unpack .../cloud-guest-utils_0.29-1_all.deb ...
Unpacking cloud-guest-utils (0.29-1) ...
Setting up cloud-guest-utils (0.29-1) ...
Processing triggers for man-db (2.8.5-2) ...
growpartコマンドを使って、パーティションsda1を拡張します。
$ sudo growpart /dev/sda 1
CHANGED: partition=1 start=262144 old: size=104593409 end=104855553 new: size=209453023,end=209715167
最後にファイルシステムを拡張して完了です!
$ sudo resize2fs /dev/sda1
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
The filesystem on /dev/sda1 is now 26181627 (4k) blocks long.
実際に確認してみると、無事/dev/sda1が100GBに拡張されました!
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 799M 8.4M 790M 2% /run
/dev/sda1 99G 43G 52G 45% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda15 124M 7.9M 116M 7% /boot/efi
tmpfs 799M 0 799M 0% /run/user/1002
終わりに
オンプレ時代には、ディスク追加するためだけに、ハードウェアベンダを呼んで、システムをメンテナンスモードに切り替えて、ディスク拡張作業をしていましたが、クラウドだとこんなに簡単に拡張できてしまうのは本当に素晴らしいことです。
GCPでディスクが枯渇してしまい、困ったという方の参考になれば。