Откат снимка виртуальной машины: что он восстанавливает, а что нет
Снимок ВМ восстанавливает состояние диска и памяти гостя, но не действия удалённых учётных записей, копии общих файлов или записи, хранящиеся в другом месте: сначала определите границы отката.
Контрольная точка возвращает часть гостя назад и оставляет каждую другую систему там, где она была. Всё, что покинуло гостя, — доставленное сообщение, файл, скопированный на хост, действие учётной записи, принятое сайтом, — принадлежит системе, которая это получила, а не контрольной точке. У отката есть определённые локальные границы, и называть его стиранием значит превращать план восстановления в ложное утверждение. Таблица ниже — это контрольный список того, до чего восстановление действительно доходит.
Рабочий стол возвращается, удалённый сеанс — нет
Обычная жалоба приходит уже после случившегося. Виртуальная машина загружается в состоянии прошлой недели, история браузера исчезла, а служба, в которую вошёл пользователь, по-прежнему указывает сеанс как активный. Ничего не сломано; две системы никогда не были в одной транзакции.
| Where the effect landed | Who owns undoing it | How you verify it is gone |
|---|---|---|
| Guest virtual disk | The hypervisor, through the checkpoint you restore | The disk state matches the checkpoint's timestamp |
| Guest memory | Only a checkpoint type that saved memory | The guest resumes or cold-boots, as that type dictates |
| Host share or clipboard | The owner of that host path | The copied file is absent at its destination |
| Remote account or session | The service that accepted the action | The session list shows nothing active for that account |
| Mail or message queue | The mail system that delivered it | The message is gone from the recipient's mailbox, not from the guest |
Это несоответствие и есть урок. Контрольная точка восстанавливает то, что отслеживает гипервизор: виртуальное оборудование гостя и, в зависимости от типа, его память. Она не отслеживает таблицу сеансов веб-приложения, очередь доставки почтового сервера или папку загрузок коллеги. Прочитайте тип перед восстановлением, потому что тип решает, что восстановление вообще способно вернуть.
Что гипервизор на самом деле сохранил
Документация Microsoft по Hyper-V различает стандартные контрольные точки, которые захватывают память вместе с виртуальными дисками, и производственные, которые используют механизм согласованности данных и пропускают память. Стандартная контрольная точка продолжает с инструкции, которую выполнял гость; производственная вместо этого загружается с согласованного диска. Эта разница решает, вернёт ли восстановление работающий процесс или чистое начало. Не переносите поведение одного гипервизора на другой, потому что термины и механизм согласованности различаются между продуктами.
Microsoft также предупреждает, что контрольная точка не является резервной копией, и это предупреждение важно. Цепочка контрольных точек на одном томе разделяет судьбу этого тома, поэтому защищает от плохого изменения, а не от потерянного хоста.
Файлы, которые живут вне диска гостя
Общая папка — это файловая система хоста, предоставленная гостю, и откат гостя её не откатывает. Если пользователь скачал файл внутри гостя и скопировал его наружу через общий путь, у этой второй копии свой жизненный цикл и свой владелец. Восстановление гостя удаляет первую копию и оставляет вторую ровно там, куда её положили.
Спросите, кому принадлежит каждый путь, прежде чем обещать откат. Общий ресурс хоста, передача через буфер обмена и загрузка на облачный диск — это три пункта назначения, и только первый может находиться рядом с хранилищем гипервизора.
Там, где копию действительно нужно удалить, удалите её в месте назначения и зафиксируйте этот шаг отдельно. План восстановления, в котором перечислен только снимок, неполон так, что этого никто не замечает, пока копия не найдётся. Та же осторожность относится к журналам, которые хост записывал, пока гость работал.
Учётные записи, которых гипервизор никогда не видел
Всё, что служба приняла от гостя, — это запись службы, а не гостя. Гипервизор никогда не видел эту транзакцию и не может её обратить. Смена пароля, покупка, опубликованное сообщение и вызов API остаются в системе, которая их обработала. Восстановление образа диска до этой системы не доходит.
Состояние браузера делает несоответствие наглядным. Восстановленный гость может хранить более ранний cookie для службы, которая с тех пор сменила сеанс, поэтому пользователь выглядит вошедшим и получает молчаливый отказ, или выглядит вышедшим, пока служба всё ещё считает сеанс действительным. Отзыв сеанса в службе — единственная операция, которая его завершает.
Что восстановление не может отменить
Контрольная точка полезна для одобренного теста или эксперимента с конфигурацией, границы которого понятны. Это локальная отмена для локального состояния, более узкое обещание, чем кажется, и это не доказательство того, что хост, гипервизор или какая-либо внешняя система остались чистыми. VPN меняет путь, которым идут пакеты; он не делает программное обеспечение в госте безопасным для запуска. Два утверждения раздельны, и только одно из них о туннеле.
$cp = Get-VMSnapshot -VMName lab-desktop -Name baseline
Get-VMHardDiskDrive -VMSnapshot $cp | Select-Object ControllerType, ControllerNumber, ControllerLocation, Path
Первая строка превращает контрольную точку в объект, а вторая перечисляет диски, которые она охватывает, что отвечает на вопрос о границах доказательством, а не памятью. Смените и отзовите раскрытый секрет в службе, которой он принадлежит. Там, где замешан известный вредоносный код, используйте уполномоченную среду расследования и процесс реагирования организации, а не предположение, что снимок делает выполнение безопасным.
Запишите три вещи перед восстановлением: какое состояние гостя вы возвращаете, какие внешние системы всё ещё держат эффект и какой точке вы будете доверять после. Этот план — более сильное утверждение, чем машина, которая снова выглядит знакомой. Храните его вместе с заявкой, чтобы следующее восстановление начиналось с того же списка.