Backup and Restore — виртуальные машины в облаках/хостингах
Написать это руководство к действию меня сподвигла недавняя заметка на Хабре. Виртуализацию изучаю и активно использую с 2010 года, в этом же году я познакомился с ранней версией (помоему 3.x) решения от компании Veeam Software. Примерно с 2019–2020 года появились полноценные бесплатные Community Edition версии решений (Veeam Agent и Veeam Backup and Replication), которые способны работать неограниченное количество времени.
Постановка задачи — есть виртуальная машина в облаке — мы хотим решить две задачи:
резервировать ее по расписанию на наш сервер (а), находящиеся под нашим полным контролем
иметь возможность в любой момент сконвертировать нужную версию из резервной копии в виртуальную машину (в любом формате) и запустить ее на нашем оборудовании (т.е. приземлить виртуальную машину из облака на грешную…).
И так, поехали!
Что нам понадобится для решения поставленных задач
Список использованных программ, решений и сайтов:
Виртуальная машина в облаке. Для примера я использовал VDSina.ru и ВМ с Debian 12×64
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-м году — это большой и важный шаг! Я не знаю других коммерческих продуктов, которые бы позволяли маленьким компаниям и частным лицам бесплатно использовать свои продукты (причем такого высокого качества!). Респект Вам!!!