Написать это руководство к действию меня сподвигла недавняя заметка на Хабре. Виртуализацию изучаю и активно использую с 2010 года, в этом же году я познакомился с ранней версией (помоему 3.x — FastSCP) решения от компании Veeam Software. Примерно с 2019–2020 года появились полноценные бесплатные Community Edition версии решений (Veeam Agent и Veeam Backup and Replication), которые способны работать неограниченное количество времени.
Постановка задачи — есть виртуальная машина(ы) в облаке — мы хотим решить две задачи:
резервировать ее по расписанию на наш сервер(а), находящиеся под нашим полным контролем
иметь возможность в любой момент сконвертировать нужную версию из резервной копии в виртуальную машину (в любом формате) и запустить ее на нашем оборудовании (т. е. приземлить виртуальную машину из облака на грешную...).
И так, поехали!
Что нам понадобится для решения поставленных задач
Список использованных программ, решений и сайтов:
Виртуальная машина в облаке. Для примера я использовал VDSina.ru[ссылка удалена модератором] и ВМ с Debian 12 x64
Veeam Agent для Linux: https://www.veeam.com/linux-backup-download.html
Veeam Backup and Replication: https://download2.veeam.com/VBR/v12/VeeamBackup&Replication_12.1.0.2131_20231205.iso. Для его установки нам, в нашей локальной инфраструктуре, понадобится Windows Server, начиная с версии 2012R2 и выше (4 ядра, 4 Гб ОЗУ, диск от 60 Гб).
OpenVPN как туннель между Linux и Windows (с установленным VBR 12.1). Можете использовать что‑то другое (аля WireGuard/PPTP/L2TP/etc — на вкус и цвет как говориться)
Сетевую папку для сброса резервной копии ВМ‑ки
Гипервизор для проверки (я использовал Hyper‑V). Также подойдет VMware Workstation/vSphere (ESXi). Если у Вас что‑то на базе KVM — можно скачать бесплатный конвертер дисков: https://www.starwindsoftware.com/starwind-v2v-converter. Также есть qemu-img convert и гугл - ищущий да найдет )
Дальше будет много...много...очень много скриншотов!
Подготовка виртуальной машины на VDSina.ru
Регистрируем аккаунт, кидаем 100 рублей. Создаем ВМ‑ку с Debian 12:
Самая дешевая ВМ, за создание которой с нас сразу спишут 15 рублей (за первые 24 часа использования), находится в разделе «Стандартные серверы».
Создаем, ждем секунд 30.
В раздел поддержка сразу падает письмо с реквизитами доступа:
Подключаемся к ВМ по SSH, осматриваемся.
Все, ВМ‑ка в облаке готова.
Установка Veeam Agent на Debian Linux в облаке
Закидываем и устанавливаем через dpkg ‑i пакет с описанием репозитория для Debian (мы его уже к этому моменту должны были скачать с первой ссылки в начале статьи. Если не скачали — вот прямая ссылка на загрузку DEB‑пакета).
Далее классика: apt update и смотрим, что появилось: apt search veeam
Начинаем устанавливать: apt install veeam
Пакетов много, так как собирается модуль ядра, который будет делать снимки файловой системы. У Veeam собственная разработка, которая очень хорошо работает и поддерживает просто кучу различных файловых систем и вариантов. Все подробности есть в Release Notes.
В конце установки происходит сборка данного модуля ядра (veeamsnap).
Все, можно проверять через диспетчер процессов, что изменилось в системе:
Теперь нам доступна команда veeam в консоли Linux.
Первый запуск Veeam Agent для Linux
При выполнении команды veeam нам зададут ряд простых вопросов (EULA, есть ли лицензия и нужен ли нам Recovery ISO (в этом кейсе не нужен)).
Только на первом окне нужно проставить галки (лицензии), далее ничего выбирать не нужно - ничего не ставим, доходим до Finish. После нам будет доступно псевдо-графическое меню программы.
На данном этапе ничего не делаем, жмем Esc и выходим в консоль Linux. Агент готов к работе, осталось обеспечить транспорт и шару, куда мы будем складывать бекап(ы).
Установка и настройка OpenVPN-сервера на Debian Linux
Так как у нас на созданной ВМ-ке есть белый публичный IP - грех этим не воспользоваться!
Устанавливаем openvpn (apt install openvpn). Переходим в каталог /etc/openvpn/ и командой openvpn --genkey secret veeam.key генерируем секретный ключ для связи.
Далее создаем файл debian-cloud.conf следующего содержания:
Сохраняем. Теперь создаем Unit файл и запускаем службу:
systemctl enable openvpn@debian-cloud
systemctl start openvpn@debian-cloud
systemctl status openvpn@debian-cloud
Осталось проверить, все ли ОК?
Установка и настройка OpenVPN клиента на Windows Server
Клиентом OpenVPN у меня будет сервер с операционной системой Windows Server (от 2012R2 и выше). Это может быть физический сервер, виртуальный — разницы особо нет. Скачиваем и устанавливаем OpenVPN под Windows (по ряду причин предпочитаю старую версию из ветки 2.4.x, но статья не об этом.
Копируем veeam.key и настраиваем конфиг (vpn-client.ovpn) - в каталоге C:\Program Files\OpenVPN\config\
Запускаем OpenVPN GUI с правами Администратора и подключаемся:
Теперь осталось с помощью ping проверить, все ли видят всех.
Все, туннель для бекапа построен. Осталось подготовить шару и юзера для бекапа.
Настройка Backup Job в Veeam Agent для Linux
Возвращаемся в Linux, снова запускаем команду veeam и с помощью кнопки c запускаем мастер создания задания резервного копирования.
Бекапить мы будем ВСЮ виртуальную машину целиком
Сохранять бекап мы будем по сети (через OpenVPN туннель) в созданной сетевой папке у нас
Естественно нужно указать правильно реквизиты
Далее будет ошибка — мы забыли (да и не предполагали) поставить утилиты cifs‑utils
Ничего отменять не нужно - просто откройте вторую SSH-сессию и сразу поставьте
Далее все пойдет как нужно
Нужно ли запускать по расписанию или нет, решать Вам. Я этот пункт отключил (так как ВМ‑ке оставалось жить еще минут 20).
А вот на последнем этапе (summary) я, наоборот, поставил галку — запустить задание сразу после его создания:
Вуаля — Job создан и запускается.
Смотреть прогресс можно выбрав раздел Show
В целом довольно быстро.
Все, 90 секунд и готово - бекап создан и улетел к нам в сетевую папку.
Установка Veeam Backup and Replication Community Edition
Это тоже весьма простой процесс, да и описан в сети уже много раз (плюс есть много роликов в Youtube). Ставится в несколько кликов (далее, далее) — т. е. очень просто. Поэтому скринов не делал, просто воспользуюсь уже установленным продуктом. Прямая ссылка на загрузку бесплатной версии тут.
Запускаем консоль VBR. В разделе Home -> Backups импортируем бекап, только что созданный независимым Veeam Agent-ом с Debian
Указать нужно путь до файла с расширением .VBM (Veeam Backup MetaDATA).
ОК, ждем. Все должно быть быстро.
6 секунд (обычный отдельный SATA-диск на 4 Тб). Неплохо.
Экспорт бекапа
Теперь находим только что импортированный бекап и экспортируем его. В моем случае я решил экспортировать его в самостоятельный виртуальный диск.
Запускаемся мастер, который спросит нас о ряде моментов:
Первой — выбор точки восстановления. У нас она одна, НО, если Вы делаете бекапы регулярно и по расписанию — в.VBM файле будут описаны цепочки бекапов (Full/Increment) и можно будет выбрать нужную точку восстановления.
Следующий пункт - какие жесткие диски экспортируем в файл виртуальной машины (у нас всего один - vda)
Следующий пункт — в каком формате. Поддерживаются Thin/Thick, VMware/Hyper‑V. Если у нас другая среда виртуализации — то без разницы, что выбирать, все равно потом придется еще раз сконвертировать жесткий диск в другой формат (в общем случае).
Я выбрал VHDX от Hyper‑V в режиме Dymanic (тонкий жесткий диск) по понятным причинам — у меня в эксперименте уже есть Hyper‑V и VBR установлен именно на нем (немного облегчил себе задачу).
Далее ничего существенного, далее, далее, поехали.
Все готово. Идем в каталог, смотрим, что получили на выходе.
Создание виртуальной машины и проверка работоспособности
Осталось создать новую виртуальную машину (конфиг) и подсунуть полученный виртуальный жесткий диск.
Все, запускаем.
Итоги
Вот и все. Первый раз выполнение такого эксперимента займет пару часов наверное. При сноровке можно уложиться за полчаса (конечно зависит от скорости канала, объема конвертируемых данных внутри ВМ и т. д.).
Всем спасибо за внимание и огромное спасибо компании Veeam Software — выпуск Community Edition в 2019-м году — это большой и важный шаг! Я не знаю других коммерческих продуктов, которые бы позволяли маленьким компаниям и частным лицам бесплатно использовать свои продукты (причем такого высокого качества!). Респект Вам!!!
Комментарии (23)
pr0l
06.12.2023 23:58+2А как раскатать на хостинге в новой виртуалке бекап не описали
Dorlas Автор
06.12.2023 23:58+1А универсального способа нет - каждый хостинг провайдер виртуалок может предоставлять (или не предоставляет) свой способ.
Общая рекомендация - писать им в ТП и спрашивать, как загрузить свой образ виртуального жесткого диска, в каком формате (.VMDK/.VHD/.VHDX/.VDI/.RAW/.QCOW2 и т.д.).
pr0l
06.12.2023 23:58+1ну я ожидал ответа, по типу. Вот либо вам рекавери диск от утилиты, грузите на хостинг, загружайтесь, он подключится к серверу и раскатает образ. Либо грузите рекавери диск который дает хостинг, оттуда скриптом тащите
Dorlas Автор
06.12.2023 23:58Пока что не было в этом необходимости у меня лично - поэтому у меня нет готового сценария, скриншотов и алгоритма. Для себя я бы настроил две независимые виртуалки в двух хостингах и синхронизировал конфиги и данные.
В данный момент статья больше про бекап и про перенос из облака на OnPremise )
Dorlas Автор
06.12.2023 23:58Проверил, что умеет Veeam Recovery, который можно выкачать в Veeam Agent для Linux. В нем есть WireGuard - поэтому вариант вполне реальный )
Dorlas Автор
06.12.2023 23:58+1Есть вариант - загрузиться с помощью ISO-образа Veeam Recovery Media - но вот как ему подсунуть VPN и дать доступ до бекапа - вопрос сложный ) Короче я не готов такое сходу в статье описывать пока что )
miksanchez
06.12.2023 23:58+1а есть вариант что 12 версия подключается нативно к VcloudDirector Провайдера и машинка мигрируется из РЕПЫ VBR в Облаков без проблем (При условии что облачный провайдер предоставил credentials и точки для подключения).
Dorlas Автор
06.12.2023 23:58Да, хороший вариант. у Veeam вообще изначально VMware был партнер номер 1 (и наоборот). Максимально тесная интеграция и проработка. Всем бы так )
VFedorV
06.12.2023 23:58А у кого-нибудь получалось настроить бэкапирование с агента без впн :) ?
Знаю дико звучит, но вот иногда просто надо...
У самого Veeam есть какое-то решение, но оно такое замороченное, что легче впн организовать
Dorlas Автор
06.12.2023 23:58В своих сетях все и без VPN бекапят, все работает. Вы бы описали подробнее задачу)))
Может если через WebDav зацепить Cloud диск куда нибудь, типа в /mnt, может получиться.
VPN же это просто способ обойти NAT и обеспечить видимость Source/Destination
Dorlas Автор
06.12.2023 23:58Как вариант, дать на оба узла IPv6 через Teredo брокера. Надо попробовать затестить.
Dorlas Автор
06.12.2023 23:58+1Затестил - работает!
Установил miredo на два узла (в разных площадках с разными белыми IP). Адрес Teredo сервера поставил от этот:win10.ipv6.microsoft.com
Работает, бекапит.
Dorlas Автор
06.12.2023 23:58Вообще должно с WebDAV прокатить (в связке с NextCloud например):
https://docs.nextcloud.com/server/20/user_manual/en/files/access_webdav.htmlDorlas Автор
06.12.2023 23:58Работает так тоже....но немного хромает. Я бы не стал в Production использовать этот метод.
navion
06.12.2023 23:58+2В бесплатной версии разве нельзя бекапить сразу в VBR? И для демки я бы использовал Tailscale, где в пару кликов создаётся виртуальная сеть между площадками.
Dorlas Автор
06.12.2023 23:58Можно, но по отдельности мне интереснее было )
Касательно Tailscale - пишут, что это Торонто, Канада. Пытаюсь заюзать их - не пускает. Похоже что они к санкциям присоединились...
enamchuk
06.12.2023 23:58Попробуйте ZeroTier, с российских IP устанавливается и работает без проблем. Есть поддержка MikroTik с процессором ARM.
InikonI
Присоединюсь к благодарности компании Veeam Software.
Я использую Veeam для создания резервных копий всех своих ПК и серверов в домашней среде.
Года два назад стал использовать и Veeam Backup & Replication CE, потому что мне просто стало лень смотреть состояние и настраивать задания резервного копирования на самих машинах, теперь делаю это через сервер.
Очень жаль что для Veeam Backup & Replication CE требуется Windows (это наверное единственное что раздражает).
Надеюсь, что со временем они выпустят Veeam Backup & Replication CE для Linux.
Часто я использовал похожее на предложенное в статье решение только для переноса реальной машины в виртуальную среду (и для реального применения, и для проверки работоспособности существующих резервных копий).
Также регулярно использую его для переноса данных с одного оборудования на другое при апгрейде (не всегда можно использовать старый диск).
Если бы не требование Windows для Veeam Backup & Replication CE, то рекомендовал бы его использовать.
Обычно рекомендую использовать только агенты для Linux и Windows, их можно использовать и без Veeam Backup & Replication CE.
Dorlas Автор
Согласен, хотелось бы VBR CE под Linux. Но пока имеем, что имеем.
Вообще не обязательно использовать Windows Server - VBR легко устанавливается на Windows 10/11 - об этом можно почитать тут: system_requirements.
И еще VBR и Agent классные, что бекапы абсолютно не зависимы и самодостаточны - кто-то сделал бекап, ты его скопировал (хотя бы VBK + VBM - т.е. Full + Metadata) - и все. Ставишь пустую ВМ, импортируешь - все, можно разворачивать.
Поэтому держать мелкую виртуалку (4 ядра, 4 Гб ОЗУ) с Windows 10/11 + VBR не так уж и накладно. Если бекапить по одному объекту за раз - этого более чем достаточно по моему опыту.
Еще очень нравится их вариативность в настройках, схемах бекапа (Forward/Reverse/Forever Forward/etc). Инкрименты зачастую создаются супер быстро, Full бекап делаем один раз и не трогаем (в рамках одной цепочки бекапов). В такой схеме размножать бекапы элементарно (хоть встроенными в VBR средствами - Copy Backup, хоть PowerShell скриптом, хоть FreeFileSync-ом в Batch-режиме).
В общем шикарное решение, имхо! )
Jutqe
Не знаю насчёт CE, но VBR под Линукс собираются выпустить.
Dorlas Автор
Спасибо за инсайд, товарищ майор! ))))))