Рейтинг:1

Где libvirt хранит снимки оперативной памяти?

флаг in

Насколько я понимаю, когда я запускаю эту команду для создания моментального снимка работающего домена:

virsh snapshot-create-as myvm snapshot1

что в каждом файле образа диска создаются не только внутренние моментальные снимки, но и состояние оперативной памяти где-то сохраняется. Поэтому, если я позже вернусь к этому снимку, все в ОЗУ будет восстановлено на момент создания снимка.

Я вижу моментальные снимки, перечисленные в образах дисков qcow2, и я вижу XML-файл, созданный для описания моментального снимка и конфигурации домена, но где хранится реальное содержимое оперативной памяти? И является ли он «постоянным», поэтому, например, если я перезагружу хост-компьютер, сохраненное состояние ОЗУ домена будет по-прежнему доступно, если я решу вернуться к этому моментальному снимку?

Рейтинг:1
флаг ca

Формат qcow2 обеспечивает постоянный внутреннее хранилище для памяти виртуальной машины. При создании моментального снимка работающих виртуальных машин с поддержкой qcow2 состояние их ОЗУ сбрасывается в тот же самый файл qcow2, который используется для хранения.

От официальная страница qcow2:

Каждый снимок описывается заголовком:

  typedef структура QCowSnapshotHeader {
      /* заголовок выровнен по 8 байтам */
      uint64_t l1_table_offset;

      uint32_t l1_size;
      uint16_t id_str_size;
      uint16_t имя_размер;

      uint32_t дата_сек;
      uint32_t дата_nsec;

      uint64_t vm_clock_nsec;

      uint32_t vm_state_size;
      uint32_t дополнительный_размер_данных; /* для расширения */
      /* следуют дополнительные данные */
      /* следует id_str */
      /* следует имя */
  } QCowSnapshotHeader;

что далее объясняет:

vm_state_size дает размер состояния виртуальной машины, которое было сохраняется как часть этого снимка. Состояние сохраняется в местоположении исходная таблица L1, сразу после заголовка изображения.


С другой стороны, что происходит при создании моментального снимка файла необработанного изображения (т. е. без использования qcow2)? Libvirt называет такие моментальные снимки внешний снимок (сравните с внутренний снимок файла qcow2), потому что новый файл qcow2 создается и связывается с исходным (и теперь доступным только для чтения) необработанным файлом. Затем Libvirt сохраняет состояние виртуальной машины (т. е. содержимое ее ОЗУ) в определенном файле, как правило, в подкаталоге /var/lib/libvirt/. Файлы метаданных XML, наконец, создаются, чтобы «приклеить» файл дампа к состоянию диска, сохраненному в файле наложения.

Поддержка Libvirt для внешних моментальных снимков не очень надежна; например (если в последнее время ничего не изменилось), вы можете создать внешний снимок с помощью одной команды, но вам потребуется несколько сложных команд, чтобы удалить/откатить его. В то же время, для рабочей нагрузки RedHat официально рекомендует использовать внешние снэпшоты, потому что они несколько надежнее и быстрее, чем длинная цепочка внутренних снэпшотов (и они продают RHEV, который скрывает сложность внешних снэпшотов от пользователя).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.