web-dev-qa-db-ja.com

仮想マシンの増分バックアップ

現在、多数の物理マシンを実行しています。バックアップには、本質的にrsyncのラッパーであるdirvishを使用し、段階的に実行しています。現在、多数のVMを実行する新しいマシンを本番環境にプッシュしています。理想的には、VM自体からファイルレベルのバックアップを実行するのではなく、仮想マシンのイメージをバックアップしたいと思います。各イメージが1つの巨大なファイルになり、何かが変更されるたびに新しいバックアップが必要になることを考えると、これを段階的に行う方法はありますか?他の人はここでVMバックアップをどのように行いますか?それらを物理マシンとして扱うだけですか?

重要な場合は、Xenを使用して実際に仮想化を行っています。

ありがとう

6
Cian

rsyncバックアップスクリプトにいくつかの小さな変更を加えるだけで、現在行っていることを続けることができます。

rsyncは、物理マシンから実行できるのと同じように、VM内で実行し、sshを介してリモートホストにバックアップできます。たとえば、i backup/etc、/ usr/local /、/ home、/varと、すべてのマシンからバックアップサーバーの/ var/backups/hosts/$ HOSTNAMEへのその他のいくつかのディレクトリ(次に、rsyncを使用して別のマシンとテープにバックアップされます)。データベースサーバーもスクリプトを実行します。 rsyncの前にデータベースをテキストにダンプします。

復元するには、新しいVM(クローンを作成できるさまざまなサイズの最小インストールイメージをいくつか用意しておくと便利です)を作成し、バックアップしたファイルをrsyncして戻します。

ところで、私はほとんどすべてのマシンでdebianを実行しているので、通常は/ bin、/ sbin、/ usrのバックアップを気にしません。ローカルのDebianミラーにパッケージ化したプログラムをバックアップするのに、ディスク容量と時間を浪費することになります。代わりに、インストールされているパッケージのリストをdpkg --get-selections "*"> $ hostname.selでバックアップし、cat $ hostnameで復元します。 sel | dpkg --set-selections; apt-get dselect-upgrade

これは私が現在物理マシンのクローンを作成する方法です...私はいくつかのマシンを仮想(KVMで実行)に変換している途中であり、これまでのところ、マイナーな変更以上のものを変更する必要がある理由は見つかりませんでしたそのための手順。

最近のある日、私はrsyncではなくrdiff-backupを使用するように変更し、オンラインでもバージョン管理されたバックアップを作成できるようにします。

最後に、 http://libvirt.org/ Webサイトを検索するか、「+ libvirt + rsync」をグーグルで検索することもできます。誰かがVM画像を直接rsyncする効率的な方法を思いついたかもしれません。

4
cas

マシンの状態が変化するため、一時的な(したがって破損した)状態でデータをキャプチャするリスクがあるため、増分バックアップを簡単に実行できるかどうかはわかりません。私がそれを行う唯一の方法は、コピーを行うためにVMをシャットダウンすることです。

コピーを取得するには、何らかの形でスナップショットを使用する特別なソフトウェアが必要になると思います。

または、DRDBを使用して2つのシステム間でファイルシステムをリアルタイムでコピーすることもできます。これにより、VMイメージをホストするファイルシステムがフェイルオーバーシステムに自動的にコピーされます。

0

Xen固有のVMイメージを使用することはできませんが、rsyncを使用してVMwareイメージをバックアップします。コピーする前にイメージを一時停止またはシャットダウンする必要があります。代わりにLVMスナップショットを使用しても機能しますが、変更を保持するには、巨大なスナップショットパーティションが必要です。

次のrsyncコマンドを使用して、cifsにマウントされたリモートサーバーにバックアップします。

rsync -irvtuh --inplace --delete --timeout=120 --whole-file --stats "${DIR}" /mnt/backup

インクリメンタルコピーは、差分を計算するために必要なCPUの価値がありませんでしたが、VMイメージの一部は変更されません-それらのほとんどのみ:(

0
gbjbaanb