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:

8846a578d826da763e3774ee701fafee.png9248b5d3bbd9192346c788a9cc494314.png

Самая дешевая ВМ, за создание которой с нас сразу спишут 15 рублей (на первые 24 часа использования), находится в разделе «Стандартные серверы».

bc5a07b9e922ea782370419dac0d27ec.png

Создаем, ждем секунд 30.

de500244b476aff9b8b304c024ab788c.pngddec77d1ad8bd843407c4976f122d604.png

В раздел поддержка сразу падает письмо с реквизитами доступа:

aa57c738bb591f32c1924aa1197c44ad.png

Подключаемся к ВМ по SSH, осматриваемся.

b17d620ef5db9dc22588bd573b2d9bde.png

Все, ВМ-ка в облаке готова.

Установка Veeam Agent на Debian Linux в облаке

Закидываем и устанавливаем через dpkg -i пакет с описанием репозитория для Debian (мы его уже к этому моменту должны были скачать с первой ссылки в начале статьи. Если не скачали — вот прямая ссылка на загрузку DEB-пакета).

7335b94df91ad233453cdc29d15eb0f0.png

Далее классика: apt update и смотрим, что появилось: apt search veeam

29cfe6c4636aae04cd371d5a3e9285d4.png

Начинаем устанавливать: apt install veeam

da9a92cb4bd77f6b5cd4131660c10f91.png

Пакетов много, так как собираемся модуль ядра, который будет делать снимок файловой системы. У Veeam собственная разработка, которая очень хорошо работает и поддерживает просто кучу различных файловых систем и вариантов. Все подробности есть в Release Notes.

В конце установки происходит сборка данного модуля ядра (veeamsnap).

6ba998ee01bb8bf824a7dd5f3deaca50.png

Все, можно проверять через диспетчер процессов, что изменилось в системе:

9f3179e4627a3d46c9d4ef12da5f5f2c.png

Теперь нам доступна команда veeam в консоли Linux.

Первый запуск Veeam Agent для Linux

При выполнении команды veeam нам зададут ряд простых вопросов (EULA, есть ли лицензия и нужен ли нам Recovery ISO (в этом кейсе не нужен)).

10a846035284286991b306e69bc8efb8.png233fe910f93687669f86300d84395817.pngd4ed553b39c37d84c1b001c7ae0ea6e3.png

Только на первом окне нужно проставить галки (лицензии), далее ничего выбирать не нужно — ничего не ставим, доходим до Finish. После нам будет доступно псевдо-графическое меню программы.

2e20019936bc511aa8ba8587e397791c.png

На данном этапе ничего не делаем, жмем Esc и выходим в консоль Linux. Агент готов к работе, осталось обеспечить транспорт и шару, куда мы будем складывать бекап.

Установка и настройка OpenVPN-сервера на Debian Linux

Так как у нас на созданной ВМ-ке есть белый публичный IP — грех этим не воспользоваться!

Устанавливаем openvpn (apt install openvpn). Переходим в каталог /etc/openvpn/ и командой openvpn --genkey secret veeam.key генерируем секретный ключ для связи.

Далее создаем файл debian-cloud.conf следующего содержания:

f2d74f8652e21158fd3c3bb820a50e91.png

Сохраняем. Теперь создаем Unit файл и запускаем службу:

systemctl enable openvpn@debian-cloud
systemctl start openvpn@debian-cloud
systemctl status openvpn@debian-cloud

Осталось проверить, все ли ОК?

fa6df520e956d9e8de480d00710f4fba.png6f39e0f46d459d46f7aac8f3aa6d353f.png

Установка и настройка OpenVPN клиента на Windows Server

Клиентом OpenVPN у меня будет сервер с операционной системой Windows Server (от 2012R2 и выше). Это может быть физический сервер, виртуальный — разницы особо нет. Скачиваем и устанавливаем OpenVPN под Windows (по ряду причин предпочитаю старую версию из ветки 2.4.x, но статья не об этом.

1873c62bafcc498cbf43e9901e0e8ff3.png

Копируем veeam.key и настраиваем конфиг (vpn-client.ovpn) — в каталоге C:\Program Files\OpenVPN\config\

6acbf9c0b4dc984e2a5ebb060392aaec.png

Запускаем OpenVPN GUI с правами Администратора и подключаемся:

e2ba01b314fa8f1d5ca6fc0d8c7e23fb.png

Теперь осталось с помощью ping проверить, все ли видят всех.

bb7e676c2b70441d8f8738ec238f00c6.pngbfac427bb5874b1f9a23a52991c8cb4a.png

Все, туннель для бекапа построен. Осталось подготовить шару и юзера для бекапа.

139b05770861776272666744855aefe8.png

Настройка Backup Job в Veeam Agent для Linux

Возвращаемся в Linux, снова запускаем команду veeam и с помощью кнопки c запускаем мастер создания задания резервного копирования.

abf91fb9469a9e722adb4d6c2bdb0a9f.png

Бекапить мы будем ВСЮ виртуальную машину целиком

f722cdf52878cdeffdf0ac130510bf76.png

Сохранять бекап мы будем по сети (через OpenVPN туннель) в созданной сетевой папке у нас

cb0d0d200be217211ed5c6b3f3c5fe3a.png

Естественно нужно указать правильно реквизиты

14731ca9ca67136a48eeb14fdcf49996.png

Далее будет ошибка — мы забыли (да и не предполагали) поставить утилиты cifs-utils

b07d981663b4cb62e42b2777f743cbc5.png

Ничего отменять не нужно — просто откройте вторую SSH-сессию и сразу поставьте

04ae27788c40efc81c6eb50f9a8f6a35.png

Далее все пойдет как нужно

9460f197870444c95e2dc3ce5d0fa2ee.png

Нужно ли запускать по расписанию или нет, решать Вам. Я этот пункт отключил (так как ВМ-ке оставалось жить еще минут 20).

1c4bb427b8ec6c6d29f2672a6cb49777.png

А вот на последнем этапе (summary) я наоборот, поставил галку — запустить задание сразу после его создания:

1be23f7277dce44e106613985c24f251.png

Вуаля — Job создан и запускается.

441d6e29eba9049ada2562adf8e68ee8.png

Смотреть прогресс можно выбрав раздел Show

a432063a93d112287c7c09449605304a.png

В целом довольно быстро.

4bf78c99e060c58152452c1ef52512aa.png

Все, 90 секунд и готово — бекап создан и улетел к нам в сетевую папку.

dedf4d9eae2130b117a889ace7f37e44.png

Установка Veeam Backup and Replication Community Edition

Это тоже весьма простой процесс, да и описан в сети уже много раз (плюс есть много роликов в Youtube). Ставится в несколько кликов (далее, далее) — т.е. очень просто. Поэтому скринов не делал, просто воспользуюсь уже установленным продуктом. Прямая ссылка на загрузку бесплатной версии тут.

39d0a49aa80f1e1d064ea1444e6a711b.png

Запускаем консоль VBR. В разделе Home → Backups импортируем бекап, только что созданный независимым Veeam Agent-ом с Debian

0924922db2f2d54b51222b20f01562a7.png

Указать нужно путь до файла с расширением .VBM (Veeam Backup MetaDATA).

d81addb2df9d024371f474e11aa029a8.png

ОК, ждем. Все должно быть быстро.

4e1b4567274e8946979295dddf8b01df.pngf2252d8c3439b71e54c960f0fd7e17b4.png

6 секунд (обычный отдельный SATA-диск на 4 Тб). Неплохо.

Экспорт бекапа

Теперь находим только что импортированный бекап и экспортируем его. В моем случае я решил экспортировать его самостоятельный виртуальный диск.

072ac0eb95a2a9e8024858166e78d848.png

Запускаемся мастер, который спросит нас о ряде моментов:

Первой — выбор точки восстановления. У нас она одна, НО, если Вы делаете бекапы регулярно и по расписанию — в .VBM файле будут описаны цепочки бекапов (Full/Increment) и можно будет выбрать нужную точку восстановления.

d796b77830123539aaab6be1b51b6b58.png

Следующий пункт — какие жесткие диски экспортируем в файл виртуальной машины (у нас всего один — vda)

461841a0e3901f4edc7205d5ff21814e.png

Следующий пункт — в каком формате. Поддерживаются Thin/Thick, VMware/Hyper-V. Если у нас другая среда виртуализации — то без разницы, что выбирать, все равно потом придется через раз сконвертировать жесткий диск (в общем случае).

6f9da082fde59fde5c922f9f99b6ab82.png

Я выбрал VHDX от Hyper-V в режиме Dymanic (тонкий жесткий диск) по понятным причинам — у меня в эксперименте уже есть Hyper-V и VBR установлен именно на нем (немного облегчил себе задачу).

Далее ничего существенного, далее, далее, поехали.

74bbefe0689d5d9dadd389f27a7cdf97.png3e10692d5008f7736b2855b09853fb15.png

Все готово. Идем в каталог, смотрим, что получили на выходе.

9a764d167194484f9f31dff5442e919b.png

Создание виртуальной машины и проверка работоспособности

Осталось создать новую виртуальную машину (конфиг) и подсунуть полученный виртуальный жесткий диск.

7bbb2b158fbcc3877e308e779593b251.pngea0d947bdbafc766a51c5cdad2f282d3.png195ffaa59e9304036cd5fe8ff517687e.pngfe8291846271c763a83ef71402361b54.png

Все, запускаем.

c8d12e6bf291214534f24950481bedb0.png88c02f897a83be6d7dcafecc59e51230.png

Итоги

Вот и все. Первый раз выполнение такого эксперимента займет пару часов наверное. При сноровке можно уложиться за полчаса (конечно зависит от скорости канала, объема конвертируемых данных внутри ВМ и т.д.).

Всем спасибо за внимание и огромное спасибо компании Veeam Software — выпуск Community Edition в 2019-м году — это большой и важный шаг! Я не знаю других коммерческих продуктов, которые бы позволяли маленьким компаниям и частным лицам бесплатно использовать свои продукты (причем такого высокого качества!). Респект Вам!!!

© Habrahabr.ru