BackupZit

Бесплатное резервное копирование Hyper-V: как копировать виртуальные машины Hyper-V

Полное руководство: от хоста Hyper-V до запланированных, зашифрованных и дедуплицированных копий всех его ВМ — согласованных через VSS, инкрементных благодаря Resilient Change Tracking, с внешней копией и восстановлением как новой ВМ, на исходное место или пофайлово.

Что вы настроите

BackupZit копирует виртуальные машины Hyper-V с помощью агента на хосте Hyper-V; внутрь ВМ ничего не устанавливается. Гости Windows и Linux продолжают работать во время копирования. Веб-консоль планирует задания, хранит историю и запускает восстановление. BackupZit бесплатен и с открытым исходным кодом (AGPLv3), без ограничений на число хостов и ВМ.

В Windows Server есть встроенное средство «Система архивации данных Windows Server», которое тоже умеет копировать ВМ Hyper-V на хосте. Для одного хоста и локального диска этого может хватить. BackupZit имеет смысл, если нужны запланированные копии нескольких хостов на SFTP, SMB, S3 или неизменяемый репозиторий с хранением, шифрованием и дедупликацией, восстановление отдельных файлов с дисков ВМ — и одна консоль для Proxmox, VMware, физических серверов, баз данных и Microsoft 365.

Что нужно

  • Хост Hyper-V: Windows Server 2016 или новее с ролью Hyper-V либо Windows 10/11 с Hyper-V. В кластере — каждый хост.
  • Место для консоли BackupZit: небольшая Linux-ВМ с 2 vCPU, 2–4 ГБ ОЗУ и диском 16–20 ГБ. Она сама не хранит данные копий, поэтому может работать как ВМ на том же хосте Hyper-V.
  • Хранилище для копий вне хоста — например, общая папка SMB на файловом сервере или NAS, Linux-сервер по SFTP, S3-совместимый бакет или защищённый репозиторий BackupZit. Агент пишет в него напрямую.
  • Сеть: агент подключается к консоли по TCP-порту 8443.

Шаг 1 — Установите консоль

Быстрее всего на Hyper-V использовать готовый образ ВМ backupzit-appliance-vhdx.zip со страницы загрузки (Debian, PostgreSQL и консоль уже настроены):

  1. Распакуйте backupzit-appliance-vhdx.zip в папку, где лежат диски ваших ВМ.
  2. В диспетчере Hyper-V создайте ВМ поколения 1 с 2–4 ГБ ОЗУ, подключите её к виртуальному коммутатору и выберите распакованный VHDX как существующий диск.
  3. Запустите ВМ. На её экране показаны адрес веб-консоли и начальный пароль пользователя admin. Откройте https://<адрес>:8443, войдите и смените пароль. Браузер один раз предупредит о самоподписанном сертификате.

На экране ВМ можно войти как bzadmin и задать статический адрес, имя сервера и часовой пояс (appliance стартует в UTC, а расписания работают по часовому поясу консоли). Предпочитаете существующий сервер Debian, Ubuntu, AlmaLinux или Rocky Linux? Однострочный скрипт установки со страницы загрузки сделает там то же самое.

Шаг 2 — Добавьте хранилище

В консоли откройте Хранилище и добавьте место назначения. Типичный выбор в среде Windows:

ТипПодходит для
Общая папка SMBФайловых серверов Windows, NAS Synology или QNAP (SMB 2/3).
SFTPЛюбого Linux-сервера или NAS с SSH; ключ хоста сервера закрепляется.
S3-совместимоеВнешних копий: AWS S3, Wasabi, Backblaze B2, MinIO; неизменяемых с Object Lock.
Azure Blob StorageВнешних копий для компаний, которые уже используют Azure.
Защищённый репозиторийLinux-сервер с backupzit-repo: копии нельзя удалить до конца срока неизменяемости.

Оставьте включённым Шифровать копии (AES-256) (по умолчанию): всё шифруется AES-256 на хосте до того, как покинет его. Затем консоль покажет ключ восстановления — распечатайте лист восстановления или сохраните ключ в менеджере паролей отдельно от копий. С ключом, адресом хранилища и учётными данными вы восстановите данные даже без консоли.

Шаг 3 — Установите агент на хост Hyper-V

  1. В консоли откройте Агенты и нажмите Создать токен регистрации. Вы получите код регистрации (BZ1-…), действующий 7 дней и подходящий для любого числа машин.
  2. Скачайте Агент Windows (MSI) со страницы «Агенты», запустите его на хосте и вставьте код, когда установщик его запросит. Для нескольких хостов подойдёт тихая установка через GPO, Intune или RMM-инструмент:
    msiexec /i backupzit-agent.msi /qn ENROLLCODE="BZ1-..."
    Консоль может и сама установить агент через WinRM: Агенты → Установить на машину отсюда, с учётной записью администратора, которая используется только для установки и не сохраняется.
  3. В течение минуты хост появится на странице «Агенты» с меткой Hyper-V · N VMs.

Агент работает через собственные интерфейсы Hyper-V: модуль PowerShell для Hyper-V и Windows Virtual Disk API. Консоль не хранит учётные данные Hyper-V. В кластере установите агент на каждый хост.

Шаг 4 — Создайте задание копирования

  1. Откройте Задания копирования, создайте задание и выберите агент хоста.
  2. Выберите Виртуальные машины (Proxmox VE, Hyper-V, VMware), затем Все ВМ (и контейнеры) на хосте — ВМ, созданные позже, добавляются автоматически — или отметьте отдельные ВМ.
  3. Выберите хранилище из шага 2.
  4. Задайте расписание, например каждый рабочий день в 22:00. Задания также могут повторяться каждые 15 минут — 12 часов, запускаться раз в месяц или после другого задания.
  5. Задайте хранение. Пример: 3 последних, 7 ежедневных, 4 еженедельных, 6 ежемесячных — около полугода истории и примерно 20 точек восстановления.

Что происходит при каждом запуске:

  1. Создаётся временная контрольная точка восстановления (backupzit_…) — тип контрольной точки, который Hyper-V предоставляет программам резервного копирования. ВМ продолжает работать.
  2. Контрольная точка восстановления включает Resilient Change Tracking (RCT) для дисков ВМ; рядом с ними появятся файлы .rct и .mrt. Первая копия читает диски целиком; затем RCT сообщает, какие блоки изменились с прошлой копии, и читаются только они.
  3. Диски читаются в состоянии на момент контрольной точки блоками по 1 МиБ — VHDX и VHD, включая цепочки прежних контрольных точек. Пустые блоки не сохраняются, а блоки, уже имеющиеся в репозитории, повторно не загружаются. При этом каждая копия остаётся полной точкой восстановления.
  4. Контрольная точка удаляется, и Hyper-V объединяет её в фоне. Конфигурация ВМ сохраняется вместе с копией: поколение, CPU, память, сетевые адаптеры (коммутатор, VLAN, MAC-адрес), контроллеры дисков, безопасная загрузка и TPM.

Пример из тестовой лаборатории BackupZit: Linux-ВМ с диском 3 ГБ. Первая копия прочитала 3 ГБ; следующая, после 64 МБ новых данных, — 96 МБ.

Выключенные ВМ читаются напрямую, без контрольной точки. На хостах старше Windows Server 2016 контрольных точек восстановления нет: используется рабочая контрольная точка, и каждая копия читает диски целиком.

Хосты с Windows 10/11: Hyper-V создаёт автоматическую контрольную точку при каждом запуске ВМ, если эта опция не отключена. BackupZit справляется с такими точками, но для серверных ВМ отключите автоматические контрольные точки (параметры ВМ → Контрольные точки).

Шаг 5 — Копии, согласованные на уровне приложений

Для контрольной точки восстановления Hyper-V просит гостя подготовиться:

  • Гости Windows сбрасывают данные своих приложений (SQL Server, Exchange, Active Directory…) через VSS.
  • Гости Linux замораживают файловые системы, если установлены службы Hyper-V — пакет hyperv-daemons или hv-vss-daemon, в зависимости от дистрибутива.

Если гость не может ни того, ни другого, контрольная точка согласована как после сбоя — как после отключения питания. Страница запуска показывает для каждой ВМ, какой вид использовался, так что сразу видно, каким гостям ещё нужны службы.

Шаг 6 — Внешняя копия (3-2-1)

Правило 3-2-1: три копии данных на двух разных носителях, одна из них за пределами офиса. Добавьте второе задание типа Копия резервной копии, указав задание Hyper-V как источник и внешнее место назначения, например бакет S3 с Object Lock или защищённый репозиторий в другом здании.

  • Агент копирует существующие копии; ВМ повторно не читаются.
  • Отправляются только данные, которых ещё нет в месте назначения, зашифрованные его ключом.
  • У копии своё расписание и хранение, например 7 ежедневных на NAS и 12 ежемесячных в облаке.

ВМ и отдельные файлы восстанавливаются из копии так же, как из оригинала. Автоматические тесты восстановления (по умолчанию еженедельно, в Настройки → Тесты восстановления) читают случайные блоки последних копий ВМ и сверяют их с контрольными суммами. Подробнее о неизменяемых копиях в разделе защита от программ-вымогателей.

Восстановление

Откройте запуск копирования (со страницы задания или из раздела Активность) и выберите Восстановить ВМ Hyper-V. Восстанавливать можно на тот же хост или на другой хост Hyper-V с агентом.

Как новую ВМ рядом с оригиналом

  • Создаётся вторая ВМ с новыми MAC-адресами, чтобы она могла работать в той же сети, что и оригинал. По умолчанию её имя — имя оригинала плюс «restored» и дата.
  • Автоматические контрольные точки на ней отключены, поэтому её запуск не оставляет файлов контрольных точек.
  • Сетевые настройки гостя, привязанные к MAC-адресу (например, match: macaddress в netplan в облачных образах Linux), на новые адаптеры не действуют.

На место исходной ВМ

Отметьте выключить её и заменить её диски. BackupZit выключает существующую ВМ, объединяет её контрольные точки и заменяет её диски восстановленными. ВМ сохраняет ID, сетевые адаптеры и MAC-адреса, поэтому задания, мониторинг и сеть гостя продолжают работать. Старые файлы дисков не удаляются, а переименовываются в ….replaced-ДАТА — удалите их, когда восстановленная ВМ заработает. Если исходной ВМ больше нет, она создаётся заново с новым ID Hyper-V.

Что получает восстановленная ВМ

  • Виртуальные коммутаторы подключаются по имени; если коммутатора на хосте нет, адаптер остаётся отключённым.
  • Каждая восстановленная ВМ получает новый generation ID, чтобы контроллеры домена Active Directory безопасно распознали восстановление.
  • Параметры: папка для виртуальных дисков и нужно ли запускать ВМ после восстановления.

Отдельные файлы

Нажмите Просмотр файлов в таблице ВМ запуска копирования, чтобы увидеть разделы и тома на дисках ВМ. Можно просматривать NTFS, ext2/3/4 и XFS, в том числе внутри LVM, и скачивать файлы (несколько — архивом ZIP) или восстанавливать их в папку на любом агенте — ради одного потерянного документа не нужно восстанавливать всю ВМ.

Из командной строки

Всё работает и без консоли, от имени администратора на хосте Hyper-V — например, при восстановлении хоста после аварии:

backupzit-agent hyperv list
backupzit-agent hyperv backup  --repo ... [--vmid N,N]
backupzit-agent hyperv restore --repo ... --vmid N --new --name ИМЯ --folder D:\VMs --start latest

--vmid — номер, который показывает hyperv list. Без --new ВМ восстанавливается на место; --overwrite подтверждает, что диски существующей ВМ можно заменить.

Ограничения

  • Общие VHDX, VHD Set и проброшенные (pass-through) диски не копируются.
  • Мгновенное восстановление (запуск ВМ прямо из копии) есть для Proxmox VE и VMware, для Hyper-V пока нет — оно запланировано. Восстановление Hyper-V сначала копирует диски.
  • На хостах старше Windows Server 2016 нет контрольных точек восстановления и RCT, поэтому каждая копия читает диски целиком.

Что дальше

Скачайте BackupZit, посмотрите все функции для Hyper-V или прочитайте полный раздел о Hyper-V в руководстве в консоли. Используете и Proxmox? Посмотрите руководство по копированию ВМ Proxmox. Вопросы можно задать в GitHub Discussions. Компании могут получить коммерческую поддержку от MaxZit (только на английском).