Для Centos 5 я беру пакеты вот отсюда: Zmanda Downloads, потому что тут более-менее адекватно собранная последняя версия есть всегда.
Устанавливаем:
# yum install xinted # chkconfig xinetd off (если не нужен) # rpm -Uivh amanda-backup_server-3.1.1-1.rhel5.i386.rpm
Структура каталога настроек
/etc/amanda/название_конфигурации - каталог, где будут храниться все файлы, которые относятся к какому-либо набору. Например, назовем его daily.
/etc/amanda/название_конфигурации/amanda.conf - единственный файл, который нужно создать руками в этом каталоге - собственно, это и есть настройки сервера для данной конфигурации. Владельцем каталога с конфигурацией нужно сделать пользователя, под которым будет рабоать amanda - в случае использования пакетов от Zmanda это amandabackup.
Структура каталогов для данных
Тут все несколько проще - вы вправе выбрать, где это все будет находиться.
Нужно три каталога
- Домашний каталог пользователя amanda (или amandabackup, backup, как вы хотите его обозвать) - обычно создается при установке пакета, вместе с пользователем
- Каталог для штуки, которая называется Holding Disk - временное место, в котором хранятся файлы бекапа до записи на "ленту". Необходимо чтобы место, в котором он смонтирован, было достаточно свободным, чтобы в него можно было записать полный бекап всех машин, которые мы обрабатываем
- Каталог для виртуальной библиотеки лент. В последствии, в нем мы создадим "ленты". Здесь они и будут храниться, так что места тут должно быть достаточно
- Каталог для баз данных с информацией по содержимому лент. Лучше, пожалуй, хранить его недалеко от самих "лент"
Файл конфигурации - /etc/amanda/название_конфигурации/amanda.conf
90% его содержимого понятно, особенно если открыть пример конфига в документации Amanda. Поэтому укажу только его простейшую версию и основные важные моменты.
org "My Company Weekly Set" # заголовок для отчетов mailto "backup-operator@company.com" # кому отправлять отчет после того, # как дамп будет закончен dumpuser "amandabackup" # под каким пользователем делать бекап inparallel 4 dumporder "sssS" taperalgo first displayunit "k" netusage 8000 Kbps dumpcycle 4 weeks # длина цикла резервного копирования runspercycle 4 # число нормальных запусков резервного копирования за период # (4 weeks / 4 amdump runs per cycle -- выходит раз в неделю) tapecycle 6 tapes # число лент, используемых в ротации. # Лучше, чтобы было больше чем runspercycle, на случай ошибок bumpsize 20 Mb bumppercent 20 bumpdays 1 bumpmult 4 etimeout 300 dtimeout 1800 ctimeout 30 device_output_buffer_size 1280k usetimestamps yes flush-threshold-dumped 0 flush-threshold-scheduled 0 taperflush 0 autoflush no runtapes 1 tpchanger "chg-disk" # виртуальный tape-changer для виртуальных же лент, которые # на самом деле - директории на жестком диске tapedev "file://srv/dumps/daily/tapes" # место расположения лент changerfile "/etc/amanda/daily/changer.conf" changerdev "/dev/null" maxdumpsize -1 tapetype harddrive # говорит о том что ленты на самом деле виртуальные labelstr "^daily-[0-9][0-9]*$" # по этому регекспу Amanda будет отличать # правильные "ленты" из этого backup set от # всех прочих. Его нужно запомнить # и использовать при разметке amrecover_do_fsf yes amrecover_check_label yes amrecover_changer "chg-disk" # tape-changer, который используется при операциях # восстановления данных # Holding disk - это временное место на диске, куда записывается резервная копия # до того как будет переписана на "ленту" holdingdisk hd1 { comment "main holding disk" directory "/srv/dumps/daily/hold" # расположение диска use -100 Mb # сколько места использовать # негативное значение значит примерно "использовать # все доступное, но оставить 100 свободных мегабайт" chunksize 1Gb # Позволяет разбивать файлы на части указанного размера } infofile "/srv/dumps/daily/info/curinfo" # database DIRECTORY logdir "/srv/dumps/daily/info/logs" # log directory indexdir "/srv/dumps/daily/info/index" # index directory tapelist "/etc/amanda/daily/tapelist" # list of used tapes define tapetype harddrive { comment "Local hard drive" length 150000 mbytes } # Типы данных. Самая интересная часть. Это, собственно, то самое, что вы # будете указывать в disklist. # То что будет делать amanda. И да, их можно наследовать, подобно классам в ООП :) define dumptype global { comment "Global definitions" # Я уже говорил, что предпочитаю ssh другим способам коммуникации между сервером и клиентом. auth "ssh" # Ключ, который использует сервер для подключения # (его публичный кусок и добавим в authorized_keys на клиентах) ssh_keys "/var/lib/amanda/.ssh/id_rsa" # пользователь, под которым запускается резервное копирование на клиенте client_username "amandabackup" amandad_path "/usr/libexec/amanda/amandad" } # наследуемый из global тип дампа с помощью tar без сжатия define dumptype root-tar { global program "GNUTAR" comment "root partitions dumped with tar" compress none index #exclude list "/etc/amanda/exclude.gtar" priority low } # А это то же самое, но со сжатием GZ define dumptype comp-root-tar { root-tar comment "Root partitions with compression" compress client fast } define interface local { comment "a local disk" use 8000 kbps } # Можно даже включать в конфигурацию какие-то отдельные файлы. # Это может быть удобно чтобы хранить dumptypes в отдельном файле и использовать, # разделяя их между разными конфигурациями #includefile "/etc/amanda/amanda.conf.main"
С такой конфигурацией остается только создать все необходимые каталоги и промаркировать "ленты".
[root@amanda-server ~]# mkdir /srv/dumps [root@amanda-server ~]# chown amandabackup:disk /srv/dumps [root@amanda-server ~]# su - amandabackup -sh-3.2$ cd /srv/dumps -sh-3.2$ mkdir -p mkdir -p daily/hold daily/info/{curinfo,logs,index} daily/tapes -sh-3.2$ for i in `seq 1 6` ; do mkdir slot$i ; done # 6 "лент" -sh-3.2$ ln -s slot1 data -sh-3.2$ for i in `seq 1 6` ; do amlabel daily daily-0$i slot $i; done Reading label... Found an empty tape. Writing label 'daily-01'... Checking label... Success! ...
После этого надо сделать возможной авторизацию по ключам SSH:
-sh-3.2$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/amanda/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/amanda/.ssh/id_rsa. Your public key has been saved in /var/lib/amanda/.ssh/id_rsa.pub.
Чтобы протестировать возможность резервного копирования на самом себе, содержимое id_rda.pub нужно скопировать в /var/lib/amanda/.ssh/authorized_keys.
-sh-3.2$ cp /var/lib/amanda/.ssh/id_rsa.pub ~/.ssh/authorized_keys
Далее сделаем так, чтобы ключ хоста стал известен:
-sh-3.2$ ssh amanda-server The authenticity of host 'amanda-server (127.0.0.1)' can't be established. RSA key fingerprint is 78:39:b0:50:8c:5f:be:ab:90:da:2b:55:36:24:46:94. Are you sure you want to continue connecting (yes/no)? yes
Создадим файл /etc/amanda/daily/disklist:
amanda-server /etc comp-root-tar
И протестируем то что получилось:
-sh-3.2$ amcheck daily Amanda Tape Server Host Check ----------------------------- Holding disk /srv/dumps/daily/hold: 17190912 KB disk space available, using 17088512 KB slot 6: volume 'daily-06' Will write to volume 'daily-06' in slot 6. NOTE: skipping tape-writable test NOTE: host info dir /srv/dumps/daily/info/curinfo/amanda-server does not exist NOTE: it will be created on the next run. NOTE: index dir /srv/dumps/daily/info/index/amanda-server does not exist NOTE: it will be created on the next run. Server check took 1.233 seconds Amanda Backup Client Hosts Check -------------------------------- Client check: 1 host checked in 6.614 seconds. 0 problems found.
Вроде-бы все ОК
Если вдруг вам говорят что EOF on read, Host key verification failed, внимательно проверьте хостнейм клиента.
Теперь можно попробовать сделать первый бекап:
-sh-3.2$ amdump daily
Отчет придет на почту, указанную в файле конфигурации
Комментариев нет:
Отправить комментарий