· 16 мин чтения

Amanda Network Backup: корпоративный бэкап для смешанной инфраструктуры Linux и Windows

Семёнов Евгений Сергеевич, директор АйТи Фреш. Amanda — один из самых недооценённых инструментов резервного копирования. Проект живёт с 1991 года, стабилен как гранит, гибок и полностью бесплатен в Community-версии. У меня на нём построено несколько инфраструктур клиентов по 30–200 серверов, и за 8 лет эксплуатации ни один бэкап не «развалился» при восстановлении. В этой статье разберу полный цикл развёртывания: от установки сервера до автоматических отчётов в Telegram.

Когда имеет смысл Amanda, а когда нет

Amanda хорошо вписывается в средние смешанные инфраструктуры: 20–200 клиентов, Linux + Windows, файловые данные + СУБД. Сильные стороны — гибкость планирования, нативная работа с лентой и диском, встроенное шифрование и дедупликация (в Enterprise), минимальные требования к серверу.

Для офиса на 30–50 серверов Amanda — почти идеальный выбор: бесплатна, документирована, с активным сообществом.

Архитектура и компоненты

Amanda состоит из сервера и клиентов. На сервере крутится планировщик amdump, драйверы устройств (taper, chunker), демон amandad. На клиентах — тот же amandad в режиме клиента, который слушает запросы сервера.

КомпонентРоль
amdumpОсновной планировщик цикла бэкапа
amandadДемон на сервере и клиенте (порт 10080/udp+tcp)
taperЗапись на ленту/диск
chunkerРазбивает потоки на чанки для параллельной записи
amrestore/amrecoverУтилиты восстановления
amcheckПредварительная проверка перед бэкапом

Подготовка сервера Amanda

Рекомендуемый сервер: Debian 12 или Ubuntu 22.04 LTS, 4 vCPU, 16 ГБ RAM, отдельный диск под vtape минимум в три раза больше суммарного объёма данных клиентов. У меня типовая конфигурация для офиса на 50 серверов — 20 ТБ на бэкап, плюс 20 ТБ на удалённую копию в S3.

apt update
apt install -y amanda-server amanda-client amanda-common xinetd gnuplot

# Пользователь amandabackup создаётся автоматически
id amandabackup
# uid=34(backup) gid=34(backup) groups=34(backup),6(disk),40(tape)

# Структура каталогов
mkdir -p /etc/amanda/daily
mkdir -p /var/lib/amanda/daily/{curinfo,index,tapelist}
mkdir -p /backups/vtape/daily/slots
chown -R backup:backup /etc/amanda /var/lib/amanda /backups

Базовый конфиг daily

Основной файл — /etc/amanda/daily/amanda.conf. Минимальная рабочая конфигурация с виртуальной лентой на диске:

org "itfresh-daily"
mailto "admin@corp.example.ru"
dumpuser "backup"
inparallel 4
dumpcycle 7
runspercycle 5
tapecycle 15 tapes
runtapes 1
netusage 500 Mbps
labelstr "^daily-[0-9][0-9]*$"
tapetype HARDDISK
tpchanger "chg-disk:/backups/vtape/daily/slots"

define tapetype HARDDISK {
  length 500 gbytes
  filemark 4 kbytes
  readblocksize 128 kbytes
}

define dumptype global {
  comment "Global defaults"
  auth "bsdtcp"
  compress none
  encrypt client
  client-encrypt "/usr/sbin/amcrypt-ossl"
  client-decrypt-option "-d"
  holdingdisk yes
  record yes
  index yes
}

define dumptype gzip-encrypt {
  global
  compress client fast
  program "GNUTAR"
}

Файл disklist определяет, что именно бэкапить с каждого клиента:

# /etc/amanda/daily/disklist
srv-file01.corp.example.ru  /srv/share1     gzip-encrypt
srv-file01.corp.example.ru  /srv/share2     gzip-encrypt
srv-db01.corp.example.ru    /var/lib/mysql  gzip-encrypt
srv-mail.corp.example.ru    /var/vmail      gzip-encrypt
win-file02                  D:/Data         gzip-encrypt

Установка клиента на Linux

# На клиенте
apt install -y amanda-client amanda-common xinetd

# /etc/amanda/amandahosts
echo "amanda-server.corp.example.ru backup amdump" > ~backup/.amandahosts
chown backup:backup ~backup/.amandahosts
chmod 600 ~backup/.amandahosts

# /etc/xinetd.d/amanda — включаем сервис
systemctl restart xinetd
ss -lntup | grep 10080

Клиент Windows

Для Windows-серверов Zmanda выпускает собственный инсталлятор amanda-client-win. Устанавливается как служба, интегрируется с VSS для согласованных снапшотов. После установки:

# PowerShell на Windows-клиенте
net start Amanda
# В C:\amanda-config\amandahosts добавить сервер
"amanda-server.corp.example.ru backup amdump" | `
  Out-File C:\amanda-config\amandahosts -Encoding ascii

Первый запуск и проверка

# Подготовка виртуальных "лент"
for i in 01..15; do
  su - backup -c "amlabel daily daily-$i slot $i"
done

# Проверка инфраструктуры
su - backup -c "amcheck daily"

# Первый прогон бэкапа
su - backup -c "amdump daily"

# Посмотреть отчёт
su - backup -c "amstatus daily"

Если amcheck пишет «client hello ok» и «tape daily-01 writable», инфраструктура готова. Первый amdump запустит полный бэкап всех DLE — в зависимости от объёма занимает от 2 до 12 часов.

Автоматизация и отчёты в Telegram

Планируем через cron:

# /etc/cron.d/amanda
0 23 * * 1-6 backup /usr/sbin/amdump daily
0 8  * * 1-6 backup /usr/local/bin/amanda-tg-report.sh daily

Скрипт amanda-tg-report.sh дергает amreport и шлёт сводку в Telegram-бот:

#!/bin/bash
CFG="$1"
TG_TOKEN="1234567:AAA..."
TG_CHAT="-1001234567890"
REPORT=$(su - backup -c "amreport -f $CFG" 2>&1 | head -60)
curl -s -X POST "https://api.telegram.org/bot$TG_TOKEN/sendMessage" \
  -d chat_id="$TG_CHAT" \
  --data-urlencode text="Amanda $CFG:
$REPORT"

Восстановление данных

Восстановление — это зачем всё затевалось. Три основных сценария:

# 1) Интерактивное восстановление отдельных файлов
su - backup -c "amrecover daily"
# > sethost srv-file01.corp.example.ru
# > setdisk /srv/share1
# > setdate 2025-04-18
# > cd Финансы/2024
# > add *
# > extract

# 2) Полное восстановление раздела
amrestore -b 128 -p daily-05 srv-file01.corp.example.ru /srv/share1 | \
  restore -rf -

# 3) Восстановление на другую машину
amfetchdump daily srv-file01 /srv/share1 /restore-area/

Реальный кейс: внедрение на 45 серверов

В июне 2024 мы запускали Amanda у клиента — проектно-строительная компания на 45 серверов Linux и Windows. До этого бэкап делался скриптами rsync на NAS-коробку с журналированием через свои bash-обёртки. Когда в апреле восстанавливали удалённую папку из трёхмесячной давности, выяснилось, что ротация затёрла нужный момент — данные восстановить не удалось.

Проект занял 9 рабочих дней. На сервере в нашем дата-центре МТС Москва выделили виртуалку с 8 ядрами Dell Xeon Platinum 8280 и 16 ТБ дискового массива. Схема: ежедневный vtape на локальном диске (цикл 7 дней, 15 слотов), еженедельная копия в S3-совместимое хранилище. Настроили 4 разные конфигурации (daily, weekly, monthly, quarterly) с разным ретеншеном.

Стоимость проекта 145 000 руб. Через месяц после запуска восстанавливали 2 ТБ почтового архива — 1 час 40 минут, чистое восстановление. Сейчас Amanda у этого клиента работает второй год, RPO 24 часа, RTO 2 часа.

Типичные ошибки и как их избежать

Развернём Amanda под вашу инфраструктуру

От проектирования схемы хранения до настройки мониторинга и регулярных учений восстановления. Для офисов 30–200 серверов ставлю Amanda Community с отчётами в Telegram/почту и регулярным тестированием. Запуск за 5–10 рабочих дней, сопровождение на абонентской основе. Инфраструктура АйТи Фреш — 8 серверов Dell Xeon Platinum 8280 с 40G Mellanox в дата-центре МТС Москва — позволяет хостить ваши копии у нас.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы по Amanda

Amanda только для ленточных библиотек?
Нет. Amanda одинаково работает с ленточными библиотеками LTO, дисковыми хранилищами (vtape), S3-совместимыми объектными хранилищами через amanda-s3. Чаще всего используется связка локальный диск + удалённая копия в S3.
В чём разница между Amanda Community и Amanda Enterprise?
Community — бесплатная версия, всё конфигурируется текстовыми файлами, управление через CLI. Enterprise (Zmanda) — платная, добавляет веб-консоль, API, встроенную дедупликацию, поддержку VMware и баз данных. Для большинства офисов хватает Community.
Как Amanda бэкапит Windows-серверы?
Через клиент Amanda for Windows, который устанавливается как служба. Использует Cygwin-обёртку, поддерживает VSS для согласованных снапшотов системы.
Можно ли шифровать бэкапы?
Да, серверное шифрование через amcrypt и клиентское через amcrypt-ossl с GPG-ключами. Клиентское предпочтительнее — тогда данные уходят с клиента уже зашифрованными.
Как часто нужно делать полный бэкап?
Amanda использует модель dumpcycle: выбираете длину цикла (обычно 7 дней), и планировщик сам раскидывает full и инкрементальные бэкапы так, чтобы равномерно нагружать хранилище.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.