Điểm:1

Ảnh chụp nhanh RAM được libvirt lưu trữ ở đâu?

lá cờ in

Tôi hiểu rằng khi tôi chạy lệnh này để tạo ảnh chụp nhanh của miền đang chạy:

virsh snapshot-create-as myvm snapshot1

đó không chỉ là các ảnh chụp nhanh nội bộ được tạo trong mỗi tệp ảnh đĩa mà trạng thái RAM cũng được lưu ở đâu đó. Vì vậy, nếu sau này tôi quay lại ảnh chụp nhanh đó, mọi thứ trong RAM sẽ được khôi phục về thời điểm tạo ảnh chụp nhanh.

Tôi thấy ảnh chụp nhanh được liệt kê trong ảnh đĩa qcow2 và tôi thấy tệp XML được tạo để mô tả ảnh chụp nhanh và cấu hình miền, nhưng nội dung thực sự của RAM được lưu trữ ở đâu? Và nó có phải là "vĩnh viễn" không, vì vậy nếu tôi khởi động lại máy chủ chẳng hạn, trạng thái RAM đã lưu của miền sẽ vẫn khả dụng nếu tôi chọn hoàn nguyên về ảnh chụp nhanh đó?

Điểm:1
lá cờ ca

The qcow2 format does provide permanent internal storage for the virtual machine memory. When snapshotting a running qcow2-backed virtual machines, its RAM state is dumped inside the very same qcow2 file used for storage.

From the official qcow2 page:

Each snapshot is described by a header:

  typedef struct QCowSnapshotHeader {
      /* header is 8 byte aligned */
      uint64_t l1_table_offset;

      uint32_t l1_size;
      uint16_t id_str_size;
      uint16_t name_size;

      uint32_t date_sec;
      uint32_t date_nsec;

      uint64_t vm_clock_nsec;

      uint32_t vm_state_size;
      uint32_t extra_data_size; /* for extension */
      /* extra data follows */
      /* id_str follows */
      /* name follows  */
  } QCowSnapshotHeader;

which further explains:

vm_state_size gives the size of the virtual machine state which was saved as part of this snapshot. The state is saved to the location of the original L1 table, directly after the image header.


On the other hand, what does happen when taking a snapshot of a raw image file (ie: not using qcow2)? Libvirt calls these kind of snapshot an external snapshot (compare it to the internal snapshot of a qcow2 file), because a new qcow2 file is generated and linked to the original (and now read-only) raw file. Libvirt then saves the virtual machine state (ie: its RAM content) in a specific file, generally inside a subdir of /var/lib/libvirt/. A metadata XML files is finally created to "glue" the dump file to the disk state saved in the overlay file.

Libvirt support for external snapshot is not very robust; for example (if things have not changed very recently) you can create an external snapshot with a single command but you need multiple complex command to delete/revert it. At the same time, for production workload RedHat officially recommend using external snapshots because they are somewhat more robust and faster than a long chain of internal snapshots (and they sell RHEV which hides the complexity of external snapshots away from the user).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.