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.