さくらのVPSでディスク容量を拡張するためスケールアップ
さくらのVPSは長い間使用していますが意外と安定しており、某社VPSと違い勝手に再起動されたりトラブルは今までありません。今回ファイルのやりとりに使用しているVPSサーバーのディスク容量が逼迫してきました。
確認してみると、以下のようにルートのパーティションが98%の使用率で、急を要します。
# df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 1012996 0 1012996 0% /dev
tmpfs 1023368 0 1023368 0% /dev/shm
tmpfs 1023368 8704 1014664 1% /run
tmpfs 1023368 0 1023368 0% /sys/fs/cgroup
/dev/vda4 98558068 91482564 2051832 98% /
/dev/vda2 487652 130147 327809 29% /boot
tmpfs 204676 0 204676 0% /run/user/0
#
OS環境は、VPSの標準でインストールされていたCentOS7でした。
さくらのVPSはいつの間にかVPSをスケールアップできるようになり、さらに初期変更費用を増額することでディスク容量を倍増させることができるようになりました。
ドキュメントを確認するも・・・
ディスク容量を拡大できるということは、使用しているパーティションを拡大できるということを期待しています。
公式のドキュメントを確認してみました。
さくらのVPS ディスク拡張手順 (標準OS CentOS7.2)
読み解くと「ディスクの容量を拡大できるけど、拡大した分はパーテションを作成して使ってね」とのこと。でもこれだと後々困りそう。AWSではディスク容量の拡大分をパーティション拡張できると、公式マニュアルで説明されてるし、実際に何度も経験があるのに。(何でもAWSと比較しちゃいけないですが)
バックアップを取った上で、パーティションの拡大に挑戦(!)します。うまくいかなければバックアップを戻せばいいし。
プランの変更
現在100GBディスクのプランなので、倍の200GBになるよう、さくらのVPSの管理画面でスケールアップの申し込みからプラン選択します。プラン変更を確定させるには、VPSサーバーの停止が必要です。
数分後、管理画面からVPSサーバーの起動を行い、シェルログインして確認します。dfコマンドでは変わらないものの、fdiskコマンドでは確かにディスク容量が200GBに変更されたのを確認できます。
# fdisk -l
Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x00000000
デバイス ブート 始点 終点 ブロック Id システム
/dev/vda1 1 209715199 104857599+ ee GPT
#
パーティションの拡張
ディスクの容量が拡張されたのを確認したら、パーティションの拡張です。
AWSでは標準でインストールされていた、growpartコマンドをインストールします。念の為、gdiskもインストールしておきます。
# yum -y install cloud-utils-growpart gdisk
パーティションの拡張を行います(ドキドキ)。前述のdfコマンドの結果から、デバイスvdaの4番めを指定します。
# growpart /dev/vda 4
CHANGED: partition=4 start=9416704 old: size=200295808 end=209712512 new: size=410013662 end=419430366
#
ドキドキしたわりには、エラーも出ず、即完了です。fdiskで確認してみます。
# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: gpt
Disk identifier: D53C0ED9-670F-4703-95AF-25D1AE1381C5
# Start End Size Type Name
1 2048 4095 1M BIOS boot BIOS
2 4096 1028095 500M Microsoft basic Microsoft
3 1028096 9416703 4G Linux swap Linux
4 9416704 419430365 195.5G Microsoft basic Microsoft
#
gdiskをインストールしたので、fdiskの表示が変わってパーティションが4つ表示されています。4番めのパーティションが195.5GB(約200GB)になっています。「Microsoft Basic」という表示が気になりますが、さくらの公式ドキュメントでもこの表記だったので問題ないのでしょう。
パーティションは拡張されましたが、ファイルシステムは変更されていないので、ファイルシステムをパーティションにリサイズします。
# resize2fs /dev/vda4
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vda4 is mounted on /; on-line resizing required
old_desc_blocks = 6, new_desc_blocks = 13
The filesystem on /dev/vda4 is now 51251707 blocks long.
#
これもすんなり終了。dfコマンドで確認してみます。
# df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
devtmpfs 1012996 0 1012996 0% /dev
tmpfs 1023368 0 1023368 0% /dev/shm
tmpfs 1023368 8704 1014664 1% /run
tmpfs 1023368 0 1023368 0% /sys/fs/cgroup
/dev/vda4 201822972 91482928 101127008 48% /
/dev/vda2 487652 130147 327809 29% /boot
tmpfs 204676 0 204676 0% /run/user/0
#
ルートパーティションの使用率が、98%から48%に低減しています。
念の為再起動もしてみましたが、特に問題ありませんでした。正式にパーティション拡張をサポート対応してもらいたいですが、それまでは自己責任で対応しましょう!