Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> программы —> Amanda

Резервное копирование с помощью AMANDA.

Автор: tango.


Установка и настройка сервера резервного копирования Amanda на FreeBSD.
Цель- создавать бэкапы юниксовых серверов в хранилище на жестком диске.

Аманду ставим из портов.
Думаю излишне будет напоминать что для начала неплохо бы их обновить.

asterisk# cd /usr/ports/misc/amanda-server/
asterisk# make install clean

Будет предложено выбрть дополнительные опции.
Тут уж смотрите по вашему вкусу и потребностям.

Amanda-server автоматически потянет за собой amanda-client.
Никаких сложностей в процессе установки возникнуть не должно. Всё быстро и стандартно.

Следующий этап - конфигурация нашего сервера...
Править будем 4 файла:

amanda.conf
disklist
.amandahosts
inetd.conf


Файлы конфигурации Amanda расположены в директории /usr/local/etc/amanda/DailySet1.
Кроме того нам нужно создать директорию где будут храниться наши "архивы" (бэкапы).
У меня это - /opt/amanda_backups.
А также проверить наличие директорий:
/var/log/amanda/DailySet1 ;
/tmp/amanda ;
/var/hold (это если будете использовать hold-disk,
кстати разместить его можете где угодно, на ваше усмотрение).
Если чего то нет- создать.

Пользователь от имени которого работает сервер- operator,
группа- operator.
Следовательно все директории (и их содержимое), необходимые для работы сервера,
должны принадлежать "operator".

Проверяем и если это не так- меняем:

asterisk# chown -R operator:operator /usr/local/etc/amanda 
asterisk# chown -R operator:operator /opt/amanda_backups
asterisk# chown -R operator:operator /var/log/amanda
asterisk# chown -R operator:operator /var/hold
asterisk# chown -R operator:operator /tmp/amanda

Так как в процессе настройки и отладки Аманды нам придется пользоваться shell'ом,
временно дадим "operator'у" шелл:

asterisk# pw user mod operator -s /bin/sh

ну или какой нибудь другой, ваш любимый. :)

И так, начнем.
Файл amanda.conf

org "Company"            # имя вашей компании, используется в отчетах e-mail
mailto "root@localhost"  # собственно сам e-mail для отчетов
inparallel 4             # количество одновременно работающих процессов dumper
netusage 100000          # какую пропускную способность канала использовать
dumpcycle 5 days         # цикл за который создается бэкап 0 -уровня
tapecycle 7              # число лент, используемых в цикле (dumpcycle), 
                         # неплохо иметь некоторый запас
usetimestamps            # параметр который можно указать на период отладки и 
                         # тестирования без него Аманда будет слать алерты о том,
                         # что amdump запускается чаще чем один раз в сутки 

runspercycle 5           # сколько раз за цикл (dumpcycle) будет запущен amdump
runtapes 1               # сколько лент будет использовано за один запуск amdump
tpchanger "chg-disk"     # чейнджер для смены виртуальных лент на жестком диске

changerfile "/usr/local/etc/amanda/DailySet1/changer" # служебный файл чейнджера, 
                                                      # создавать его не надо

# устройство вывода
tapedev "file:/opt/amanda_backups"                    

# куда писать логи
logdir "/var/log/amanda/DailySet1"                    

# директория для служебных index-файлов
indexdir "/usr/local/etc/amanda/DailySet1/index"      

# директория для служебных info-файлов
infofile "/usr/local/etc/amanda/DailySet1/curinfo"    

# в этом файле указываем что бэкапить
diskfile "/usr/local/etc/amanda/DailySet1/disklist"   

# служебный файл управления лентами; создайте пустым
tapelist "/usr/local/etc/amanda/DailySet1/tapelist"   

# Параметры необходимые для процесса восстановления
amrecover_do_fsf yes
amrecover_check_label yes
amrecover_changer "chg-disk"

# Описание ленточных накопителей
tapetype HARD-DISK                 # тип накопителя;
labelstr "^ARCHIVE-[0-9][0-9]*$"   # шаблон для маркировки лент;

# "характеристики" накопителя; для архивации на жесткий диск достаточно минимума;
define tapetype HARD-DISK {
comment "On Hard Disk"  
length 3000 mbytes                 # объем накопителя
}


# Глобальные опции
define dumptype global {
comment "Global definitions"
index yes                        # создавать ли индекс бэкапа;
record yes                       # изменять ли информацию в файлах dumpdates 
                                 # или gnutar-lists во время тестов;
ignore no                        # пропускать ли бэкапирование;
priority high                    # приоритет;
}

# Параметры архивации с использованием TAR
define dumptype hard-disk-tar {
global
comment "Backup to hard disk- using tar"
compress none
dumpcycle 5
program "GNUTAR"
holdingdisk yes   # используем "резервный" временный носитель
                  # если лента по какой либо причине не доступна;
}

# Параметры архивации с использованием DUMP
define dumptype hard-disk-dump {
global
comment "Backup to hard disk- using dump"
compress none
dumpcycle 5
program "DUMP"
holdingdisk yes
}

# Характеристики hold-диска
# hold-disk выступает в качестве резервного накопителя, 
# на случай если по какой то причине ленты будут не доступны
# архивация будет все равно выполнена; после устранения неполадок, 
# архив автоматически будет записан на ленту

holdingdisk hd1 {
    comment "For holding disk"
    directory "/var/hold"
    use 7 g             # максимальный используемый объем
    chunksize 1 g       # на части какого размера разбивать архивы
}

# Описание сетевых интерфейсов
define interface local {
comment "a local disk"
use 100000 kbps
}

define interface xl0 {
comment "100 Mbps ethernet"
use 100 Mbps
}

Этого минимума нам будет достаточно.
Аманда имеет массу других опций и настроек.
За дополнительной информацией обращайтесь man amanda(8).

Теперь укажем Аманде что мы хотим архивировать.
Файл disklist.

# ахивируем нужные каталоги с самого сервера с Амандой
# клиент       диск              профиль       интерфейс
amanda.mydomain.com   /etc    hard-disk-tar -1 xl0   

# архивируем нужную информацию с серверов-клиентов в локальной сети
mxs.mydomain.com    /var/spool/domain  hard-disk-tar -1 xl0

#.. и так далее.....

Кроме того, в каталоге /usr/local/etc/amanda/DailySet1 нужно создать пустой файл amanda-client.conf
и пустой файл tapelist.
В файле amanda-client.conf в последствии можно выполнить более тонкую настройку клиентов (см. man).

asterisk# touch /usr/local/etc/amanda/DailySet1/amanda-client.conf

и сделать на него симлинк:
asterisk# ln -s /usr/local/etc/amanda/DailySet1/amanda-client.conf \
/usr/local/etc/amanda/amanda-client.conf

asterisk# touch /usr/local/etc/amanda/DailySet1/tapelist

Далее настраиваем клиента.

На клиенте в корневой директории создаем файл .amandahosts
asterisk# touch /.amandahosts

В нем перечисляется кому разрешено коннектится к хосту.
Мы должны разрешить коннект серверу Аманда.

Пишем следующее:
(пример файла .amandahosts, расположенного на самом сервере с Амандой)

## хост          пользователь          опции
localhost            operator      amindexd amidxtaped amdump
amanda.mydomain.com  operator      amindexd amidxtaped amdump
# и для рута; нужно для восстановления
localhost             root         amindexd amidxtaped 
amanda.mydomain.com   root         amindexd amidxtaped 

пример этого же файла, но на удаленном клиенте:

## разрешаем коннект серверу Аманда для снятия дампа с клиента
amanda.mydomain.com  operator      amindexd amidxtaped amdump
# собственно этого вполне достаточно
# но если вы решите производить какие либо действия со стороны клиента,
# то добавтье это:
client.mydomain.com     root         amindexd amidxtaped

p.s. на других клиентах строки с "localhost" указывать не нужно.

Выставляем права на файл "600" и не забываем сменить владельца (operator).

Amanda запускается inet'ом, поэтому в файл /etc/inetd.conf нужно дописать:

amanda dgram udp wait operator /usr/local/libexec/amanda/amandad amandad \
-auth=bsd amdump amindexd amidxtaped

amandaidx stream tcp nowait operator /usr/local/libexec/amanda/amindexd amindexd \
-auth=bsd amdump amindexd amidxtaped

amidxtape stream tcp nowait operator /usr/local/libexec/amanda/amidxtaped \
amidxtaped -auth=bsd amdump amindexd amidxtaped

В /etc/rc.conf дописываем inetd_enable="YES" и запускаем:

asterisk# /etc/rc.d/inetd start

Проверяем запустилась ли:

asterisk# netstat -a | grep amanda
tcp4       0      0  *.amandaidx     *.*    LISTEN
udp4       0      0  *.amanda        *.*

С правкой конфигов покончено.
Теперь выполним некоторые действия по настройке сервера.

Прежде всего нам нужно создать "виртуальные ленты".
В директории  /opt/amanda_backups создадим несколько дополнительных поддиректорий,
которые и будут нашими лентами.
Их количество должно соответствовать значению tapecycle, указанному в файле amanda.conf
В нашем случае это "7".

asterisk# mkdir /opt/amanda_backups/slot1
asterisk# mkdir /opt/amanda_backups/slot2
asterisk# mkdir /opt/amanda_backups/slot3
asterisk# mkdir /opt/amanda_backups/slot4
asterisk# mkdir /opt/amanda_backups/slot5
asterisk# mkdir /opt/amanda_backups/slot6
asterisk# mkdir /opt/amanda_backups/slot7

Кроме того нужно сделать симлинк на первую ленту:

asterisk# ln -s /opt/amanda_backups/slot1 /opt/amanda_backups/data

Этим самым мы "загрузили" ленту в виртуальный чейнджер.

p.s. не забываем менять владельца на "operator".

Теперь их (ленты) нужно промаркировать.

asterisk# su operator
asterisk$ amlabel DailySet1 ARCHIVE-1 slot 1
asterisk$ amlabel DailySet1 ARCHIVE-2 slot 2
asterisk$ amlabel DailySet1 ARCHIVE-3 slot 3
asterisk$ amlabel DailySet1 ARCHIVE-4 slot 4
asterisk$ amlabel DailySet1 ARCHIVE-5 slot 5
asterisk$ amlabel DailySet1 ARCHIVE-6 slot 6
asterisk$ amlabel DailySet1 ARCHIVE-7 slot 7

Если всё прошло благополучно, смотрим что у нас получилось:

asterisk$ amtape DailySet1 show 
slot 1: date Х label ARCHIVE-1
slot 2: date Х label ARCHIVE-2
slot 3: date Х label ARCHIVE-3
slot 4: date Х label ARCHIVE-4
slot 5: date Х label ARCHIVE-5
slot 6: date Х label ARCHIVE-6
slot 7: date Х label ARCHIVE-7

Проверим настройку сервера:

asterisk$ amcheck -s DailySet1
Amanda Tape Server Host Check
-----------------------------
Holding disk /var/hold: 7680740 kB disk space available, that's plenty
amcheck-server: slot 1: date X        label ARCHIVE-1 (new tape)
NOTE: skipping tape-writable test
Tape ARCHIVE-1 label ok
Server check took 0.107 seconds

и клиента:

asterisk$ amcheck -c DailySet1
--------------------------------
Client check: 1 host checked in 0.041 seconds, 0 problems found

Теперь можно делать бэкап.

asterisk$ amdump DailySet1

После благополучного завершения в директории /opt/amanda_backups/slot1 появятся архивы,
а Аманда отрапортует вам о проделанной работе на емайл.

Следующий этап- Восстановление.

Для восстановления в Аманде используются утилиты amrecover и amrestore.
Мы будем использовать amrecover,
т.к. amrestore используется в основном с ленточными накопителями
для извлечения архива с ленты на жесткий диск и последующего восстановления.

Если восстановить информацию нужно с локалхоста, то переходим в каталог,
который нужно восстановить и даем команду amrecover
(работаем от пользователя root).

Пример:

asterisk# cd /etc
asterisk# amrecover
AMRECOVER Version 2.5.1p3. Contacting server on asterisk.mydomain.com ...
220 asterisk AMANDA index server (2.5.1p3) ready.
Setting restore date to today (2008-05-05)
200 Working date set to 2008-05-05.
200 Config set to DailySet1.
200 Dump host set to asterisk.mydomain.com.
Use the setdisk command to choose dump disk to recover
amrecover>

здесь вводим команды...

amrecover> sethost asterisk.mydomain.com # какой хост восстанавливать
200 Dump host set to asterisk.mydomain.com
amrecover> setdisk /etc       # директория которую нужно восстановить
200 Disk set to /etc
amrecover> add *             # восстановить всё что есть в архиве
Added dir /zfs/ at date 2008-05-05-09-35-00
Added file /ttys
Added file /termcap
Added file /syslog.conf
Added file /sysctl.conf.bak
Added file /sysctl.conf
Added dir /ssl/ at date 2008-05-05-09-35-00
Added dir /ssh/ at date 2008-05-05-09-35-00
Added file /spwd.db
....
amrecover> extract

Extracting files using tape drive chg-disk on host asterisk.mydomain.com.
The following tapes are needed: ARCHIVE-1

Restoring files into directory /etc
WARNING: Existing entry /etc/aliases will be deleted
WARNING: Existing file /etc/amandates will be overwritten
WARNING: Existing file /etc/amd.map will be overwritten
WARNING: Existing file /etc/apmd.conf will be overwritten
WARNING: Existing file /etc/auth.conf will be overwritten
WARNING: All existing files in /etc/bluetooth will be deleted.
WARNING: Existing file /etc/crontab will be overwritten
....
Continue [?/Y/n]?     # запрос на подтверждение; жмем "y"
amrecover> quit
200 Good bye.
asterisk#

Если восстановить информацию нужно с другого хоста,
то лучше создать временную директорию для распаковки архива.

asterisk# mkdir /tmp/recover
asterisk# cd /tmp/recover
asterisk# amrecover
.....

amrecover> sethost mxs.mydomain.com
......
и далее по аналогии.

Если у нас всё работает и мы всем довольны, то
можно отбирать шелл у operator

asterisk# pw user mod operator -s /sbin/nologin

а в /etc/crontab добавить задание для Аманды:

16 0 * * 1-5   operator /usr/local/sbin/amcheck -m DailySet1
18 0 * * 1-5   operator /usr/local/sbin/amdump DailySet1

Вот собственно и всё.

P.S. Некоторые полезные команды для работы с сервером Amanda.

amtape DailySet1 show        # показать состояние
amtape DailySet1 current     # показать текущую ленту
amtape DailySet1 slot next   # загрузить следующую ленту
amtape DailySet1 slotX       # загрузить указанную ленту (где Х- это номер)

amcheck DailySet1            # проверить настройки серверной и клиентской части
amcheck -s DailySet1         # проверить только серверную часть
amcheck -с DailySet1         # проверить только клиентскую часть
amcheck -c DailySet1 my.server.com   # проверить указанного клиента

amdump DailySet1             # запустить бэкапирование
amdump DailySet1 my.server.com /etc  # запустить бэкапирование указанного клиента

amadmin - интерфейс для администрирования сервера Аманда.
Доступно множество команд.

asterisk# amadmin -h

Usage: amadmin <conf> <command> {<args>} [-o configoption]* ...
    Valid <command>s are:
        version                                 # Show version info.
        config                                  # Show configuration.
        force [<hostname> [<disks>]* ]+         # Force level 0 at next run.
        unforce [<hostname> [<disks>]* ]+       # Clear force command.
        force-bump [<hostname> [<disks>]* ]+    # Force bump at next run.
        force-no-bump [<hostname> [<disks>]* ]+ # Force no-bump at next run.
        unforce-bump [<hostname> [<disks>]* ]+  # Clear bump command.
        disklist [<hostname> [<disks>]* ]*      # Debug disklist entries.
        reuse <tapelabel> ...            # re-use this tape.
        no-reuse <tapelabel> ...         # never re-use this tape.
        find [<hostname> [<disks>]* ]*   # Show which tapes these dumps are on.
        delete [<hostname> [<disks>]* ]+ # Delete from database.
        info [<hostname> [<disks>]* ]*   # Show current info records.
        due [<hostname> [<disks>]* ]*    # Show due date.
        balance [-days <num>]            # Show nightly dump size balance.
        tape [-days <num>]               # Show which tape is due next.
        bumpsize                         # Show current bump thresholds.
        export [<hostname> [<disks>]* ]* # Export curinfo database to stdout.
        import                           # Import curinfo database from stdin.
asterisk#  

   



размещено: 2008-06-15,
последнее обновление: 2008-06-15,
автор: tango


Pei0t, 2008-06-15 в 23:07:04

Чем лучше fsbackup +/-?

Аноним, 2008-06-16 в 0:09:47

На FreeBSD /opt??? Неплохо бы uname -a указывать

lissyara, 2008-06-16 в 0:59:36

Никто не запрещает сделать такой раздел.
Если в организации устоявшаяся структура директорий на серверах - то ей и надо следовать.

tango, 2008-06-16 в 10:58:15

>На FreeBSD /opt???
А что такого??
Я всегда при разбивке диска создаю такой раздел... под всякие "нужности".

# uname -a
FreeBSD asterisk.szma.org 7.0-RELEASE FreeBSD 7.0-RELEASE #2

tango, 2008-06-16 в 11:01:38

>Чем лучше fsbackup +/-?
Речь не о том, что лучше/хуже.
Здесь мы рассматриваем АЛЬТЕРНАТИВЫ.
А что выбрать- личное дело каждого.

dvg_lab, 2008-06-18 в 17:05:26

я в свое время выбрал bacula, сейчас посмотрел на настройку аманды и надо сказать что и та и другая требуют примерно одинаково времени чтобы разобраться что куда и сколько. Чесно говоря думал аманда на порядок проще, ан нет.

mrdefault, 2008-06-18 в 21:43:12

а бамбины с лентой сколько стоят? :)

ASM, 2008-07-02 в 18:48:02

Жаль, без виндовых клиентов...(

1232, 2010-01-28 в 21:36:45

прри

paulfrol, 2015-06-15 в 1:09:42

вот тоже ничего так статья, на эту тему
[url=https://zefir.space/a/18/]



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2144 секунд
Из них PHP: 63%; SQL: 37%; Число SQL-запросов: 77 шт.
Исходный размер: 47866; Сжатая: 10793