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

Hyper-V позволяет выполнять резервное копирование виртуальных машин из операционной системы узла. При этом на виртуальной машине не нужно запускать специализированное программное обеспечение для резервного копирования.Hyper-V allows you to backup virtual machines, from the host operating system, without the need to run custom backup software inside the virtual machine. Есть несколько подходов, между которыми могут выбирать разработчики в зависимости от своих потребностей.There are several approaches that are available for developers to utilize depending on their needs.

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

Hyper-V реализует модуль записи VSS во всех версиях Windows Server, поддерживающих Hyper-V.Hyper-V implements a VSS writer on all versions of Windows Server where Hyper-V is supported. Этот модуль записи VSS позволяет разработчикам использовать существующую инфраструктуру VSS для резервного копирования виртуальных машин.This VSS writer allows developers to utilize the existing VSS infrastructure to backup virtual machines. Но он рассчитан на резервное копирование в небольших средах, где для всех виртуальных машин на сервере резервное копирование выполняется одновременно.However, it is designed for small scale backup operations where all virtual machines on a server are backed up simultaneously.

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

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

Начиная с Windows Server 2016 Hyper-V поддерживает резервное копирование с помощью API WMI для Hyper-V.Starting in Windows Server 2016, Hyper-V started supporting backup through the Hyper-V WMI API. При этом подходе для резервного копирования внутри виртуальной машины по-прежнему используется VSS. Но теперь VSS не используется в операционной системе узла.This approach still utilizes VSS inside the virtual machine for backup purposes, but no longer uses VSS in the host operating system. Вместо этого применяется сочетание опорных точек и отказоустойчивого отслеживания изменений. Это позволяет разработчикам эффективно получать информацию о виртуальных машинах, к которым применяется резервное копирование.Instead, a combination of reference points and resilient change tracking (RCT) is used to allow developers to access the information about backed up virtual machines in an efficient manner. Такой подход повышает масштабируемость по сравнению с использованием VSS в узле. Но этот подход можно применять только в Windows Server 2016 и более поздних версий.This approach is more scalable than using VSS in the host, however it is only available on Windows Server 2016 and later.

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

Кроме того, есть пример использования этих API-интерфейсов: https://www.powershellgallery.com/packages/xHyper-VBackup.There is also an example on how to use these APIs available here: https://www.powershellgallery.com/packages/xHyper-VBackup

Методы чтения резервных копий, созданных на основе WMIMethods for reading backups from WMI Based Backup

При создании резервных копий виртуальных машин с помощью WMI Hyper-V есть три метода для чтения фактических данных из резервной копии.When creating virtual machine backups using Hyper-V WMI, there are three methods for reading the actual data from the backup. У каждого есть свои преимущества и недостатки.Each has unique advantages and disadvantages.

Экспорт WMIWMI Export

Разработчики могут экспортировать данные резервных копий с помощью интерфейсов WMI для Hyper-V (как показано в приведенном выше примере).Developers can export the backup data through the Hyper-V WMI interfaces (as used in the above example). Hyper-V выполнит компиляцию изменений на виртуальный жесткий диск и скопирует нужный файл в указанное расположение.Hyper-V will compile the changes into a virtual hard drive and copy the file to the requested location. Этот метод прост в использовании, подходит для всех сценариев и может выполняться удаленно.This method is easy to use, works for all scenarios and is remotable. Но создаваемый виртуальный жесткий диск часто требует передачи по сети больших объемов данных.However, the virtual hard drive generated often creates a large amount of data to transfer over the network.

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

Разработчики могут использовать API SetVirtualDiskInformation, GetVirtualDiskInformation и QueryChangesVirtualDisk на основе набора API Win32 для виртуального жесткого диска, как описано здесь: https://docs.microsoft.com/windows/desktop/api/_vhd/. Обратите внимание, что для использования этих API по-прежнему необходимо применять WMI Hyper-V для создания опорных точек на затронутых виртуальных машинах.Developers can use the SetVirtualDiskInformation, GetVirtualDiskInformation and QueryChangesVirtualDisk APIs on the Virtual Hard Disk Win32 API set as documented here: https://docs.microsoft.com/windows/desktop/api/_vhd/ Note that to use these APIs, Hyper-V WMI still needs to be used to create reference points on associated virtual machines. После этого API-интерфейсы Win32 предоставят эффективный доступ к данным виртуальной машины, для которой создана резервная копия.These Win32 APIs then allow for efficient access to the data of the backed up virtual machine. У API-интерфейсов Win32 есть несколько ограничений:The Win32 APIs do have several limitations:

  • доступ к ним возможен только из локальной среды;They can only be accessed locally
  • они не поддерживают чтение данных из файлов на общем виртуальном жестком диске;They do not support reading data from shared virtual hard disk files
  • они возвращают адреса данных, построенные относительно внутренней структуры виртуального жесткого диска.They return data addresses that are relative to the internal structure of the virtual hard disk

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

Наконец, если разработчику нужен эффективный доступ к сведениям о резервных копиях файла, размещенного на общем виртуальном жестком диске, необходимо использовать удаленный протокол общего виртуального диска.Finally, if a developer needs to efficiently access backup data information from a shared virtual hard disk file – they will need to use the Remote Shared Virtual Disk Protocol. Такой протокол описан в этом документе.This protocol is documented here.