web-dev-qa-db-ja.com

異なるコンピューターで使用される仮想マシンの2つのインスタンスを同期する方法は?

私はデスクトップでVirtualBoxをかなり長い間使用しています。最近ノートブックを購入したので、Ubuntu仮想マシンを持ち歩き、ノートブックで行った変更をデスクトップに反映させたいと思っています。その逆も同様です。ホストオペレーティングシステムは、VirtualBox4を実行している両方のコンピューター上のWindows7です。

私が最初に考えたのは、仮想ディスクファイル自体を同期することでした。私が選択するツールはrsync、より具体的にはそのCygwinバージョンであり、--inplaceオプションを使用して書き込みを可能な限り削減します。しかし、それは実行不可能です。rsyncは、コンテナー内にあるファイルシステムの知識がないと、競合を検出して適切にマージする方法がないため、VMで個別に作業することができなくなります。

次のオプションは、実行中のマシンを相互にrsyncすることです。それはパッケージ管理を台無しにすることなく機能しますか?新しいカーネルやドライバーなどの更新以外に、手動で何かを行う必要がありますか?より良く機能する可能性のある他の解決策はありますか?

8
danielkza

双方向操作にrsyncを使用することは困難です。別の方法として unison を検討することをお勧めします。それは両方の方法で機能し、そうする前に何をするのかを教えてくれます。また、両側で同時に操作されたファイルを検出します。

VMの外部で同期を実行すると、説明した問題が発生します。VMの内部で実行した場合の結果は、に大きく依存します)同期するもの

  • ホームディレクトリの同期はまったく問題がないはずであり、私が推測する日常業務のほとんどを同期する必要があります。
  • パッケージマネージャーのデータを同期することは、おそらくいくつかのよく考えられた例外を除いて、ほとんどすべての完全な同期を行う場合にのみ意味があります。ただし、双方向同期では、これはほとんどの場合競合につながるため、rsyncスタイルのアプローチについてのみこれをお勧めします。
  • 同期/etcだけでなく、あなたの家もmost構成データを同期する必要がありますが、それでもパッケージマネージャーの動作にはほとんど影響しません。ただし、一方のVMにソフトウェアをインストールする場合は、もう一方のVMにも手動でインストールする必要があり、同期する必要があるのは、同期のみです。 、アップグレードによって構成ファイルが変更された場合。
2
MvG

仮想マシンを「同期」しようとしないことを検討してください。

考えてみてください。この方法でデスクトップとノートブックを「同期」することはありません。それらを個別のマシンとして扱い、Dropbox、Google Appsなどのサービス、またはUSBスティックを使用して、ファイルを操作します。同様に、2つのUbuntu VMを別々のコンピューターとして扱い、Ubuntu Oneや上記などのサービスを使用して、重要なファイルの同期を維持します。

インストールされているソフトウェアの同期を維持することに懸念がある場合は、

dpkg --list-selections

一方のマシンに具体的にインストールしたソフトウェアのリストを取得してから、もう一方のマシンに同じソフトウェアをインストールします。

1
Michael Hampton