Làm thế nào để máy ảo chụp nhanh hoạt động?


16

Đã sử dụng phần mềm hình ảnh ổ đĩa trong hơn một thập kỷ, tôi thấy khó hiểu rằng Máy ảo có thể được chụp nhanh và khôi phục trong vài giây, trong khi hình ảnh ổ đĩa thường mất hàng giờ.

Tôi có thể chụp nhanh một VM, cài đặt lại vào một HĐH khác, sau đó thực hiện khôi phục và bằng cách nào đó một cách kỳ diệu trong vài giây VM cũ của tôi đã sao lưu hoàn hảo ở trạng thái trước đó.

Làm thế nào điều này có thể xảy ra? Máy chủ VM thực sự làm gì với VM để thực hiện điều này?

Câu trả lời:


16

Khi bạn tạo một ảnh chụp nhanh, tất cả các thay đổi được thực hiện trên hình ảnh đĩa ảo ban đầu không thực sự được thực hiện trên chính hình ảnh đó, nhưng chúng được ghi vào một tệp đĩa (ảnh chụp nhanh) mới. Hành động này rất nhanh vì không cần sao chép toàn bộ ảnh đĩa ảo, vì nó hoạt động trên bản sao theo nguyên tắc ghi (chỉ thay đổi, tức là các khối được viết được ghi thành ảnh chụp nhanh). Lưu ý rằng hình ảnh chụp nhanh phát triển khi bạn thay đổi ngày càng nhiều dữ liệu trên hình ảnh đĩa ảo ban đầu của bạn (vẫn giữ nguyên như thời điểm bạn chụp ảnh nhanh). Nó có thể sẽ nhỏ hơn nhiều so với ảnh gốc, nhưng trong trường hợp xấu nhất, nó sẽ có cùng kích thước (nếu tất cả các khối được thay đổi).

Có hai hành động bạn có thể thực hiện với hình ảnh chụp nhanh mới này:

  1. Hủy ảnh chụp nhanh : hành động rất nhanh. Trình quản lý máy ảo chỉ cần xóa tệp ảnh chụp nhanh và trả lại quyền kiểm soát vào ảnh đĩa gốc hoặc một số ảnh chụp nhanh trước đó
  2. Hợp nhất ảnh chụp nhanh : trình quản lý máy ảo hợp nhất các khối đã thay đổi (nghĩa là ảnh chụp nhanh) với ảnh gốc. Hành động này sẽ mất thời gian tùy thuộc vào số lượng khối từ ảnh gốc đã thay đổi. Một lần nữa, trường hợp xấu nhất là toàn bộ ảnh gốc sẽ bị ghi đè trong trường hợp tất cả các khối từ ảnh gốc đã được viết sau khi tạo ảnh chụp nhanh.

Tất cả các quy trình được mô tả ở trên cũng hoạt động cho nhiều ảnh chụp nhanh. Trong trường hợp đó, ảnh gốc có thể là một ảnh chụp nhanh và ảnh chụp nhanh tiếp theo có thể chặn tham chiếu trên ảnh chụp nhanh (đầu tiên) đó. Bằng cách này, bạn có thể có nhiều ảnh chụp nhanh mà bạn có thể loại bỏ hoặc hợp nhất một cách dễ dàng.


1
loại bỏ ảnh chụp nhanh, giống như bất kỳ quá trình xóa ảnh nào, thực sự có thể khá chậm, nếu bạn bật chế độ xóa sạch sau khi xóa. Đây là một tính năng bảo mật để xóa sạch không gian được sử dụng bởi một hình ảnh hoặc ảnh chụp nhanh trước khi các VM khác được giải phóng để sử dụng, nếu không, bằng cách sử dụng đọc khối ở mức độ thấp, có thể đọc được dữ liệu mà VM trước đó đã sử dụng. Và bất kỳ giải pháp ảo hóa nào không có tính năng này đều có một lỗ hổng bảo mật rất lớn trong đó
dyasny 16/211

Tôi đã cố gắng giải thích kịch bản tạo nhiều ảnh chụp nhanh và cách thay đổi với mỗi ảnh chụp nhanh được giữ lại. Xem phần giải thích ngắn này về hoạt động của các ảnh chụp nhanh của VMware: cubrace.com/2012/02/ Thẻ
Piyush Chordia

5

Với ảnh chụp nhanh, phần mềm ảo hóa của bạn phải theo dõi bốn điều: trạng thái CPU, RAM, cấu hình (có bao nhiêu card mạng trong VM?) Và đĩa. Tôi bỏ qua ba điều đầu tiên vì chúng không phải là lượng dữ liệu khổng lồ, phần mềm chỉ có thể tạo các bản sao của cấu trúc dữ liệu tương đối nhỏ và lưu trữ chúng trong một tệp. Vì vậy, điều đó chỉ để lại các snapshot để giải thích.

Trước hết, những gì VM thấy là một đĩa cứng thực sự chỉ là một tập hợp các tệp trên hệ thống tệp máy chủ. Để thực hiện một ảnh chụp nhanh, phần mềm máy ảo sẽ lấy đĩa của VM tại một thời điểm nhất định, bảo quản nó, mở một tệp đĩa trống mới và thực hiện sơ đồ sao chép trên mỗi lần truy cập đĩa tiếp theo.

Giả sử tệp đĩa của bạn là BigVM.disk. Bạn chụp nhanh và bây giờ phần mềm VM của bạn đổi tên đĩa của bạn thành BigVM-s1.disk, sau đó tạo một BigVM.disk trống mới. Khi VM của bạn đang chạy, tất cả các yêu cầu đọc đều đi qua BigVM.disk. Nếu tệp đó không có mục nhập cho phần đĩa mà VM của bạn muốn, thì dữ liệu từ BigVM-s1.disk được trả về. Khi viết, dữ liệu được ghi vào BigVM.disk thay vì BigVM-s1.disk. Một tương lai được đọc cho cùng một khu vực đó sẽ trả về dữ liệu từ BigVM.disk thay vì ảnh chụp nhanh ban đầu có trong BigVM-s1.disk. BigVM-s1.disk chứa trạng thái đĩa cứng VM của bạn kể từ ảnh chụp nhanh của bạn, trong khi BigVM.disk chứa tất cả các khác biệt đối với đĩa của bạn kể từ ảnh chụp nhanh đó.

Điều gì xảy ra khi bạn trở lại một ảnh chụp cũ? Phần mềm VM loại bỏ nội dung của BigVM.disk và bắt đầu lại, với một BigVM.disk trống mới vẫn còn trỏ đến BigVM-s1.disk.


2

Nó chỉ ghi sự khác biệt trong các tệp được thay đổi từ thời điểm chụp nhanh chứ không phải đĩa máy ảo hoàn chỉnh. Giống như unix diff và patch, ngoại trừ một phiên bản phức tạp hơn khác ở mức nhị phân và biết về các chi tiết khác của máy ảo của bạn.


1

Ít nhất là trong các snapshot của VMware, điều xảy ra là snapshot về cơ bản là một tín hiệu cho VMX để bắt đầu một điểm kiểm tra mới cho việc ghi đĩa và trạng thái máy. Tùy thuộc vào việc VM của bạn bị tắt hay bật, việc khôi phục ảnh chụp nhanh có thể chỉ đơn giản là chỉ cần gỡ bỏ mọi thứ xảy ra trước điểm kiểm tra đó. Mặt khác, tất cả các lĩnh vực đĩa VM của bạn trở thành bản sao khi ghi, điều đó có nghĩa là khi bạn thực hiện khôi phục ảnh chụp nhanh, nó chỉ phải viết lại các khu vực đã thay đổi kể từ khi bạn chụp ảnh nhanh. Vì vậy, đó là lý do tại sao nó nhanh hơn.


-1

Làm việc trên các snapshot của VMware và nội bộ của nó được giải thích tốt nhất @ http://www.pcclm.com/2012/02/virtual-machine-snapshots-in-vmware.html


3
Chào mừng bạn đến với ServerFault! Mặc dù liên kết đến tài liệu tham khảo bên ngoài được khuyến khích, chúng tôi cũng hy vọng mỗi câu trả lời sẽ được hoàn thành ngay cả khi các liên kết của bạn bị hỏng trong tương lai. Bạn có thể muốn chỉnh sửa câu trả lời này và thêm chi tiết bổ sung.
Skyhawk
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.