вторник, 22 июня 2010 г.

Advanced Maryland Automatic Network Disk Archiver!

В годы молодости, когда опыт работы с Linux был маленьким, все равно хотелось
делать бекапы. Тогда и были найдены такие вещи как Amanda и Bacula, но новичку
было не так просто разобраться с ними и я пользовался маленьким и простым
backup-manager. Вот уже прошли годы и я умею и Bacula и Amanda, и хотелось бы
рассказать совсем чуть-чуть про то что начинается с А.
Amanda напоминает штуковину, которую многие бы написали самостоятельно. Но в то
же время она несколько своеобразна.

Начнем с того что это как-бы вроде и клиент-серверная система. То есть на
клиенте ставится маленькая клиентская часть, к ней подключается серверная,
посылает ей команды и получает данные. Но стоит заметить, что ни клиент, ни
сервер, не запущены постоянно. Обычно оба работаеют (по оригинальной задумке)
через inetd, а часть сервера (amdump) и вовсе запускается через крон.

Вторая интересная особенность amanda - это то как организованы в ней уровни
бекапов - полный и инкрементный. Дело в том что очень непросто сделать их
жесткими по расписанию. amanda хочет определять самостоятельно, какой вид
бекапа делать, так чтобы уменьшить их объем и количество "лент", необходимых
для восстановления, пользуясь опрелением объема дампа, длиной цикла резервного
копирования и количеством доступных "лент". В ее работе использутся понятия
"уровень бекапа", схожие с теми что используются в unix-программке dump - т.е. 0
- это полный бекап, уровень 1 - бекап всех измененных со времени 0-го уровня,
2 - изменения после последнего уровня 1 и т.д.
На самом деле жестко задавать уровень бекапа никогда не было особо полезно (так
как точно сказать, когда вообще имеет смысл делать полный бекап невозможно -
особенно если среди недели может вдруг поменяться 90% данных и ваши
дифференциальные бекапы вдруг станут намного больше чем ожидалось), так
что такая схема даже хороша.

От схемы с использованием inetd, конечно же, есть прок, но на мой взгляд лучше и
безопаснее использовать amanda в связке с ssh и авторизацией по
публичным/приватным ключам - авторизация лучше, передача бекапа по сети
зашифрована. К счастью, Amanda позволяет делать это, и я расскажу, как это
делать.

Кроме того, amanda поддерживает множество конфигураций и наборов "лент". Вы
можете сделать отдельные наборы и настройки для разных видов данных, хранить их
в разных местах и использовать разную периодичность с большой легкостью,
например, одна из них будет делать ежедневные бекапы важных данных, а другая -
еженедельные бекапы менее важных и более объемных.

amanda легко может быть зарезервирована путем полного зеркалирования
конфигурации, "лент" и оглавления в другую страну или датацентр, просто
используя rsynс. Она не требует для своей работы никаких дополнительных сервисов
вроде MySQL или Postgres, чтобы просто помнить, где и какой файл записан.

Amanda может быть расширена с вашими собственными средствами копирования
необычных данных, например баз данных, ldap-каталогов и т.д. - у нее неплохая
поддержка скриптинга. Так же легко прикрутить к ней асимметричное шифрование от
gpg и я даже расскажу, как это делать.

Ну и последнее - она хороша тем, что вы можете распаковать резервную копию и без
amanda, потому что формат предельно прост, и даже в каждой ленте есть заголовок
с командой вида dd | gzip -d | tar, которой можно легко воспрользоваться.

Собственно, этим я и начну небольшой цикл статей про amanda.

Комментариев нет:

Отправить комментарий