Làm cách nào để đồng bộ hóa hai phiên bản của một máy ảo được sử dụng trong các máy tính khác nhau?


8

Tôi đã sử dụng VirtualBox trên máy tính để bàn khá lâu. Gần đây tôi đã mua một máy tính xách tay, tôi muốn có thể mang theo máy ảo Ubuntu của mình và có những thay đổi tôi thực hiện trên máy tính xách tay truyền đến máy tính để bàn và ngược lại, khi tôi đến / rời khỏi nhà. Hệ điều hành máy chủ là Windows 7 trên cả hai máy tính, chạy VirtualBox 4.

Suy nghĩ đầu tiên của tôi là tự đồng bộ hóa các tệp đĩa ảo. Công cụ lựa chọn của tôi sẽ là rsync, cụ thể hơn là phiên bản Cygwin của nó, sử dụng --inplacetùy chọn để giảm ghi càng nhiều càng tốt. Nhưng điều đó là không thể: nó sẽ ngăn tôi làm việc riêng trên các máy ảo, bởi vì rsyncsẽ không có cách nào để phát hiện xung đột và hợp nhất chúng một cách hợp lý mà không có kiến ​​thức về các hệ thống tập tin nằm trong các thùng chứa.

Tùy chọn tiếp theo sẽ là rsyncing các máy đang chạy với nhau. Điều đó sẽ làm việc mà không làm rối tung quản lý gói? Tôi có cần phải làm bất cứ điều gì thủ công ngoài các bản cập nhật như kernel hoặc trình điều khiển mới không? Có giải pháp nào khác có thể làm việc tốt hơn không?


Tôi nghĩ bạn nên chia câu hỏi này thành hai. Trước tiên hãy hỏi về máy chủ phản chiếu. Sau đó, khi bạn (hy vọng) có một vài câu trả lời, hãy hỏi cách triển khai chúng trên VM.
Nifle

một khả năng khác là có một phiên bản VM trên máy tính xách tay và truy cập từ xa từ hệ thống chính khi ở nhà.
Journeyman Geek

Bạn sẽ chỉ phải đồng bộ hóa phần mềm và tài liệu - không phải toàn bộ máy ảo - vì bạn không thể có hai máy trên mạng có cùng địa chỉ MAC và tên máy chủ. Điều đó sẽ gây ra tình trạng hỗn loạn.
paradroid

@JTHERman Geek: Tôi đã không nghĩ về điều đó, nó thực sự có thể hoạt động, nhưng nó sẽ chậm hơn một chút khi xem xét ổ cứng trên máy tính xách tay của tôi bò so với SSD trên máy tính để bàn của tôi.
danielkza

1
Có lý do gì bạn không chạy VM trên một ổ đĩa ngoài và chuyển nó từ hệ thống này sang hệ thống khác?
Dave M

Câu trả lời:


2

Sử dụng rsynccho các hoạt động hai chiều là khó khăn; Tôi muốn đề nghị bạn xem unisonnhư là một thay thế. Nó sẽ hoạt động cả hai cách, và cho bạn biết những gì nó sẽ làm trước khi làm như vậy, và cũng phát hiện các tệp được thao tác đồng thời ở cả hai bên.

Chạy đồng bộ hóa bên ngoài VM sẽ có các vấn đề bạn mô tả. Kết quả khi chạy bên trong VM sẽ phụ thuộc rất nhiều vào những gì bạn đồng bộ hóa.

  • Đồng bộ hóa thư mục nhà của bạn sẽ không có vấn đề gì cả, và tôi nên đồng bộ hóa hầu hết các công việc hàng ngày của bạn.
  • Đồng bộ hóa dữ liệu quản lý gói sẽ chỉ có ý nghĩa nếu bạn thực hiện đồng bộ hóa đầy đủ hầu hết mọi thứ, có lẽ với một vài ngoại lệ được xem xét tốt. Tuy nhiên, trong đồng bộ hai chiều, điều này hầu như sẽ luôn dẫn đến xung đột, vì vậy tôi chỉ khuyên điều này cho cách tiếp cận theo kiểu rsync.
  • Đồng bộ hóa /etccũng như nhà của bạn nên đồng bộ hóa hầu hết dữ liệu cấu hình và vẫn ít ảnh hưởng đến những gì người quản lý gói làm. Nhưng nếu bạn cài đặt một số phần mềm trên một VM, bạn cũng sẽ phải cài đặt nó trên phần mềm khác và có lẽ chỉ nên đồng bộ hóa sau khi thực hiện, trong trường hợp nâng cấp đã thay đổi một số tệp cấu hình.

1

Cân nhắc không cố gắng "đồng bộ hóa" máy ảo.

Hãy suy nghĩ về điều đó: Bạn không "đồng bộ hóa" máy tính để bàn và máy tính xách tay của mình theo cách này. Bạn coi chúng như những máy riêng biệt và sử dụng các dịch vụ như Dropbox, Google Apps, v.v. hoặc thậm chí là một thanh USB để hoạt động trên các tệp của bạn. Tương tự, coi hai máy ảo Ubuntu là các máy tính riêng biệt và sử dụng các dịch vụ như Ubuntu One và các loại trên để giữ cho các tệp quan trọng của bạn được đồng bộ hóa.

Nếu bạn lo lắng về việc giữ cho phần mềm được cài đặt đồng bộ hóa, bạn có thể sử dụng

dpkg --list-selections

để có danh sách các phần mềm bạn đã cài đặt riêng trên một máy, sau đó cài đặt cùng một phần mềm trên máy kia.

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.