Amanda Network Backup: корпоративный бэкап для смешанной инфраструктуры Linux и Windows
Семёнов Евгений Сергеевич, директор АйТи Фреш. Amanda — один из самых недооценённых инструментов резервного копирования. Проект живёт с 1991 года, стабилен как гранит, гибок и полностью бесплатен в Community-версии. У меня на нём построено несколько инфраструктур клиентов по 30–200 серверов, и за 8 лет эксплуатации ни один бэкап не «развалился» при восстановлении. В этой статье разберу полный цикл развёртывания: от установки сервера до автоматических отчётов в Telegram.
Когда имеет смысл Amanda, а когда нет
Amanda хорошо вписывается в средние смешанные инфраструктуры: 20–200 клиентов, Linux + Windows, файловые данные + СУБД. Сильные стороны — гибкость планирования, нативная работа с лентой и диском, встроенное шифрование и дедупликация (в Enterprise), минимальные требования к серверу.
- Подходит: файлы, почтовые архивы, СУБД (через pre/post-скрипты), VMware, /etc и конфиги.
- Не подходит: дедупликация образов виртуалок на уровне блоков (тут Bareos или Proxmox Backup Server).
- Спорно: очень крупные инфраструктуры (>500 клиентов) — лучше Bacula/Bareos или коммерческие решения.
Для офиса на 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 часа.
Типичные ошибки и как их избежать
- Не проверяется amcheck. Запускайте каждую ночь до amdump — словите проблемы доступа до того, как оно сорвёт бэкап.
- Нет ретеншена на лентах. Если tapecycle меньше dumpcycle — сервер может перезаписать активный бэкап.
- holdingdisk слишком мал. Ставьте 1.5× от размера самого большого DLE, иначе serial-запись на ленту бутылочное горлышко.
- Забывают о тестовом восстановлении. Раз в квартал прогоняйте полное восстановление случайной DLE на тестовую машину — единственный способ убедиться, что бэкап реально работает.
- Windows-клиенты без VSS. Бэкап живой БД без VSS даёт битый файл — настройте skip-executable или включите VSS в конфиге клиента.
Развернём 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 и инкрементальные бэкапы так, чтобы равномерно нагружать хранилище.