Duy trì và đồng bộ hóa VirtualBox VM giữa hai máy tính riêng biệt


13

Tôi có một VirtualBox VM có dự án tôi đang thực hiện. Tôi muốn có thể sử dụng máy ảo này trên hai máy tính riêng biệt, vì vậy tôi có thể làm việc với nó tại nơi tôi đến vào thời điểm đó. Tôi đã thấy câu trả lời về việc chuyển, nhân bản và sao lưu máy ảo, nhưng không có gì có hai bản sao và giữ chúng đồng bộ.

Cách dễ nhất (ít nhất hoặc đơn giản nhất) hoặc tốt nhất (rủi ro thấp nhất của sự cố) để duy trì một hình ảnh VM trên nhiều máy tính là gì?

Lý tưởng nhất là tôi không chạy VM từ ổ USB vì một trong hai máy tính có rất ít cổng USB, nhưng nếu điều đó là tốt nhất, thì tôi sẽ lấy nó (tôi thực sự không chắc là có bất kỳ vấn đề nào với việc chạy VM từ ổ USB). Tuy nhiên, tôi sẽ lên kế hoạch sử dụng ổ USB để chuyển bất kỳ tệp nào giữa các máy tính.

Câu trả lời:


10

Tôi nghĩ rằng bạn có hai tùy chọn ở đây: tùy chọn đầu tiên là đặt (trong cài đặt Virtualbox trên cả hai máy tính) thư mục lưu trữ VM trên một loại ổ cứng di động hoặc từ xa; nếu các máy tính bạn sẽ sử dụng được liên kết với nhau trên mạng, bạn có thể sử dụng thư mục dùng chung, nếu không, tôi sợ rằng giải pháp duy nhất là ổ USB hoặc ổ cứng gắn ngoài. Để đặt thư mục, đi đến File > Preferences > General > Default Machine Folder. Tốc độ của khóa USB có thể là một giới hạn về hiệu suất tổng thể.

Giải pháp thứ hai, cũng yêu cầu một ổ đĩa hoặc một cái gì đó tương tự (nhưng chỉ để mang theo các tệp VM của bạn), là xuất và nhập thủ công VM mong muốn mỗi khi bạn cần mang nó đi. Bạn có thể làm điều này bằng cách chọn VM và đi cùng File > Export ApplianceFile > Import Appliance. Bằng cách xuất, một tệp có định dạng .ova sẽ được tạo, đó là tệp lưu trữ chứa tất cả các tệp cần thiết để sử dụng VM, bằng cách nhập tệp đó trong một cài đặt khác, bạn sẽ có cùng VM trên máy tính thứ hai. Bằng cách này, bạn đang sử dụng ổ đĩa đơn giản để mang theo các tệp của mình, rằng khi nhập lại sẽ được lưu trữ và truy cập từ máy tính của bạn, do đó tốc độ USB không phải là vấn đề đáng lo ngại.


5

Đối mặt với chính xác cùng một vấn đề và tôi nghĩ rằng tôi đã giải quyết nó.

Giả sử bạn có hai máy, A và B. Tạo / chuẩn bị vm của bạn trong A. Sau đó, hãy chụp nhanh hoặc tạo một bản sao được liên kết (cả hai công việc, nhưng các bước tiếp theo khác nhau, sẽ cung cấp một, bạn có thể giải quyết cái khác)

Bây giờ, hãy đảm bảo rằng bạn có một Virtualbox mới được cài đặt trong B. Sao chép ~ / .VirtualBox và ~ / VirtualBox VM từ A đến B bằng USB (xem xét rằng chúng ở các trang web ở xa)

Bây giờ, nếu bạn chọn cách chụp nhanh, thì hãy đồng bộ hóa thư mục ~ / VirtualBox VM / YourVM / Snapshots cho đến khi đủ lớn. Nếu nó lớn hơn, sau đó tạo một ảnh chụp nhanh khác trong A và sao chép thư mục YourVM sang B một lần và chỉ đồng bộ hóa tệp ảnh chụp mới này trong thư mục Ảnh chụp nhanh.

Nếu bạn chụp ảnh nhanh hoặc tạo một bản sao được liên kết trong A hoặc B, nghi thức này sẽ bị phá vỡ, được cảnh báo.

Đã thử nghiệm trong 5.0.20


câu trả lời rất hấp dẫn. bạn sẽ làm điều này vẫn còn hôm nay hay có cách nào tốt hơn?
l --'''''--------- '' '' '' '' '' ''

4

Tôi biết chủ đề này là một năm tuổi, nhưng nó là một kết quả tìm kiếm hàng đầu trên google cho vấn đề chia sẻ một VM giữa hai địa điểm.

VirtualBox cho phép bạn kết nối từ xa với máy ảo đang chạy bằng RDP. Nếu bạn không muốn VM chạy liên tục, hãy sử dụng một số cách để khởi chạy nó từ xa.

Có một tùy chọn cho "Cho phép nhiều kết nối", do đó bạn thậm chí sẽ không phải ngắt kết nối khỏi một vị trí trước khi kết nối từ một vị trí khác.

Nếu bạn không thể lưu trữ VM của riêng mình, một nhà cung cấp tìm kiếm nhanh trên google sẽ tìm thấy các nhà cung cấp hình ảnh VirtulaBox cho bạn.

Tôi chưa bao giờ thử tất cả những điều này ...


4

Tôi nghĩ câu trả lời của Sekhemty là cách duy nhất để làm những gì bạn muốn.

Nhưng tại sao máy ảo của bạn cần phải được di chuyển? Tại sao không di chuyển (các) dự án của bạn? Thiết lập dự án của bạn trong một git riêng và chỉ cần đẩy và kéo khi bạn cần.

Một phương pháp khác để thử, nếu bạn cần duy trì tính nhất quán của máy và bạn đang thay đổi nhiều, sẽ là sử dụng một thiết lập mơ hồ và đầu bếp / con rối. Điều này hoạt động bằng cách sử dụng một đầu bếp (là một viên đá quý ruby) và con rối (tôi chưa sử dụng con rối) để nói với những gì bạn muốn VM của bạn bao gồm và cài đặt.

Nó hoạt động bằng cách sử dụng một tập lệnh, sử dụng đầu bếp hoặc con rối và đọc mơ hồ kịch bản này khi khởi động VM. Nếu bạn muốn cài đặt bất cứ thứ gì, chỉ cần thêm nó vào tập lệnh và nếu nó chưa có thì nó sẽ được cài đặt khi bạn "mơ hồ"! Tôi phải mất một thời gian để làm quen với nó, đường cong học tập đủ lớn, nhưng nó rất hiệu quả khi bạn đã quen với nó và điều đó có nghĩa là bạn chỉ cần di chuyển xung quanh một tập tin kịch bản thay vì toàn bộ VM.

http://red-badger.com/blog/2013/02/21/automating-your-infr Hạ tầng-with-vagrant-chef-from-development-to-the-cloud/


2
Nó không chỉ là về mã (mà đi vào một kho lưu trữ) và cấu hình; Đó là vì VM là môi trường phát triển của tôi. Tôi bắt đầu sử dụng VirtualBox để tôi có thể làm việc với Ubuntu trên máy tính chạy Windows. Điều này sẽ mang lại cho tôi một môi trường phát triển nhất quán khi việc di chuyển môi trường không thuận tiện hơn so với việc di chuyển một bản sao của nó.
rsgoheen

Vậy thì mơ hồ và đầu bếp / con rối có vẻ như là tốt nhất. Theo cách đó, nếu bạn cần thay đổi một cái gì đó trong môi trường dev của mình, bạn không cần phải xuất và nhập VM, bạn chỉ cần thêm những gì bạn đã cài đặt vào tập lệnh của mình và vagrant sẽ xây dựng nó vào VM của bạn khi khởi động. Nó rất thuận tiện để có các phiên bản dev khác nhau, vì vagrant hoạt động với "hộp cơ sở (HĐH)" và xây dựng trên đó những gì kịch bản nói với nó, vì vậy bạn có thể có nhiều môi trường thử nghiệm nhưng chỉ sử dụng không gian của một.
vô hạn08

2

Bạn có thể rsync hình ảnh máy ảo giữa hai máy tính của bạn.


2
Một chút chi tiết sẽ làm cho điều này một câu trả lời tốt hơn. Bạn có thể xây dựng?
Dave M

2

Tuân thủ nguyên tắc KISS, sau khi các máy ảo đã được đăng ký và các thiết lập được điều chỉnh, chỉ cần rsynccác *.vditập tin qua khi cả hai bên đều được hỗ trợ xuống.

rsync -aPh <path-to-vm>/<diskname>.vdi <remote>:<path-to-vm>/

Tất nhiên, sẽ không có cách nào để "hợp nhất" các xung đột, vì vậy bạn phải bị xử lý kỷ luật về cách bạn thực hiện các thay đổi đối với VM và phản ánh những thay đổi này.

Trong khi đó, bạn có thể đặt hầu hết dữ liệu cá nhân của mình lên NAS để nó luôn cập nhật và có thể truy cập được từ tất cả các máy. Hơn nữa, bạn có thể gắn các đĩa .vdi bổ sung để chứa phân vùng trao đổi hoặc bộ lưu trữ tạm thời khác để không tăng kích thước hệ thống .vdi của bạn.

Nếu bạn đang ở trên windows, bạn nên cài đặt cygwin (hoặc msys2) cho chương trình ssh và rsync.


1

Một giải pháp khả thi, tùy thuộc vào trường hợp sử dụng của bạn, là một biến thể về câu trả lời của cjpembo.

Nếu hai máy tính riêng biệt đều trên cùng một mạng LAN tại cùng một vị trí, thì có thể chạy một máy ảo trên máy chủ ESXi hoặc tương tự, và chỉ cần sử dụng chức năng bảng điều khiển từ xa của các công cụ quản lý (hoặc thậm chí SSH) để truy cập nó từ cả hai máy tính khác.

Rõ ràng, nếu một trong những máy tính bạn muốn sử dụng VM với máy tính xách tay sẽ di chuyển xung quanh, thì đây có thể không phải là một giải pháp, đặc biệt nếu bạn phải chia sẻ một lượng lớn dữ liệu giữa "máy chủ" và "khách" môi trường.

Nếu VM tương đối khép kín, các khả năng điều khiển từ xa của VMware khá hiệu quả, vì vậy trừ khi bạn cần phát lại video trong VM, nó có thể hoạt động đủ tốt ngay cả từ xa để đủ tốt.


0

Tôi đã đạt được điều này bằng cách sử dụng một ssd bên ngoài trên đĩa USB c. VM sẽ được đặt trong đĩa ssd và được tham chiếu trong thiết lập hộp ảo của tôi trên cả hai máy tính xách tay. Tôi đã sử dụng USB 3.1 Gen2 Type-C (10Gbps), model 540MB / s và hiệu suất vẫn ổn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.