Методы резервного копирования в Hyper-V

Hyper-V позволяет выполнять резервное копирование виртуальных машин из операционной системы узла. При этом на виртуальной машине не нужно запускать специализированное программное обеспечение для резервного копирования. Есть несколько подходов, между которыми могут выбирать разработчики в зависимости от своих потребностей.

Модуль записи VSS Hyper-V

Hyper-V реализует модуль записи VSS во всех версиях Windows Server, поддерживающих Hyper-V. Этот модуль записи VSS позволяет разработчикам использовать существующую инфраструктуру VSS для резервного копирования виртуальных машин. Но он рассчитан на резервное копирование в небольших средах, где для всех виртуальных машин на сервере резервное копирование выполняется одновременно.

Чтобы лучше понять эту архитектуру, изучите презентацию: https://channel9.msdn.com/Events/TechEd/NorthAmerica/2010/VIR322.

Резервное копирование на основе WMI Hyper-V

Начиная с Windows Server 2016 Hyper-V поддерживает резервное копирование с помощью API WMI для Hyper-V. При этом подходе для резервного копирования внутри виртуальной машины по-прежнему используется VSS. Но теперь VSS не используется в операционной системе узла. Вместо этого применяется сочетание опорных точек и отказоустойчивого отслеживания изменений. Это позволяет разработчикам эффективно получать информацию о виртуальных машинах, к которым применяется резервное копирование. Такой подход повышает масштабируемость по сравнению с использованием VSS в узле. Но этот подход можно применять только в Windows Server 2016 и более поздних версий.

Чтобы лучше понять эту архитектуру, изучите презентацию: https://channel9.msdn.com/Events/TechEd/Europe/2014/CDP-B318.

Кроме того, есть пример использования этих API-интерфейсов: https://www.powershellgallery.com/packages/xHyper-VBackup.

Методы чтения резервных копий, созданных на основе WMI

При создании резервных копий виртуальных машин с помощью WMI Hyper-V есть три метода для чтения фактических данных из резервной копии. У каждого есть свои преимущества и недостатки.

Экспорт WMI

Разработчики могут экспортировать данные резервных копий с помощью интерфейсов WMI для Hyper-V (как показано в приведенном выше примере). Hyper-V выполнит компиляцию изменений на виртуальный жесткий диск и скопирует нужный файл в указанное расположение. Этот метод прост в использовании, подходит для всех сценариев и может выполняться удаленно. Но создаваемый виртуальный жесткий диск часто требует передачи по сети больших объемов данных.

API-интерфейсы Win32;

Разработчики могут использовать API SetVirtualDiskInformation, GetVirtualDiskInformation и QueryChangesVirtualDisk на основе набора API Win32 для виртуального жесткого диска, как описано здесь. Обратите внимание, что для использования этих API по-прежнему необходимо применять WMI Hyper-V для создания опорных точек на затронутых виртуальных машинах. После этого API-интерфейсы Win32 предоставят эффективный доступ к данным виртуальной машины, для которой создана резервная копия. У API-интерфейсов Win32 есть несколько ограничений:

  • доступ к ним возможен только из локальной среды;
  • они не поддерживают чтение данных из файлов на общем виртуальном жестком диске;
  • они возвращают адреса данных, построенные относительно внутренней структуры виртуального жесткого диска.

Удаленный протокол общего виртуального диска

Наконец, если разработчику нужен эффективный доступ к сведениям о резервных копиях файла, размещенного на общем виртуальном жестком диске, необходимо использовать удаленный протокол общего виртуального диска. Такой протокол описан в этом документе.