一般的なやり方は 公式のドキュメント さくらのVPS スケールアップ を参照してください。以下は一事例として。
今回、ちょっとした手違いで一気にディスクが満杯になってしまったVPSホストをスケールアップして一時凌ぎをしています。スケールアップはVPSのコントロールパネルから実施します(サーバを一旦落とす必要があります)。スケールアップ完了後に、sshログインしてディスク拡張を開始します。ディスクフルのエラーでyum
も動かないので、まず、なんとか要らないファイルを探して1G程度空きを作った状態です。
まずはファイルシステムを作るところまで。
yum -y install gdisk
sgdisk -s /dev/vda
gdisk /dev/vda
# 全てデフォルト値でパーティションを追加 (公式ドキュメント参照)
reboot
mkfs.xfs /dev/vda5
それからマウントポイントを決めます。ここではたと気がつくのですが、ルートパーティションがそのまま広くなるのではなくて、大きくなったディスクをどのディレクトリに割り当てるか、という形でしか拡張が出来ません(lvextendとかは使えないものか…)。今回は悩んでいる時間もなかったので、ひとまず、一番容量を食ってしまっている/opt
を新しいパーティションに割当てなおすことにしました。
cd /
mv opt opt.bak
mkdir opt
mount /dev/vda5 /opt
mv opt.bak/* /opt/
その場しのぎ感が凄いですが、とりあえずたっぷりスペースを手に入れました。
Filesystem Size Used Avail Use% Mounted on
/dev/vda4 196G 57G 140G 29% /
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 8.4M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/vda2 497M 216M 281M 44% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/1001
/dev/vda5 600G 136G 464G 23% /opt
再起動後もマウントされるようにfstabを編集します。
UUID=(blkidで調べたID) /opt xfs defaults 0 2
再起動して、問題がなければ完了です。
reboot