ConoHa VPSを使っていて、バックアップやサーバー作業のために毎週なんだかんだ「イメージ保存(スナップショット)」を取ることが多いんですが、1週間経つごとに「1GB前後」ぐらいイメージ保存容量が増えていっている…!
- 実際のサーバーのディスク使用量を調べると「約27GB」
- イメージ保存で表示される保存容量は「38.08GB」
10GB近くも差があるのは何で…!となったので、「ConoHa VPSのサポート」に問い合わせてみることにしました。
さくっと
さくっと問い合わせた結果と対応方法を書くと
- イメージ保存の容量は、ディスク視点で1度でもその領域に書き込みがあれば、使用済みとして解釈されるので、実サーバーの使用量よりも大きく表示されてしまう
- これを解消するには「ddコマンド」を用いて、空いている領域を0で埋めたあと、それを削除すれば、イメージ保存容量は削減される
ddコマンド
を用いた、詳しい作業手順については記事の下の方に載せています。
くわしく
「ConoHaのサポート」に問い合わせた内容
- df -h –totalして表示される使用量は「27GB」
- イメージ保存で表示される保存容量は「38.08GB」
- VPSとして実際に使用されている容量はどっち?
- この差が生まれてしまうのはなぜ?
- この差を解消する方法はある?
こんな感じで問い合わせてみました。
「ConoHaのサポート」からの返信
お問い合わせの件につきましてご案内致します。
ご申告のサーバー容量につきまして、 実際の使用容量はファイル システム上のものかと存じます。
イメージ容量につきましては、 イメージ化した際の容量になるた め、 ディスク視点で1度でもその領域に書き込みがあれば、 使用済みとして解釈されるものとなりますため、イメージ保存後の容量 は、実サーバー容量よりも大きくなるかと存じます。
イメージ保存後のイメージの容量を減らしたいとのことであれば、 イメージ元のサーバーにて空いている領域にddコマンド等を用いて0等で削除いただければ、 イメージ容量を抑えられるかと存じます。
なお、 コマンドライン操作などのサーバーOS内の操作につきましては、弊社からの特定のご案内は差し控えさせていただいておりますので、 インターネットや専門の書籍をご確認の上、 お客様にてご対応いただきますようお願い致します。
「ConoHa お客様センター」からの返信メールより
何卒ご確認の程よろしくお願い致します。
こんな感じでした!
「サーバーの空き領域を0で埋めてー…」という言葉を見て、以前どこかでこれに関する記事を見たことがあるなー…と思い出し、ブラウザの履歴を漁ったところ、見つかりました!
Qiitaのこちらの記事でした。
以前ConoHa VPSのことで調べ物をしているときに目にしていたのかも。こちらを参考にして、作業を進めさせていただきました。
ありがたやー…!
作業手順「空き領域を0で埋めて削除する」
1. サーバーの空き容量を確認する
df -h
うちのサーバーの結果は、こんな感じでした。
Filesystem Size Used Avail Use% Mounted on
tmpfs 197M 1.1M 196M 1% /run
/dev/vda2 99G 24G 71G 26% /
tmpfs 982M 1.1M 981M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 982M 0 982M 0% /run/qemu
tmpfs 197M 4.0K 197M 1% /run/user/1000
このうち、主要で使っている行だけを見ればいいと思います。
うちの場合だと以下ですね。
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 99G 24G 71G 26% /
「Avail」の部分が空き容量なので、「71GB」が空き容量なのが分かります。
2. 「0埋め作業」をする
以下にコマンドを載せますが、“count=”の後の数値は、必ず自分の環境に合わせてください
dd if=/dev/zero of=/tmp/tmpzero.tmp bs=G count=◯◯
うちの場合は空き容量が「71GB」でした。
なので、1GBだけ余裕を残しておいて「70GB」(71GB – 1GB)を0で埋めます。
容量いっぱいまで埋めちゃうと怖いので…!
dd if=/dev/zero of=/tmp/tmpzero.tmp bs=G count=70
このコマンドを実行すると、70GB分を0で埋めてくれます。
ちなみに70GBを埋め終わるまでの時間を測ってみましたが「約1分30秒」でした。
思っていたよりも速かった!
余談ですが、ここで試しにdf -h
をして、サーバーの空き容量を再び確認してみました。
Filesystem Size Used Avail Use% Mounted on
tmpfs 197M 1.1M 196M 1% /run
/dev/vda2 99G 94G 158M 100% /
tmpfs 982M 1.1M 981M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 982M 0 982M 0% /run/qemu
tmpfs 197M 4.0K 197M 1% /run/user/1000
「/dev/vda2」のUse%が「100%」、つまり容量いっぱいになってます。
なんか怖い…!
でも、ちゃんと空き領域を埋めてくれたのが分かりました。
3. 「0埋めのために作ったtmpファイル」を消す
cd /tmp/
rm tmpzero.tmp
これでおしまい!
念のため、ふたたびdf -h
をしてみましたが
Filesystem Size Used Avail Use% Mounted on
tmpfs 197M 1.1M 196M 1% /run
/dev/vda2 99G 24G 71G 26% /
tmpfs 982M 1.1M 981M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 982M 0 982M 0% /run/qemu
tmpfs 197M 4.0K 197M 1% /run/user/1000
「/dev/vda2」のAvailが最初と同じ71G、そしてUse%も26%に戻っています。
つまり、「空き領域を埋めていたtmpファイル」がちゃんと消えてくれたことがわかりました。
イメージ保存を取ってみる
これで作業は終わったので、実際にイメージ保存を取ってみて「イメージ保存容量」がどうなったのかを確認してみます。
ちなみに、この作業をする直前に取っていた「イメージ保存容量」はこんな感じでした。
この「38.08GB」が、0埋め作業後にどうなっていたかというと
「28GB」になってくれていました!
空き領域を0で埋めて削除することで、実際のディスク使用量に近い数値にまで「イメージ保存容量」を削減することができたわけですね!
おしまい
こんな感じで、「サーバーの空き領域の0埋め作業」をやってみました。
ほんと毎週イメージ保存を取るたびに1GB前後ずつ増えていて、近々「ConoHa VPSの無料でイメージ保存を取れる上限の50GB」を越えてしまうかもしれない…!とヒヤヒヤしていたので、対応方法が分かってよかったです。
以前使っていた「KAGOYA VPS」でも、同じように一週間ぐらい期間を空けてスナップショットを取ると、保存容量が結構増えていく症状があったのですが、もしかしたら同じように「1度使用したディスク領域」をカウントするからだったのかもしれないですねー…
「KAGOYA VPS」の場合は、スナップショットが、その保存容量サイズによって日額で費用が掛かるシステムだったので、そういうVPSでは出来るだけ費用を抑えるためにも、スナップショットのサイズが大きくなってきたら、ちょくちょく「0埋め削除作業」はした方がいいのかもですねー…
何はともあれ、解決できてよかったよかった!