ローカルストレージを備えたLinuxサーバーに約150GBのバイナリファイル(qcow2)の複数のバージョンを保存する必要があり、必要に応じてマージできる差分を保持するだけのソリューションがあることを望んでいたので、別のファイルを作成する必要はありません4ギガのみが変更された場合の150GBファイルのコピー。これはストレージに関する質問であり、KVM/qcow2固有の機能に関する質問ではありません。私はすでにそれらのオプションのいくつかを調査しました。現在、EXT4でCentOS6.3を使用しています。ファイルは無期限に保存する必要があり、復元時に完全に無傷である必要があります。ソリューションに価値がある場合は、ファイルシステムなどを変更したいと思います。
Linux上のZFSこの場合、重複排除を使用することはあなたの友達かもしれません。 Red Hat RPM/repos インストールが可能です。
重複排除がなくても、これをZFSスナップショットワークフローに組み込むことができれば、ZFSでこれを試みることにはいくつかの重要な利点があります。
これらのファイルをどのように操作したいかについてもう少し説明していただけますか?ポイントインタイムスナップショットを探していますか、それとも同じ/類似ファイルの複数のリビジョンをデータストアにコピーしていますか?
解決策としてLVMスナップショットを検討します。詳細に立ち入ることなく、私はこれを行います:
この時点で、LVMスナップショットをマウントすることで元のファイルにアクセスできます。また、大きなファイルの最新バージョンも利用できるようになります。この方法で複数のスナップショットを作成できます。
私はこの目的のために librsync を使用しています。これは、CentOSおよびその他のRHELクローンで EPELリポジトリ で使用できます。
使用するだけ:
rdiff signature new.qcow2 /tmp/new.qcow2.rdiffsig
rdiff delta /tmp/new.qcow2.rdiffsig old.qcow2 new.qcow2--old.qcow2.rdiff
rm /tmp/new.qcow2.rdiffsig
xz new.qcow2--old.qcow2.rdiff
その後、old.qcow2
を削除できます。あなたが再びそれを必要とするとき、あなたはするでしょう:
xz -d < new.qcow2--old.qcow2.rdiff.xz > /tmp/new.qcow2--old.qcow2.rdiff
rdiff patch new.qcow2 /tmp/new.qcow2--old.qcow2.rdiff old.qcow2
rm /tmp/new.qcow2--old.qcow2.rdiff
これは連鎖させることができます-old.qcow2
からevenolder.qcow2
などのrdiffを作成できます。これはかなり遅いですが、スペース効率が非常に高くなります。通常、これを使用して古いバックアップを削除する必要はありません。 rdiff-backup プログラムもあり、ディレクトリ全体に対して同様のスキームを自動化します。