Заметки о том, как я пытался забэкапить папку Linux на Ubuntu Server с помощью Veritas Backup Exec 20. Несколько раз наступил на грабли, получил полезный опыт, в итоге резервное копирование было-таки настроено.
Бэкапить собираюсь папку на сервере Ubuntu. На Ubuntu установлен агент RALUS:
RALUS — Backup Exec Remote Agent для Linux и UNIX серверов
Тестовый стенд представляет собой сервер Window c Veritas Backup Exec 20. Резервирование Linux настраиваю по мануалу:
Veritas Backup Exec 20 — резервирование папки Linux
Ошибка первая — RALUS
При попытке добавить сервер получаю ошибку:
В данном случае решение простое, нужно проверить, установлен ли на целевом сервере агент RALUS и запущен ли он. У меня агент оказался не запущен, я просто забыл. Запускаю агент:
/etc/init.d/VRTSralus.init start
Ошибка вторая — локальный пользователь
Снова пытаюсь добавить сервер и получаю ошибку:
Backup Exec не может пройти аутентификацию. Всё проверяю, логин, пароль. Логинюсь по SSH с Windows сервера с Backup Exec на Ubuntu. Всё работает, а ошибка остаётся. Методом научного тыка выясняю, что проблема была в том, что я пытался залогиниться под доменной учётной записью, несмотря на то, что доменная аутентификация на сервере Ubuntu разрешена, RALUS требует именно локальную учётную запись. Создаю её.
Ошибка третья — группа beoper
В третий раз он закинул невод. Снова ошибка:
Ошибка информативная. Учётная запись не входит в группу операторов Backup Exec — beoper. Добавляю пользователя в группу beoper:
usermod -a -G beoper my_local_username
Ошибка четвёртая — подсеть
Наконец-то сервер добавлен. Сервер dns00 добавился в список, при этом написано "Никогда не было резервного копирования".
Правой кнопкой > Резервное копирование > Резервное копирование на диск.
Выбираем "Резервное копирование с использованием агента". Далее.
Теперь нужно выбрать свойства резервного копирования.
Слева выбираем что копировать. Кнопка "Проверить/изменить иден..." позволит сменить пользователя. Для выбора папок нажимаем "Изменить".
Выбираем нужные папки для резервного копирования. Замечу, что список папок выводится. OK.
Справа настраиваем расписание и свойства резервного копирования. OK.
А теперь пытаюсь, собственно, выполнить резервное копирование, и оно завершается с ошибкой:
Серверу Backup Exec не удалось подключиться к удаленному компьютеру dns00 посредством подсети 10.12.60.0/24 через сетевой интерфейс Ethernet0.
Подсеть 10.12.60.0/24 — это подсеть сервера Backup Exec, сервер Ubuntu живёт в другой подсети. Вероятно, возникла какая-то проблема на сетевом уровне.
На самом деле проблема совершенно другая, не связанная с сетью, и это камень в огород Veritas Backup Exec. Вот что им стоило по-другому написать ошибку, и я бы сэкономил кучу времени, но обо всём по порядку.
Начинаю траблшутинг.
Траблшутинг — поиск и устранение неисправности с применением систематического подхода. Как правило, проблема может находиться в одном или нескольких звеньях цепи между точкой A и точкой Б. Есть несколько подходов к решению проблемы:
- Идти последовательно от точки А к точке Б, проверяя каждое звено цепи.
- Идти последовательно от точки Б к точке А, проверяя каждое звено цепи.
- Метод деления отрезка пополам: проверить звено в середине цепи, выяснить в каком участке наблюдается проблема, перейти к нему.
- Инженер на основе собственного опыта определяет звено с наиболее вероятным источником проблемы, после переходит к следующему звену с менее вероятным источником проблемы и так далее.
Логирование RALUS
Я начал с конца, т.е. с сервера Ubuntu. Посмотрим логи агента RALUS, для этого запустим его в debug mode. Правим в файле /etc/VRTSralus/ralus.cfg опцию RANT NDMP Debug Level, она по умолчанию 0:
Software\Symantec\Backup Exec For Windows\Backup Exec\Engine\Logging\RANT NDMP Debug Level=1
Больше логов:
Software\Symantec\Backup Exec For Windows\Backup Exec\Engine\Logging\RANT NDMP Debug Level=2
Останавливаем агент:
/etc/init.d/VRTSralus.init stop
Для отображения списка вариантов запуска:
cd /opt/VRTSralus/bin
./beremote --help
Запускаем агент вручную в DEBUG режиме с выводом в консоль:
cd /opt/VRTSralus/bin
./beremote --log-console
Запускаем агент вручную в DEBUG режиме с выводом в файл:
cd /opt/VRTSralus/bin
./beremote --log-file <file name>
Запускаем агент вручную в DEBUG режиме с выводом в консоль и в файл:
cd /opt/VRTSralus/bin
./beremote --log-console --log-file <file name>
Анализирую логи в момент попытки бэкапа и не вижу ничего криминального, обращений нет.
Снифер пакетов tcpdump
Для собственного успокоения проверяю, приходят ли какие-нибудь пакеты с Backup Exec с помощью tcpdump:
tcpdump — анализатор сетевого трафика
Не приходят пакеты.
Снифер пакетов Wireshark
Проверю, уходят ли пакеты с Backup Exec. Мне в помощь Wireshark.
Wireshark — анализатор сетевого трафика
Не уходят пакеты.
А вот это уже интересно. Круг поисков ограничился самим Veritas Backup Exec 20.
Логирование Backup Exec
Veritas Backup Exec 20 позволяет выполнить резервное копирование с включённым режимом дебага. Для этого выбираем задание резервного копирования и в контекстном меню (правой кнопкой) нажимаем "Выполнять с включенной отладкой".
Подтверждаем выполнение. OK.
В журнале задания появляется новый блок:
Данные журнала отладки для задания.
Здесь указываются файлы логов, которые можно использовать для поиска и устранения неисправности:
C:\Program Files\Veritas\Backup Exec\logs\CRON01-bengine02.log C:\Program Files\Veritas\Backup Exec\logs\CRON01-beremote01.log
Анализирую логи и нахожу ошибку:
NDMPAgentConnector::HandleConnectionError: ndmpConnect failed: The remote machine dns00 was not detected on the selected subnet 10.12.60.0/24 via network interface Ethernet0, and the 'Fallback' option was not chosen.
Ошибка почти та же самая, что и в журнале резервного копирования, за исключением одного "..and the 'Fallback' option was not chosen". Получается, что есть некоторая опция Fallback, которую можно выбрать. Углубляюсь в настройка Backup Exec и нахожу эту опцию:
Разрешить использование любого доступного сетевого интерфейса, подсети или протокола для агентов Backup Exec, не связанных с указанным выше сетевым интерфейсом, подсетью или протоколом.
Получается, что по умолчанию Backup Exec может бэкапить сервера с помощью агента только из той же подсети. Независимо от того, может ли Backup Exec видеть содержимое директорий сервера или нет.
Галку можно установить и для каждого задания в отдельности и глобально для всего Backup Exec.
Устанавливаю галку и проблема устранена. Удачного дебага.