Восстановление предыдущего состояния виртуальных машин с помощью контрольных точек
Одно из главных преимуществ виртуализации — это возможность сохранять состояние виртуальной машины. В Hyper-V для этого используются контрольные точки виртуальной машины. Контрольную точку виртуальной машины можно создать перед изменением конфигурации программного обеспечения, применением обновления или установкой нового ПО. Если после изменения системы возникла проблема, виртуальную машину можно вернуть в состояние на момент создания контрольной точки.
Hyper-V в Windows 10 включает два типа контрольных точек:
Стандартные контрольные точки — контрольные точки, при инициировании которых создается моментальный снимок виртуальной машины и состояния ее памяти. Моментальный снимок не является полной резервной копией и может приводить к проблемам с согласованностью данных в системах, которые реплицируют данные между различными узлами, например Active Directory. До Windows 10 Hyper-V предоставлял только стандартные контрольные точки (прежде называвшиеся моментальными снимками).
Рабочие контрольные точки — контрольные точки, при инициировании которых создается согласованная (на уровне данных) резервная копия виртуальной машины при помощи службы теневого копирования томов или "заморозки" файловой системы (на виртуальной машине Linux). Моментальный снимок состояния памяти для виртуальной машины не создается.
По умолчанию используются рабочие контрольные точки, но с помощью диспетчера Hyper-V или PowerShell это можно изменить.
Примечание. Чтобы контрольная точка и моментальный снимок были взаимозаменяемы, в модуле Hyper-V PowerShell создается несколько псевдонимов.
В этом документе используется термин "контрольная точка", но в аналогичных командах также может использоваться термин "моментальный снимок".
Изменение типа контрольных точек
Использование диспетчера Hyper-V
- Откройте диспетчер Hyper-V.
- Щелкните правой кнопкой мыши виртуальную машину и выберите Параметры.
- В разделе "Управление" выберите Контрольные точки.
- Выберите необходимый тип контрольной точки.
PowerShell
Чтобы изменить контрольную точку с помощью PowerShell, можно использовать следующие команды:
Задать стандартную контрольную точку:
Set-VM -Name <vmname> -CheckpointType Standard
Задать рабочую контрольную точку. При сбое рабочей контрольной точки создается стандартная контрольная точка:
Set-VM -Name <vmname> -CheckpointType Production
Задать рабочую контрольную точку. При сбое рабочей контрольной точки стандартная контрольная точка не создается.
Set-VM -Name <vmname> -CheckpointType ProductionOnly
Создание контрольных точек
Создает контрольную точку того типа, который настроен для данной виртуальной машины. Сведения о том, как изменить тип контрольной точки, см. в разделе Изменение типа контрольной точки (выше в этом же документе).
Использование диспетчера Hyper-V
Чтобы создать контрольную точку, выполните указанные ниже действия.
- В диспетчере Hyper-V выберите виртуальную машину.
- Щелкните имя этой виртуальной машины правой кнопкой мыши и выберите пункт Контрольная точка.
- По завершении всего процесса данная контрольная точка будет отображаться в разделе Контрольные точкидиспетчера Hyper-V.
PowerShell
Создайте контрольную точку с помощью команды CheckPoint-VM.
Checkpoint-VM -Name <VMName>
После создания просмотрите список контрольных точек какой-либо виртуальной машины с помощью команды Get-VMCheckpoint.
Get-VMCheckpoint -VMName <VMName>
Применение контрольных точек
Если вы хотите вернуть виртуальную машину в состояние на определенный момент времени, примените существующую контрольную точку.
Использование диспетчера Hyper-V
- В разделе Виртуальные машиныдиспетчера Hyper-V выберите виртуальную машину.
- В разделе "Контрольные точки" щелкните правой кнопкой мыши контрольную точку, которую хотите использовать, и выберите пункт Применить.
- Появится диалоговое окно со следующими параметрами:
- Создать и применить контрольную точку: создает новую контрольную точку виртуальной машины до применения более ранней контрольной точки.
- Применить: применяет только выбранную контрольную точку. Это действие нельзя отменить.
- Отменить: закрывает диалоговое окно, не выполняя никаких действий.
Выберите один из вариантов применения для создания и применения контрольной точки.
PowerShell
Чтобы просмотреть список контрольных точек виртуальной машины, выполните команду Get-VMCheckpoint.
Get-VMCheckpoint -VMName <VMName>
Чтобы применить контрольную точку, выполните команду Restore-VMCheckpoint.
Restore-VMCheckpoint -Name <checkpoint name> -VMName <VMName> -Confirm:$false
Переименование контрольных точек
В определенной точке могут быть созданы много контрольных точек. Предоставление им понятного имени упрощает запоминание подробностей о состоянии системы при создании контрольной точки.
По умолчанию имя контрольной точки — имя виртуальной машины в сочетании с указанием даты и времени создания контрольной точки. Стандартный формат:
virtual_machine_name (MM/DD/YYY -hh:mm:ss AM\PM)
Имя должно содержать не более 100 знаков и не может быть пустым.
Использование диспетчера Hyper-V
- В диспетчере Hyper-V выберите виртуальную машину.
- Щелкните правой кнопкой мыши контрольную точку и выберите команду Переименовать.
- Введите новое имя для контрольной точки. Длина этого имени не должна превышать 100 знаков. Поле не может быть пустым.
- По завершении нажмите клавишу ВВОД.
PowerShell
Rename-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name> -NewName <new checkpoint name>
Удаление контрольных точек
Удаление контрольных точек помогает освободить пространство на узле Hyper-V.
Контрольные точки хранятся в виде AVHDX-файлов в том же расположении, что и VHDX-файлы для виртуальной машины. При удалении контрольной точки Hyper-V для удобства объединяет AVHDX- и VHDX-файлы. После завершения AVHDX-файл данной контрольной точки будет удален из файловой системы.
Не следует удалять непосредственно AVHDX-файлы.
Использование диспетчера Hyper-V
Чтобы полностью удалить контрольную точку:
- В диспетчере Hyper-V выберите виртуальную машину.
- В разделе Контрольные точки щелкните правой кнопкой мыши контрольную точку, которую хотите удалить, и выберите пункт "Удалить". Можно также удалить контрольную точку и все последующие контрольные точки. Для этого щелкните правой кнопкой мыши самую раннюю контрольную точку, которую хотите удалить, и выберите элемент Удалить поддерево контрольных точек.
- Возможно, вам будет предложено подтвердить удаление контрольной точки. Убедитесь, что выбрана правильная контрольная точка, и нажмите Удалить.
PowerShell
Remove-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name>
Экспорт контрольных точек
Экспорт объединяет контрольные точки в пакет как виртуальную машину, так что контрольную точку можно переместить в новое место. После выполнения импорта контрольная точка восстанавливается как виртуальная машина. Экспортированные контрольные точки можно использовать для резервного копирования.
PowerShell
Export-VMCheckpoint -VMName <virtual machine name> -Name <checkpoint name> -Path <path for export>
Включение и отключение контрольных точек
- В диспетчере Hyper-V щелкните имя нужной виртуальной машины правой кнопкой мыши и выберите Параметры.
- В разделе Управление выберите элемент Контрольные точки.
- Чтобы разрешить создание контрольных точек для этой виртуальной машины, установите флажок "Включить контрольные точки". Это поведение по умолчанию.
Чтобы отключить контрольные точки, снимите флажок Включить контрольные точки. - Нажмите кнопку Применить, чтобы применить изменения. После этого нажмите кнопку ОК, чтобы закрыть диалоговое окно.
Настройка расположения контрольной точки
Если у виртуальной машины нет контрольных точек, можно изменить место, в котором хранятся файлы конфигурации контрольных точек и файлы состояний сохранения.
- В диспетчере Hyper-V щелкните имя нужной виртуальной машины правой кнопкой мыши и выберите Параметры.
- В разделе Управление выберите Контрольные точки или Расположение файла контрольной точки.
- В окне Расположение файла контрольной точки введите путь к папке, где нужно хранить эти файлы.
- Нажмите кнопку Применить, чтобы применить изменения. После этого нажмите кнопку ОК, чтобы закрыть диалоговое окно.
По умолчанию для хранения файлов конфигурации контрольных точек используется расположение: %systemroot%\ProgramData\Microsoft\Windows\Hyper-V\Snapshots
.
Демонстрация контрольной точки
В следующем упражнении вы научитесь создавать и применять стандартную и рабочую контрольные точки. В этом примере вы внесете простое изменение в виртуальную машину и увидите изменение ее поведения.
Стандартная контрольная точка
- Войдите в виртуальную машину и создайте текстовый файл на рабочем столе.
- Откройте файл в Блокноте и введите текст "Это стандартная контрольная точка". Не сохраняйте файл и не закрывайте Блокнот.
- Инструкции по изменению контрольной точки на стандартную см. здесь.
- Создание новой контрольной точки.
Применение стандартной контрольной точки с помощью диспетчера Hyper-V
Теперь, когда контрольная точка создана, внесите изменения в виртуальную машину, а затем примените контрольную точку, чтобы вернуть виртуальную машину в сохраненное состояние.
- Если текстовый файл еще открыт, закройте его и удалите с рабочего стола виртуальной машины.
- Откройте диспетчер Hyper-V, щелкните правой кнопкой мыши стандартную контрольную точку и выберите пункт "Применить".
- В диалоговом окне "Применить контрольную точку" нажмите кнопку "Применить".
Обратите внимание, что после применения контрольной точки восстановлен не только текстовый файл, но и состояние системы на момент создания контрольной точки. В этом случае Блокнот будет открыт с загруженным текстовым файлом.
Рабочая контрольная точка
Теперь рассмотрим рабочие контрольные точки. Эта процедура почти идентична работе со стандартными контрольными точками, но имеет немного другие результаты. Перед началом работы убедитесь, что у вас есть виртуальная машина и выбран рабочий тип контрольной точки.
Изменение виртуальной машины и создание рабочей контрольной точки
- Войдите в виртуальную машину и создайте текстовый файл. Если вы выполнили предыдущее упражнение, можно использовать существующий текстовый файл.
- В этом файле введите текст "Это рабочая контрольная точка", сохраните его, но не закрывайте Блокнот.
- Откройте диспетчер Hyper-V щелкните правой кнопкой мыши виртуальную машину и выберите пункт Контрольная точка.
- В окне "Создана рабочая контрольная точка" нажмите кнопку ОК.
Применение рабочей контрольной точки с помощью диспетчера Hyper-V
Теперь, когда контрольная точка создана, внесите изменения в систему, а затем примените контрольную точку, чтобы возвратить виртуальную машину в сохраненное состояние.
- Если текстовый файл еще открыт, закройте его и удалите с рабочего стола виртуальной машины.
- Откройте диспетчер Hyper-V, щелкните правой кнопкой мыши рабочую контрольную точку и выберите пункт Применить.
- В диалоговом окне "Применить контрольную точку" нажмите кнопку Применить.
Обратите внимание, что после применения рабочей контрольной точки виртуальная машина отключается.
- Запустите виртуальную машину и войдите в систему.
- Обратите внимание, что текстовый файл восстановлен, но, в отличие от стандартной контрольной точки, Блокнот закрыт.