Для 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
Отчет придет на почту, указанную в файле конфигурации
Комментариев нет:
Отправить комментарий