Amanda, или Advanced Maryland Automatic Network Disk Archiver, — один из старейших свободных комплексов резервного копирования. Центральный сервер сам строит план: решает, какие каталоги копировать полностью, какие инкрементально, сколько томов потребуется и когда освободится носитель. Клиенты передают данные по сети, сервер складывает их сначала на holding disk, а уже потом на ленту, дисковый массив или виртуальные тома. Ниже — установка, конфигурация, первый запуск, восстановление и разбор типичных сбоев.
Как устроен цикл копирования
Главная команда — amdump. Она запускает планировщик, тот оценивает объём данных по прошлым запускам, распределяет задания по потокам и передаёт их клиентским демонам amandad. Каждый клиент упаковывает данные через amgtar и отправляет поток на сервер. Сервер пишет его в holding disk, после чего освобождает место на носителе и переносит дампы туда. Сведения о томах хранятся в tapelist, а индексы файлов — в каталоге индексов, если включён параметр index yes.
- dumpcycle — за сколько дней должен уложиться полный цикл копирования всех дисков.
- runspercycle — сколько запусков amdump происходит за этот цикл.
- tapecycle — сколько томов участвует в ротации; том переиспользуется только после полного круга.
- inparallel — сколько клиентов могут передавать данные одновременно.
Эти четыре числа задают политику хранения: при dumpcycle и runspercycle, равных семи, полный бэкап каждого диска планируется раз в неделю, а в остальные дни — инкременты.
Установка сервера и клиента
В Debian и Ubuntu пакеты разнесены по ролям. На сервер ставятся amanda-server и amanda-common, на клиента — amanda-client. Amanda запускается из cron или systemd-таймера, поэтому после установки нужно только подготовить каталоги и пользователя backup, от имени которого работает служба.
sudo apt update
sudo apt install amanda-server amanda-client
sudo mkdir -p /srv/amanda/vtapes /srv/amanda/holding /etc/amanda/daily
sudo chown -R backup:backup /srv/amanda /etc/amanda/daily
Каталог конфигурации — это имя набора. Создайте /etc/amanda/daily: слово daily передаётся во все команды. Примеры конфигурации ищите в /usr/share/doc/amanda-server/.
Минимальный amanda.conf
Файл /etc/amanda/daily/amanda.conf описывает организацию, почту для отчётов, политику ротации и носитель. Для дискового массива удобно использовать changer chg-disk: он представляет каталоги как слоты виртуальной ленты и не требует оборудования.
org "Backup"
mailto "admin@example.ru"
dumpuser "backup"
dumpcycle 7
runspercycle 7
tapecycle 20
inparallel 4
tpchanger "chg-disk:/srv/amanda/vtapes"
holdingdisk hd1 {
directory "/srv/amanda/holding"
use 200 Gb
}
Отдельно объявляется тип дампа. Наследник классического gnutar — приложение amgtar: оно умеет ACL, расширенные атрибуты и корректно работает с современными файловыми системами.
define dumptype daily-compress {
auth "bsdtcp"
program "APPLICATION"
application "amgtar"
compress client fast
strategy incr
estimate client
index yes
}
Клиенты и disklist
Список того, что копируется, задаётся в /etc/amanda/daily/disklist. Формат простой: хост, точка монтирования и тип дампа. Один и тот же хост может встречаться несколько раз с разными каталогами.
backup.example.ru /etc daily-compress
backup.example.ru /var/www daily-compress
db.example.ru /var/lib/postgresql daily-compress
На клиенте нужен файл /etc/amanda/amanda-client.conf с именем набора и адресом индексного сервера. Аутентификация bsdtcp не использует SSH, поэтому на сервере и клиентах надо открыть порты 10080–10083/tcp только для адресов резервного сервера.
conf "daily"
index_server "backup.example.ru"
auth "bsdtcp"
Первый запуск
Перед первым дампом конфигурацию проверяют командой amcheck. Она валидирует файлы, доступность клиентов, свободное место и состояние томов. Затем том маркируют, запускают копирование и смотрят отчёт.
sudo -u backup amcheck daily
sudo -u backup amlabel daily Daily-01 slot 1
sudo -u backup amdump daily
sudo -u backup amreport daily
Запуск amdump вручную нужен только для проверки. В рабочем режиме его ставят в cron на ночь, а amcheck — на утро, чтобы получить письмо о проблемах до того, как они накопятся. Отчёт amreport показывает, сколько данных прошло, какие задания не уложились и сколько места осталось на томах.
Восстановление данных
Сначала находят нужные дампы в каталоге индексов. Команда amadmin find принимает хост и путь, а amfetchdump выгружает найденные архивы в текущий каталог. Дальше работает обычный tar.
sudo -u backup amadmin daily find srv1 /etc
sudo -u backup amfetchdump daily srv1 /etc
sudo mkdir -p /srv/restore
sudo tar -xzf srv1._etc.*.tar.gz -C /srv/restore
Если данные лежат на ленте, которую уже убрали в архив, используйте amrestore с указанием устройства. Восстановление проверяют на тестовом каталоге: amfetchdump не перезаписывает файлы, но tar при ошибке пути способен навредить.
Диагностика
Все логи набора лежат в /var/log/amanda/daily/. Во время работы полезен amstatus: он показывает, какие задания ещё выполняются и с какой скоростью. Если holding disk переполнился, дампы остаются на нём, а том не записывается — тогда помогает amflush после освобождения места.
sudo -u backup amstatus daily
sudo -u backup amcheck daily
sudo -u backup amflush daily
sudo tail -n 50 /var/log/amanda/daily/amdump.*
- «No space left» на holding disk — уменьшите inparallel или увеличьте раздел; нехватка места блокирует весь запуск.
- Клиент недоступен — проверьте
amcheck, порты 10080–10083 и совпадение имени в disklist с именем в конфиге клиента. - Том не маркируется — убедитесь, что каталоги слотов принадлежат пользователю backup и не заняты другим запуском.
- Планировщик отказывается работать — чаще всего кончились свободные тома:
tapecycleменьше требуемого.
Чек-лист перед вводом в строй
- Отдельный пользователь backup и права только на свои каталоги.
- Holding disk вмещает самый крупный полный бэкап.
tapecycleзаметно больше срока хранения, который обещан пользователям.- Письма от amreport доходят до дежурного, а не в спам.
- Восстановление отдельного файла и целого каталога проверено вручную.
- Для долгосрочного архива настроен
amvault— копирование томов во второй набор. - Доступ к портам Amanda ограничен адресами серверов.
Итог
Amanda остаётся рабочей лошадкой там, где нужен централизованный план, ротация носителей и понятный отчёт, а не модный веб-интерфейс. Она требует аккуратной первичной настройки: политика ротации, holding disk и проверка восстановления важнее, чем количество параметров. Начните с одного набора и трёх клиентов, прогоните amcheck и amdump, восстановите файл из копии — и только после этого расширяйте парк. Для дискового массива chg-disk избавляет от ленточного оборудования, а amvault закрывает задачу выноса копий за пределы площадки.