Написать это руководство к действию меня сподвигла недавняя заметка на Хабре. Виртуализацию изучаю и активно использую с 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)


  1. InikonI
    06.12.2023 23:58
    +2

    Присоединюсь к благодарности компании 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.


    1. Dorlas Автор
      06.12.2023 23:58
      +3

      Согласен, хотелось бы 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-режиме).

      В общем шикарное решение, имхо! )


      1. Jutqe
        06.12.2023 23:58
        +1

        Не знаю насчёт CE, но VBR под Линукс собираются выпустить.


        1. Dorlas Автор
          06.12.2023 23:58

          Спасибо за инсайд, товарищ майор! ))))))


  1. Stanner
    06.12.2023 23:58
    +1

    А нельзя конфиги продублировать спойлерами с текстом? ;-)



  1. pr0l
    06.12.2023 23:58
    +2

    А как раскатать на хостинге в новой виртуалке бекап не описали


    1. Dorlas Автор
      06.12.2023 23:58
      +1

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

      Общая рекомендация - писать им в ТП и спрашивать, как загрузить свой образ виртуального жесткого диска, в каком формате (.VMDK/.VHD/.VHDX/.VDI/.RAW/.QCOW2 и т.д.).


      1. pr0l
        06.12.2023 23:58
        +1

        ну я ожидал ответа, по типу. Вот либо вам рекавери диск от утилиты, грузите на хостинг, загружайтесь, он подключится к серверу и раскатает образ. Либо грузите рекавери диск который дает хостинг, оттуда скриптом тащите


        1. Dorlas Автор
          06.12.2023 23:58

          Пока что не было в этом необходимости у меня лично - поэтому у меня нет готового сценария, скриншотов и алгоритма. Для себя я бы настроил две независимые виртуалки в двух хостингах и синхронизировал конфиги и данные.

          В данный момент статья больше про бекап и про перенос из облака на OnPremise )


        1. Dorlas Автор
          06.12.2023 23:58

          Проверил, что умеет Veeam Recovery, который можно выкачать в Veeam Agent для Linux. В нем есть WireGuard - поэтому вариант вполне реальный )


    1. Dorlas Автор
      06.12.2023 23:58
      +1

      Есть вариант - загрузиться с помощью ISO-образа Veeam Recovery Media - но вот как ему подсунуть VPN и дать доступ до бекапа - вопрос сложный ) Короче я не готов такое сходу в статье описывать пока что )


  1. miksanchez
    06.12.2023 23:58
    +1

    а есть вариант что 12 версия подключается нативно к VcloudDirector Провайдера и машинка мигрируется из РЕПЫ VBR в Облаков без проблем (При условии что облачный провайдер предоставил credentials и точки для подключения).


    1. Dorlas Автор
      06.12.2023 23:58

      Да, хороший вариант. у Veeam вообще изначально VMware был партнер номер 1 (и наоборот). Максимально тесная интеграция и проработка. Всем бы так )


  1. VFedorV
    06.12.2023 23:58

    А у кого-нибудь получалось настроить бэкапирование с агента без впн :) ?

    Знаю дико звучит, но вот иногда просто надо...

    У самого Veeam есть какое-то решение, но оно такое замороченное, что легче впн организовать


    1. Dorlas Автор
      06.12.2023 23:58

      В своих сетях все и без VPN бекапят, все работает. Вы бы описали подробнее задачу)))

      Может если через WebDav зацепить Cloud диск куда нибудь, типа в /mnt, может получиться.

      VPN же это просто способ обойти NAT и обеспечить видимость Source/Destination


      1. Dorlas Автор
        06.12.2023 23:58

        Как вариант, дать на оба узла IPv6 через Teredo брокера. Надо попробовать затестить.


        1. Dorlas Автор
          06.12.2023 23:58
          +1

          Затестил - работает!
          Установил miredo на два узла (в разных площадках с разными белыми IP). Адрес Teredo сервера поставил от этот:

          win10.ipv6.microsoft.com

          Работает, бекапит.


      1. Dorlas Автор
        06.12.2023 23:58

        Вообще должно с WebDAV прокатить (в связке с NextCloud например):
        https://docs.nextcloud.com/server/20/user_manual/en/files/access_webdav.html


        1. Dorlas Автор
          06.12.2023 23:58

          Работает так тоже....но немного хромает. Я бы не стал в Production использовать этот метод.


  1. navion
    06.12.2023 23:58
    +2

    В бесплатной версии разве нельзя бекапить сразу в VBR? И для демки я бы использовал Tailscale, где в пару кликов создаётся виртуальная сеть между площадками.


    1. Dorlas Автор
      06.12.2023 23:58

      Можно, но по отдельности мне интереснее было )

      Касательно Tailscale - пишут, что это Торонто, Канада. Пытаюсь заюзать их - не пускает. Похоже что они к санкциям присоединились...


      1. enamchuk
        06.12.2023 23:58

        Попробуйте ZeroTier, с российских IP устанавливается и работает без проблем. Есть поддержка MikroTik с процессором ARM.