Bagaimana cara menyinkronkan dua mesin virtual untuk digunakan di komputer yang berbeda?

8

Saya telah menggunakan VirtualBox di desktop saya cukup lama. Baru-baru ini membeli notebook, saya ingin dapat membawa mesin virtual Ubuntu saya, dan melakukan perubahan yang saya lakukan pada notebook yang disebarkan ke desktop, dan sebaliknya, ketika saya tiba / meninggalkan rumah. Sistem operasi host adalah Windows 7 di kedua komputer, menjalankan VirtualBox 4.

Pikiran pertama saya adalah menyinkronkan file disk virtual itu sendiri. Alat pilihan saya akan rsync, lebih khusus versi Cygwin itu, menggunakan --inplaceopsi untuk mengurangi menulis sebanyak mungkin. Tetapi itu tidak mungkin dilakukan: itu akan menghentikan saya untuk tidak pernah bekerja secara terpisah pada VM, karena rsynctidak memiliki cara untuk mendeteksi konflik dan menggabungkannya dengan benar tanpa sepengetahuan sistem file yang ada di dalam wadah.

Opsi selanjutnya adalah saling rsyncmenjalankan mesin yang sedang berjalan. Apakah itu akan berhasil tanpa mengacaukan manajemen paket? Apakah saya perlu melakukan sesuatu secara manual selain pembaruan seperti kernel atau driver baru? Apakah ada solusi lain yang bisa bekerja lebih baik?

danielkza
sumber
Saya pikir Anda harus membagi pertanyaan ini menjadi dua. Pertama bertanya tentang mirroring server. Kemudian ketika Anda (semoga) memiliki beberapa jawaban, tanyakan bagaimana cara mengimplementasikannya pada VM.
Nifle
kemungkinan lain adalah memiliki satu instance VM pada notebook, dan mengaksesnya dari sistem utama ketika di rumah.
Journeyman Geek
Anda hanya perlu menyinkronkan perangkat lunak dan dokumen - bukan seluruh VM - karena Anda tidak dapat memiliki dua mesin di jaringan dengan alamat MAC dan nama host yang sama. Itu akan menyebabkan kekacauan.
paradroid
@ Journeyman Geek: Saya belum memikirkan hal itu, itu memang bisa berhasil, tapi itu akan sedikit lebih lambat mengingat hard drive pada notebook saya merangkak dibandingkan dengan SSD di desktop saya.
danielkza
1
Apakah ada alasan Anda tidak menjalankan VM pada drive eksternal dan memindahkannya dari satu sistem ke sistem lainnya?
Dave M

Jawaban:

2

Menggunakan rsyncuntuk operasi dua arah adalah sulit; Saya sarankan Anda melihat unisonsebagai alternatif. Ini akan bekerja dua arah, dan memberi tahu Anda apa yang akan dilakukan sebelum melakukannya, dan juga mendeteksi file yang dimanipulasi secara bersamaan di kedua sisi.

Menjalankan sinkronisasi di luar VM akan memiliki masalah yang Anda gambarkan. Hasil ketika dijalankan di dalam VM akan sangat tergantung pada apa yang Anda sinkronkan.

  • Menyinkronkan direktori home Anda seharusnya tidak ada masalah sama sekali, dan saya harus menyinkronkan sebagian besar pekerjaan harian Anda, saya kira.
  • Menyinkronkan data manajer paket hanya akan masuk akal jika Anda melakukan sinkronisasi penuh hampir semua hal, mungkin dengan beberapa pengecualian yang dipertimbangkan dengan baik. Namun, dalam sinkronisasi dua arah, ini hampir selalu mengarah pada konflik, jadi saya hanya menyarankan ini untuk pendekatan gaya rsync.
  • Sinkronisasi /etcdan juga rumah Anda harus menyinkronkan sebagian besar data konfigurasi dan masih berdampak kecil pada apa yang dilakukan manajer paket. Tetapi jika Anda menginstal beberapa perangkat lunak pada satu VM, Anda harus menginstalnya secara manual pada yang lain juga, dan mungkin hanya akan melakukan sinkronisasi setelah melakukannya, jika upgrade mengubah beberapa file konfigurasi.
MvG
sumber
1

Pertimbangkan untuk tidak mencoba "menyinkronkan" mesin virtual sama sekali.

Pikirkan tentang hal ini: Anda tidak "menyinkronkan" desktop dan notebook Anda dengan cara ini. Anda memperlakukannya sebagai mesin terpisah dan menggunakan layanan seperti Dropbox, Google Apps, dll., Atau bahkan stik USB, untuk bekerja pada file Anda. Demikian pula, perlakukan kedua VM Ubuntu sebagai komputer yang terpisah dan gunakan layanan seperti Ubuntu One dan yang di atas untuk menjaga file penting Anda tetap sinkron.

Jika Anda khawatir tentang menjaga perangkat lunak yang diinstal dalam sinkronisasi, Anda dapat menggunakan

dpkg --list-selections

untuk mendapatkan daftar perangkat lunak yang telah Anda instal khusus di satu mesin, dan kemudian instal perangkat lunak yang sama di yang lain.

Michael Hampton
sumber