Документация по ОС FreeBSD Воскресенье, 05.05.2024, 09:21
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

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

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# 



Источник: http://www.lissyara.su/?id=1651
Категория: Установка и настройка | Добавил: oleg (16.06.2008) | Автор: tango
Просмотров: 2361 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024