ConoHaにはサーバのイメージ保存という超便利な機能があります。
サーバの完全なディスクのバックアップイメージを作成しておいて、あとからそのイメージで復元できるというものですね。
しかしこのディスクイメージの作成をしていると、実際に消費しているディスクのサイズとバックアップイメージのサイズが大きく異るってことありますよね。
実際には10GBしか使っていないはずなのに、バックアップイメージを作成する30GBの容量になってる!みたいな感じで。
最初に断っておきますが、なぜそうなるのかははっきりした理由は私もわかりかねます。すいません。
問い合わせすれば有効な回答をいただくことも出来るかもしれませんが、本ブログではとりあえず解決策だけ紹介します。
結論からいうと、空き容量分zero埋め(0データをディスクに書き込む)をすると、ConoHaコントロールパネルからバックアップしたときに正常なディスク使用量が反映にされました。
その方法のTipsです。
ConoHaのサーバイメージ保存容量を正常に戻す
とりあえず前述のとおり、ディスクの空き容量分のzero書き込みを行います。
まず下記のようにdfコマンドで現在の空き容量を確認します。
1 2 3 |
df -h ファイルシステム サイズ 使用 残り 使用% マウント位置 /dev/mapper/centos-root 48G 7.9G 40G 17% |
例えばですが、上述のような結果になります。
不要な部分を削除しているのでもっといろいろ出てくると思いますが・・
ここで重要なのは「残り」の欄に出てくる容量です。
この空き容量分ゼロデータを書き込んでやればバックアップ時に正常な容量でバックアップされます。
とはいえここで注意点。
私の場合40GB空きがあるとなっていますが、この値おそらく四捨五入または切り上げのように思います。
(厳密にゼロ埋めしたい方は、df -hではなく、df –block-sizeなどを使って、厳密な空きサイズを計算してください。ですが、バックアップのためなので厳密性は必要ないと思います。)
上述の通り厳密なサイズはdf -hコマンドでは取得できませんので、それより少ない値でzero埋めファイルを作るのがベターだと思います。
なので私の環境の場合下記コマンドを発行します。
1 2 |
dd if=/dev/zero of=/tmp/tmpzero.tmp bs=G count=[空き容量] rm -rf /tmp/tmpzero.tmp |
bs=Gとしているので、countの値がGBとして認識される感じで/dev/zeroつまりゼロ埋めのファイルが作成されます。
作成したらその後削除します。
注意していただきたいのは、空き容量を超えた値でファイルを作成してしまった場合どうなるのか私も分かりかねるという点です。
不足の事態が発生する可能性も考慮して、空き容量より低い容量でゼロ埋めすることをおすすめします。
この作業が終わったら、ConoHaコントロールパネルからバックアップを実行してください。
これで完了です\(^o^)/