膨れ上がるバックアップコストの悪夢
キャリアの初期、私はウェブサーバーの小規模なクラスターを管理していました。毎晩、単純な cron ジョブで tar コマンドを実行してウェブディレクトリとデータベースのダンプを圧縮し、リモートのストレージサーバーに転送していました。それは 3 週間ほど完璧に機能していましたが、その後、ストレージの請求書が届きました。
実際のウェブサイトのデータは 1 日に 50MB ほどしか増えていないにもかかわらず、ストレージの使用量は毎晩 20GB も急増していました。私は同じ画像、同じライブラリファイル、同じデータベース構造を何度も繰り返し保存するために料金を支払っていたのです。最終的に 50GB のアーカイブからわずか 10KB の設定ファイルを 1 つ復元する必要が生じたとき、ブロック全体をダウンロードしなければなりませんでした。帯域制限のある接続では、許容できない 3 時間ものダウンタイムが発生してしまいました。
ファイルレベルのバックアップが抱える問題
rsync や基本的な tar スクリプトのような標準的なツールは、ファイルを一つの単位として扱うため、データの処理効率が悪くなります。例えば、2GB のデータベースダンプがあるとします。テキストを 1 行だけ変更した場合でも、rsync はファイルが変更されたと見なし、再び 2GB 全体をコピーします。1 ヶ月経てば、本質的に同じデータに対して 60GB のストレージを消費することになります。

