Под капотом · Виртуализация · Снимки
Снимок диска (внутренний)
Пользователь делает снимок диска внутри самого файла образа. Вот какую команду он использует:
Команда
virsh snapshot-create-as vm1 snap1 --disk-only \ --diskspec vda,snapshot=internal
После выполнения команды новых файлов нет - qcow2 переключает таблицу, но гость на это время замирает.
-
пользователь 1. Пользователь вводит команду внутреннего снимка
snapshot="internal"
Так умеет только qcow2: несовместимо с внешним data-файлом.
-
QEMU 2. QEMU копирует активную L1-таблицу
copy active L1 → snapshot L1 refcount++ для всех L2 и кластеров
Гость начинает видеть другой набор хостовых кластеров - это и есть «точка во времени».
-
диск / RAM 3. Запись идёт через COW
write → COW → старая версия видна только снапшоту
Файл растёт только на объём изменений, а не на весь размер диска.
-
диск / RAM 4. В заголовке появляется запись
snapshot table entry: L1 offset, время, name/ID, VM state size
Поле VM state означает, что внутренний снимок может содержать и память.
-
гость 5. Гость чувствует паузу
внутренние снимки в QEMU: «lengthy downtime»
Для живых ВМ это плохой выбор: пауза несовместима с заморозкой I/O.