Google Cloud Platform 起動ディスクサイズ縮小
Google Cloud Platformの起動ディスクは、サイズの拡張機能はサポートされているが、縮小機能はサポートされていない。色々調べてみたが縮小の手順を説明しているサイトも見つけられなかった。
そこで、新しく作成した小さめのブートディスクを作成し、既存のブートディスクから必要な内容を転送することで、縮小された起動ディスクを作成し、入れ替えてみた。
-
- GCPのCompute Engineのページから縮小後のサイズに合わせた新規のインスタンスを作成。
- 既存のインスタンスと、同じOS、同じバージョン、同じ設定とする。
- 「管理、セキュリティ、ディスク、ネットワーキング、単一テナンシー」をクリックして「ディスク」を選択し、「インスタンスを削除する際にブートディスクを削除する」のチェックボックスを外しておく。
- インスタンスが起動したらログインし、aptコマンドで最新にupdate,upgradeを行い、インスタンスを停止。
- 作成したインスタンスを削除(作成したブートディスクはそのまま残る)
- 既存のインスタンスを編集し、「追加デイスク」の「既存のディスクを接続」をクリックし、作成したディスクをアタッチする。
- 既存のインスタンスにログインし、aptコマンドで最新にupdate,upgradeを行ってから、lsblkでディスクの名前を確認する。
- GCPのCompute Engineのページから縮小後のサイズに合わせた新規のインスタンスを作成。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 55.5M 1 loop /snap/core18/2074 loop1 7:1 0 55.4M 1 loop /snap/core18/2128 loop2 7:2 0 61.7M 1 loop /snap/core20/1026 loop3 7:3 0 61.8M 1 loop /snap/core20/1081 loop4 7:4 0 234.4M 1 loop /snap/google-cloud-sdk/192 loop5 7:5 0 234.7M 1 loop /snap/google-cloud-sdk/193 loop6 7:6 0 68.2M 1 loop /snap/lxd/21039 loop7 7:7 0 68.3M 1 loop /snap/lxd/21260 loop8 7:8 0 32.3M 1 loop /snap/snapd/12398 loop9 7:9 0 32.3M 1 loop /snap/snapd/12704 sda 8:0 0 30G 0 disk ├─sda1 8:1 0 29.9G 0 part / ├─sda14 8:14 0 4M 0 part └─sda15 8:15 0 106M 0 part /boot/efi sdb 8:16 0 10G 0 disk ├─sdb1 8:17 0 9.9G 0 part ├─sdb14 8:30 0 4M 0 part └─sdb15 8:31 0 106M 0 part
上記の場合、既存のブートディスクが/dev/sdaにあり、転送先が/dev/sdbにある。/bootディレクトリはコピーせずそのまま使用するので、/dev/sdb1を/mnt/rootにマウントする。
# mkdir /mnt/root # mount /dev/sdb1 /mnt/root
-
- /dev, /proc, /sys, /tmp, /run, /boot, /snap, /mnt, /media, /lost+found以外のディレクトリを転送するので、それ以外のディレクトリを削除しておく。
- rsyncを使って、必要なファイルを転送する。
rsync -aAXH --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/boot","/snap","/mnt/*","/media/*","/lost+found"} / /mnt/root
- 転送が終わったら/snapディレクトリの内容を確認し、先のlsblkでloopxで表示されているマウントポイントとなるディレクトリを作成し、マウントされていないファイル(/snap/binとそれ以外のディレクトリにあるcurrentのシンボリックリンク)をコピーあるいは転送する。(snapディエクトリの取り扱いはよく分かっていないので、こうしておけば大丈夫だろうという処置)
- インスタンスを停止。
- インスタンスを編集し、「Boot Disk」と「追加ディスク」にアタッチされているディスクを外して保存。
- 再度インスタンスを編集し、「Boot Disk」に作成・転送したブートディスクをアタッチし保存。
- インスタンスを起動して正常に動作することを確認。
この方法が完全に正しいかどうかは自信がないが、このサイトのサーバはこの手順で入れ替えたブートディスクで特に問題なく動作している。
11/14 追記)順調に動作していたが、aptでupdate, upgradeを実行したら起動しなくなってしまった(以前は大丈夫だったような、、、)。原因は不明だが、この移動方法が原因かも?とりあえずDisk内容は残っていたので、そこからサルベージ。参考にされる方はご注意。
コメントを残す