Рубрика:
Администрирование /
Администрирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
Какова в действии система резервирования AMANDA
Система резервирования информации AMANDA считается одной из лучших среди бесплатных. Но многих удерживают от ее использования два фактора: мнимая сложность в настройках и то, что она работает только с ленточными накопителями. Попробуем доказать необоснованность таких заблуждений.
Проект AMANDA, или Advanced Maryland Automatic Network Disk Archiver, стартовал в 1992 году в департаменте компьютерных технологий университета Maryland США, под руководством Джеймса да Сильва (James da Silva), когда потребовался инструмент для резервирования информации с многочисленных клиентских систем на единственный сервер. Постепенно проект утратил поддержку в родных стенах, и исходные тексты были перемещены на Sourceforge [2].
В настоящее время AMANDA разрабатывается многими добровольцами, и хотя не заявлена лицензия GNU GPL, любой желающий может модифицировать код по своему усмотрению, распространять и продавать, при условии что авторство будет сохранено.
Основные характеристики
AMANDA является удобной надстройкой к стандартным UNIX-программам dump/restore, GNU tar и некоторым другим. Поэтому ее основные характеристики следует рассматривать исходя из возможностей базовых утилит. Ведь dump понимает только файловые системы ext2/3, с ReiserFS, Reiser4 и XFS он не дружит.
При попытке выполнить резервирование с помощью dump на такой файловой системе вы получите что-то вроде:
/dev/hda5: Bad magic number in super-block
while opening filesystem
|
При работе с XFS dump в AMANDA подменяется другой утилитой – xfsdump, работающей в паре с xfsrestore. А вот файлы с ReiserFS можно резервировать с помощью GNU-tar, к тому же tar различает метки времени и при архивировании позволяет исключить отдельные файлы и каталоги.
Есть еще одна особенность, dump может архивировать разделы без их предварительного монтирования, работает dump быстрее tar, но копию «живой» системы с его помощью создавать рискованно. А вот если создается копия с tar, то такой раздел должен быть предварительно смонтирован.
Последние версии AMANDA могут создавать резервные копии информации с компьютеров под управлением Windows посредством Samba либо с помощью клиента, компилированного под cygwin.Сравнить основные возможности AMANDA с другими системами резервного копирования вы можете в статье [3].
AMANDA работает по клиент-серверной схеме. На сервере запускается команда amdump с указанием задания на резервирование. В задании указывается: источник данных, расположение клиента, отвечающего за создание резервной копии, а также параметры создания резервной копии. Клиент может быть установлен на одном компьютере с сервером либо на всех компьютерах, которым требуется архивация. В первом случае для доступа к компьютерам используются все доступные методы аутентификации: Kerberos 4/5, OpenSSH, rsh, пароль Samba. В последней версии добавились еще два: bsdtcp и bsdudp.
Во втором случае на клиенте создается специальный файл .amandahosts, в котором записаны системы, которые могут к нему обращаться за данными. Клиент ожидает подключение сервера на 10080 UDP-порту или 10081/tcp, если используется Kerberos – kamanda, слушая его посредством inetd/xinetd. Если аутентификационная информация его удовлетворяет, то для передачи данных открывается новое соединение. При этом используется свой протокол, работающий поверх UDP или TCP. Все настройки параметров резервирования производятся на сервере. Хотя в последней на момент написания статьи версии AMANDA 2.5.1 появился и необязательный клиентский конфигурационный файл amanda-client.conf, но основное его назначение – безопасное восстановление информации с помощью утилиты amrecover.
AMANDA поддерживает шифрование информации как на клиенте, так и на сервере, для этих целей используется несимметричный GPG или симметричный amcrypt-алгоритм. Гибко реализовано сжатие информации, это можно произвести как на клиенте, так и на сервере. Если сжимать информацию на клиенте, это уменьшит нагрузку на сеть, если на сервере, то снизит нагрузку на маломощную машину клиента. Резервирование можно настроить в пределах одной конфигурации, но если на сервере имеются несколько устройств архивации, необходимо использовать несколько независимых конфигураций. Посредством AMANDA можно реализовать полное или инкрементное резервирование информации.
AMANDA изначально построена и оптимизирована для работы с ленточными накопителями, но путем несложных манипуляций можно в качестве источника хранения использовать раздел жесткого диска, CD/DVD и Zip или раздел Samba. Причем раздел диска может быть размечен на несколько частей, имитирующих несколько лент.
Процессом резервирования можно руководить вручную, хотя обычно его запускают с помощью cron. Результат операции будет записан в журнал, также возможно и отправление итогового e-mail сообщения.
Устанавливаем AMANDA
Настроить AMANDA для работы со стриммером просто, но в небольших и средних организациях не всегда есть средства, да и необходимость в покупке дорогого устройства. Лучше использовать жесткий диск или копировать информацию на CD/DVD-диски. Вот этим мы и займемся. Я использовал дистрибутив KUbuntu 6.06 LTS. Вы возразите, что это дистрибутив для настольного применения, но именно в процессе настройки AMANDA в KUbuntu пришлось столкнуться с ситуацией, которой не было в других дистрибутивах.
Исходные тексты AMANDA и прекомпилированные пакеты для Red Hat Enterprise Linux 3.0/4.0, Fedora Core 3/4/5, SUSE Linux и Enterprise Server 10 и клиент для Windows можно получить с [5]. В репозитарии Ubuntu также есть пакеты AMANDA, но на момент написания статьи это была более ранняя версия 2.4.5p1. Также в репозитарии имеется и еще один компонент будущей системы архивирования CDRW-Taper [4], который представляет собой замену стандартному компоненту AMANDA – taper, делая возможным запись резервных копий вместо ленты на носители СD-RW, DVD+R/W или DVD-R/W. В документации AMANDA описано, как использовать вместо ленты жесткий диск, но CDRW-Taper также с этим справляется на отлично, к тому же при его использовании не требуется никаких особых манипуляций.
Все это можно установить одной командой^
$ sudo apt-get update
$ sudo apt-get install amanda-server cdrw-taper
И если планируется резервировать информацию и сервера, а также Samba-ресурсов, то добавляем и amanda-client.
Если планируется установка с исходных текстов, то в общем случае никаких параметров задавать не надо, deb-пакет сервера AMANDA собран с такими параметрами:
- ./configure--prefix=/usr --bindir=/usr/sbin--mandir=/usr/share/man --libexecdir=/usr/lib/amanda--enable-shared --sysconfdir=/etc --localstatedir=/var/lib --with-debugging= /var/log/amanda;
- --with-gnutar-listdir=/var/lib/amanda/gnutar-lists – расположение файла, в который заносится информация для GNU-tar, на клиентском компьютере;
- --with-index-server=localhost – сервер хранения индексов;
- --with-user=backup --with-group=backup – пользователь и группа, от имени которых будет работать AMANDA;
- --with-bsd-security – активация rsh/rlogin;
- --with-amandahosts – использование специального файла .amandahosts вместо .rhosts или /etc/hosts.equiv;
- --with-smbclient=/usr/bin/smbclient – расположение файла smbclient, также возможно понадобится опция --with-samba-user для указания пользователя Samba;
- --with-tcpportrange=50000,50100 --with-udpportrange= 840,860 – привязка TCP- и UDP-портов в пределах указанных значений, по умолчанию ограничений нет.
Кроме того, возможны параметры --with-client-only (--without-server) для построения только клиентской системы или --with-server-only (--without-client) – только серверного.
Если в качестве транспорта или аутентификации планируется использовать защищенные протоколы, то добавьте параметры--with-krb4-security, --with-krb5-security, --with-rsh-security, --with-ssh-security, --with-bsdtcp-security или --with-bsdudp-security.
После конфигурирования стандартная установка.
Для работы CDRW-Taper понадобится Perl, пакет cdrtools, и если вы планируете использовать DVD-диски, то и dvd+rw-tools, а также для отправки отчетов по электронной почте и SMTP-сервер. В качестве последнего вы можете использовать Sendmail, QMail или Postfix. CDRW-Taper является Perl-скриптом.
Вся установка производится вручную. Сначала переименовываем файл taper, находящийся в каталоге, на который указывает переменная libexecdir. То есть в случае с KUbuntu /usr/lib/amanda/ на taper.orig:
$ sudo /usr/lib/amanda/taper /usr/lib/amanda/taper.orig
Затем в этот же каталог необходимо поместить Perl-скрипт taper, а также файл taperlib.pm, а amlabel-cdrw – в каталог, в котором находится файл из комплекта AMANDA amlabel. В нашем случае это /usr/sbin. В документации сказано, что следует заглянуть внутрь taperlib.pm и amlabel-cdrw и убедиться, все ли переменные соответствуют системному окружению. В случае с Kubuntu ничего изменять не пришлось. Единственное проверьте, чтобы каталог, в котором лежит taperlib.pm, был виден в переменной Perl @INC. Перед установкой добавьте пользователя и группу, от имени которых будет работать AMANDA. Этот пользователь должен также быть включенным в группу disk.
Файлы настроек AMANDA
Основной файл настроек называется amanda.conf, в нем содержатся настройки задания. AMANDA будет его искать в каталоге --sysconfdir=/etc, то есть /etc/amanda. В этом случае команду для резервирования amdump, да и остальные можно будет запускать без каких-либо дополнительных параметров. Считается хорошим тоном для каждого задания на резервирование создавать свой подкаталог в /etc/amanda.
В Debian и дистрибутивах, от него произошедших, по умолчанию создается подкаталог /etc/amanda/DailySet1, содержащий примеры конфигурационных файлов. Его я и буду использовать в примере.
Каждый подкаталог хранит настройки отдельного задания, то есть в том случае, если у вас два стриммера, создаются два каталога с настройками и так далее. К команде в этом случае добавляется название каталога. Кроме него, в этом же каталоге находится файл disklist, в котором указываются ресурсы, которые должны резервироваться при выполнении этого задания, и файл tapelist с информацией о лентах. Последний файл необходимо создать, заполняется он автоматически или с помощью утилит amlabel и amlabel-cdrw.
$ sudo touch /etc/amanda/daily/tapelist
$ sudo chown backup:backup /etc/amanda/daily/tapelist
Конфигурационный файл amanda.conf
Рассмотрим пример файла /etc/amanda/DailySet1/amanda.conf применительно к использованию CDRW-Taper.
org "DailySet1"
# Название организации будет использовано в отчете, будет видно в поле «Subject:»,
# поэтому есть смысл проставить имя задания
mailto "grinder"
# Пользователь или адрес, куда будет отправлено e-mail-сообщение
dumpuser "backup"
# Пользователь, от имени которого будет выполняться задание
inparallel 4
# Максимальное количество параллельно резервируемых ресурсов,
максимальное число 63 может быть увеличено в параметре
# MAX_DUMPERS в server-src/driverio.h
netusage 600
# Максимальная сетевая загрузка в Кбайт в сек.
dumpcycle 1 weeks
# Количество дней, через которое производится полное резервирование,
# по умолчанию 10 дней, если установить в 0, то полное резервирование
# будет производиться при каждом запуске
runspercycle 5
# Необязательный параметр показывает количество запусков
# amdump в одном dumpcycle, ведь в выходные программу
# резервирования запускать не обязательно
tapecycle 9 tapes
# Общее число лент, используемых при резервировании,
# в нашем случае это DVD-диски. На каждый день dumpcycle
# минимум один диск + резерв, чтобы не перекрывались
# до следующего полного копирования
bumpsize 20 MB
# Минимальный порог для перехода на следующий инкрементный
# уровень (по умолчанию 10 Мб), взамен возможно использование
# bumppercent для указания размера в процентах
bumpdays 1
# Позволяет устранить избыточность, минимальное количество
# дней для перехода на следующий инкрементный уровень,
# значение по умолчанию 2 дня
#tpchanger "no-changer"
# Интересная опция, позволяющая подменить или изменить
# настройки ленточного накопителя (tape changer).
# В каталоге /vat/lib/amanda/ доступно 13 обработчиков,
# например, chg-disk позволяет вместо ленты писать
# на жесткий диск, но нам он сейчас не нужен.
# Далее параметры идут специфично для CDRW-Taper
tapedev "/media/cdrom0"
# Механизм выбора ленты, но в нашем случае это каталог,
# куда монтируется CD/DVD-устройство, совпадающий с /etc/fstab
rawtapedev "/dev/hdc:0,0,0"
# Указывает на реальный файл устройства, в случаес CDRW-Taper,
# плюс номер устройства в понимании cdrecord, т.е. cdrecord -scanbus
tapetype DVD
# Тип устройства, его описание дается в отдельной секции файла
labelstr "^local[0-9]*$"
# Регулярное выражение, соответствующее меткам, которыми
# будут помечаться диски/ленты, т.е. в этом случае
# возможно 11 меток/дисков вида local, local0 – local9.
# Обратите внимание, что в метке не допускаются пробелы,
# табуляция и некоторые другие символы
diskdir "/var/cache/cdrw-taper "
# Каталог, куда будут складываться резервируемые копии файлов
disksize 10 GB
# Сколько места можно использовать в diskdir,
# лучше когда в него помещается вся информация dumpcycle,
# тогда резервные файлы можно будет хранить и там, не удаляя
infofile "/var/lib/amanda/DailySet1/curinfo"
# База имен файлов
logfile "/var/log/amanda/DailySet1/log"
# Журналы
indexdir "/var/lib/amanda/DailySet1/index"
# Индексные файлы
# tapetypes
# Устройства хранения информации, описывается скорость, размер блока и объем
define tapetype HP-DAT {
comment "DAT tape drives"
length 1900 mbytes
filemark 100 kbytes
speed 500 kbytes
}
# Для DVD в документации ничего не сказано, я записал так
define tapetype DVD {
comment "DVD-RW"
length 4700 mbytes
speed 1385 kbytes
}
Описания dumptype в amanda.conf
Дальше в файле идут описания типов резервирования, которые будут использоваться в файле disklist. Каждое описание может содержать до 23 параметров.
Привожу часть из них, чтобы показать некоторые возможности AMANDA:
- auth – аутентификация по умолчанию bsd, возможны krb4, krb5 и ssh.
- comment – комментарий.
- comprate – степень сжатия, отдельно для полного и для инкрементного. По умолчанию «comprate 0.50, 0.50», если второй цифры нет, то используется первая.
- compress – конкретизируются параметры сжатия. Названия говорят сами за себя. Например, по умолчанию используется client fast, есть none, server server best и другие.
- program – программа для создания копии, dump по умолчанию, возможно GNUTAR.
- encrypt – шифрование файлов: none (умолчание), client, server.
- kencrypt – шифрование потока.
- vexclude – список шаблонов файлов, которые не будут резервироваться.
- index – создание индекса файлов.
- strategy – стратегия создания дампа:
- standard – первая версия полная, последующие инкрементные;
- nofull – всегда изменения;
- noinc – всегда полный;
- skip – пропуск;
- incronly – только инкрементное, но в отличие от nofull полная копия при первом запуске не создается.
Названия заготовок также говорят сами за себя.
define dumptype always-full {
comment "Full dump of this filesystem always"
options no-compress
priority high
dumpcycle 0
maxcycle 0
}
define dumptype comp-user-tar {
program "GNUTAR"
comment "partitions dumped with tar"
options compress-fast, index, exclude-list "/etc/amanda/exclude.gtar"
priority medium
}
define dumptype comp-user {
comment "Non-root partitions on reasonably fast machines"
options compress-fast
priority medium
}
Настройка ресурсов для архивирования
Ресурсы для архивирования описываются в другом файле – disklist. Каждая запись состоит из трех полей. В первом поле – имя узла, отвечающего за создание архива, причем рекомендовано применение полного имени. Если архивируется ресурс Samba, то здесь указывают узел, на котором установлен клиент AMANDA, работающий с smbclient. Если это локальная система, также необходимо использовать реальное имя системы, отличное от localhost.
Во втором поле – архивируемый ресурс, здесь может использоваться имя раздела диска (hda3), имя устройства (/dev/hda3), но лучше использовать имена каталогов файловой системы (/home), так как при переконфигурации диска не потребуется изменение настроек AMANDA и с tar проблем не будет. В случае сетевого UNIX/Samba ресурса следует использовать схему //имя_системы/ресурс – //host1/C$.
И последнее поле – тип архивирования, взятый с amanda.conf, его название должно быть правильным, иначе вы получите ошибку.
Например:
client1 //client1/backupc comp-user-tar
amandaserver //windows1/C$ comp-user-tar
amandaserver /home comp-user-tar
За создание архива ресурса //client1/backupc отвечает компьютер client1, именно к нему будет отправлен запрос при запуске amdump. Архивирование //windows1/C$ и /home будет производить сам сервер, поэтому на нем также должен быть установлен клиент AMANDA.
Учтите, что такая запись работать не будет:
amandaserver /dev/hda5 comp-user-tar
Ошибка в журнале описана так:
sendsize[5573]: time 0.151: /bin/tar: hda9: Cannot chdir: No such file or directory
sendsize[5573]: time 0.152: /bin/tar: Error is not recoverable: exiting now
|
Описание типа comp-user-tar предполагает использование tar, а он работает только со смонтированными ресурсами. Замените на comp-user, который подразумевает dump, или укажите вместо файла устройства /dev/hda5 точку монтирования. Для описания параметров доступа к Samba-ресурсам используется файл /etc/amandapass. В нем должно содержаться описание системы, пароль и опционально может быть указана рабочая группа. Примерно так:
//windows1/C$ p@ssw0rd WORKGROUP
При стандартной (bsd) аутентификации доступа к UNIXсистемам применяется файл amandahosts, который является аналогом .rhosts только для AMANDA. По умолчанию этот файл должен находиться в домашнем каталоге пользователя backup – ~backup/.amandahosts. Но в большинстве дистрибутивов каталог пользователя AMANDA не создается, поэтому можно использовать /etc/amandahosts. Он состоит из строк, описывающих узлы и пользователя, который имеет к ним доступ, с версии 2.5.1 добавился и третий параметр – имя сервиса. Так, на клиенте этот файл будет выглядеть так:
amandaserver backup amdump
На сервере:
client1 backup amindexd amidxtaped
amandaserver backup amdump
# это для работы клиента на этом же узле
Если использовать в последнем примере вместо имени узла localhost.
localhost backup amdump
То клиент, запущенный на этом же компьютере, работать откажется, а в журнале появится такая запись:
amandad: time 0.003: bsd security: remote host localhost user backup local user backup
amandad: time 0.029: check failed: [access as backup not allowed from backup@localhost] amandahostsauth failed
|
Владельцем файлов amandahosts и amandapass должен быть пользователь backup, права доступа устанавливаются как 0600 или лучше 0400.
Настройка сетевых сервисов
Теперь осталось настроить сетевые сервисы. В первую очередь убеждаемся, что в файле /etc/services они записаны.
amanda 10080/udp
amandaidx 10082/tcp
amidxtape 10083/tcp
Далее необходимо настроить работу демонов, отвечающих за архивирование, через xinetd. На клиенте это amandad, на сервере настраивается запуск демонов amindexd, amidxtaped, отвечающих за создание индексов и работу с устройствами хранения. Для восстановления информации потребуется и работа amandad на сервере. Заносим в файл /etc/xinetd либо в отдельные файлы в каталоге /etc/xinet.d/ информацию о сервисах. Здесь также, начиная с версии 2.5.1, есть изменения, направленные на усиление безопасности.
Так, на клиенте файл должен иметь примерно такой вид:
service amanda
{
only_from = amandaserver # добавилось в 2.5.1
socket_type = dgram
protocol = udp
wait = yes
user = backup
group = backup
groups = yes
server = /usr/lib/amanda/amandad
server_args = -auth=bsd amdump
disable = no
}
На сервере параметр server_args должен дополнительно включать amindexd amidxtaped, а only_from – описания всех клиентов. Привожу пример для bsdtcp аутентификации.
service amanda
{
only_from = client1 client2 amandaserver
socket_type = stream
protocol = tcp
wait = no
user = amandabackup
group = disk
groups = yes
server = /usr/lib/amanda/amandad
server_args = -auth=bsdtcp amdump amindexd amidxtaped
disable = no
}
Кстати, при установке с помощью пакетов был создан конфигурационный файл для inetd с необходимыми записями. Полный комплект. Но при попытке заставить перечитать xinetd свои конфигурационные файлы «/etc/init.d/xinetd reload» выяснилось, что хотя в системе автоматически созданы все полагающиеся каталоги и файлы как для xinetd, так и inetd, но они сами в системе не установлены. Странно, что при построении зависимостей об этом не позаботились. Поэтому в Ubuntu xinetd необходимо проверить его наличие и при отсутствии – установить.
С AMANDA закончили.
Настройка CDRW-Taper
Серверы уже работают и могут выполнять свою функцию, остался CDRW-Taper. Его конфигурационный файл называется /etc/cdrw-taper.conf, хотя можно обойтись и без него, указав все настройки непосредственно в taperlib.pm и amlabel-cdrw. Но это неправильно.
# Местонахождение конфигурационных файлов AMANDA
$CONFIG_ROOT = "/etc/amanda";
# Каталог, в котором создаются промежуточные файлы:
# diskdir в amanda.conf
$DUMP_DIR = "/var/cache/cdrw-taper";
# 1 – удалять или 0 – оставлять промежуточные файлы
# после записи на CD/DVD-диск
$DELETE_DIRS = 0;
# При 1 использование не перезаписываемого диска CD/DVD-R
$WRITE_NON_ERASABLE = 0;
# Устройство CD/DVD-RW
# $CD_DEVICE_RE = "/dev/s(cd|g)\\d+:?.*";
# $CD_DEVICE_RE = "^/dev/(ide|scsi)/host\\d/bus\\d/target\\d/lun\\d/(cd|generic):";
$CD_DEVICE_RE = "/dev/hdc";
# Размер блока
$BLOCKSIZE = 2048;
# Блоков в устройстве
# (650MB CDRW: 650 MB = 650 * 1024k / 2k = 332800)
#$MEDIABLOCKS = 332800;
# (700MB CD-RW: 700 MB = 700 * 1024k / 2k = 358400)
$MEDIABLOCKS = 358400;
# Blocks per media (DVD+RW: 4700 MB = 4700 * 1000 * 1000 / 2k = 2294921)
$MEDIABLOCKS = 2294921;
# Названия исполняемых файлов
$MOUNT = "mount";
$UMOUNT = "umount";
$CDRECORD = "cdrecord";
$MKISOFS = "mkisofs";
$SENDMAIL = "/usr/sbin/sendmail";
$GROWISOFS = "growisofs";
$DVDRWMEDIAINFO = "dvd+rw-mediainfo";
# Указание, что все загружено успешно
1;
Создаем каталог для промежуточных файлов /var/cache/cdrw-taper.
$ sudo mkdir /var/cache/cdrw-taper
$ sudo chown backup:backup /var/cache/cdrw-taper
Как проверить настройки
В комплекте AMANDA идет несколько утилит, позволяющих проверить настройки и работу отдельных компонентов. Например, запуск amcheck без параметров позволит проверить настройки сервера и доступность клиентских систем, а также ресурсов на них. Выполняться они должны от имени пользователя backup.
$ sudo su backup -c "amcheck DailySet1"
Amanda Tape Server Host Check
-----------------------------
Holding disk /var/cache/cdrw-taper: 10952816 kB disk space
available, that's plenty
ERROR: /media/cdrom0: Permission denied
(expecting a new tape)
NOTE: skipping tape-writable test
Server check took 0.004 seconds
Amanda Backup Client Hosts Check
--------------------------------
ERROR: grinder: [Can't open exclude file '/etc/amanda/exclude.gtar': No such file or directory]
Client check: 1 host checked in 0.148 seconds, 1 problem found
|
Первая ошибка «ERROR: /media/cdrom0: Permission denied» – результат адаптации AMANDA и ее утилит под работу со стриммерами. Поэтому с СD/DVD-дисками некоторые тесты не проходят. На нее внимание можно не обращать, система работала нормально, хотя ошибка постоянно выдавалась. Файл /etc/amanda/exclude.gtar описан в правиле архивирования. Даже если не планируется его использование, лучше его создать пустым, иначе в журналах она будет фигурировать постоянно. Запись «Holding disk» говорит о доступном месте в каталоге (разделе), в который будут складываться промежуточные файлы.
После редактирования файлов конфигурации следует проверять права доступа, например, такая ошибка говорит о том, что процесс не может получить доступ к файлу для записи:
ERROR: tape list /etc/amanda/DailySet1/tapelist: not writable |
Полезная утилита amadmin обладает еще большими возможностями. С ее помощью вы сможете проверить настройки, руководить выполнением заданий и резервированием отдельных ресурсов, принудительно устанавливать уровень архивирования, устанавливать ленты и проверять следующую по списку ленту, просматривать выполненные задания, импортировать и экспортировать базу с других серверов AMANDA. Вот так можно вывести все настройки, в том числе и используемые по умолчанию.
$ sudo su backup -c " amadmin DailySet1 disklist"
line 18:
host grinder:
interface default
disk /media/other:
program "GNUTAR"
exclude list "/etc/amanda/exclude.gtar"
priority 1
dumpcycle 28
maxdumps 1
maxpromoteday 10000
bumpsize 15360
bumpdays 1
bumpmult 4.000000
strategy STANDARD
estimate CLIENT
compress CLIENT FAST
comprate 0.50 0.50
auth BSD
kencrypt NO
holdingdisk YES
record YES
index YES
skip-incr NO
skip-full NO
|
Первое задание
Перед первым архивированием необходимо разметить DVD-диски в количестве, равном tapecycle. В AMANDA для этих целей используется утилита amlabel, но она CD-диски размечать не умеет. В CDRW-Taper для разметки есть своя утилита amlabel-cdrw. В качестве параметра она принимает название задания и метки соответствующей labelstr. Если попробовать другую метку, получите:
$ sudo /usr/sbin/amlabel-cdrw DailySet1 metka
taper: ERROR: Label metka does not match labelstring
"^local[0-9]*$".
$ sudo /usr/sbin/amlabel-cdrw DailySet1 local1
WARNING: /dev/hdc already carries isofs!
About to execute 'mkisofs -J -R -pad -quiet /tmp/amlabel-cdrw.6763 | builtin_dd of=/dev/hdc obs=32k seek=0'
/dev/hdc: "Current Write Speed" is 2.5x1385KBps.
builtin_dd: 192*2KB out @ average 0.0x1385KBps
/dev/hdc: flushing cache
/dev/hdc: stopping de-icing
/dev/hdc: writing lead-out
/dev/hdc: reloading tray
|
На диске сейчас записан единственный файл AMANDA_LABEL, содержащий строку local1. Повторяем эту операцию со всеми 9 дисками, меняя метку. Вся информация о дисках будет заноситься в файл tapelist. После первого диска запись будет такая:
Первое задание желательно запустить вручную и оценить результат и работу всех компонентов.
$ sudo su backup -c "amdump DailySet1"
После запуска этой команды в каталоге /var/cache/cdrw-taper должен появиться подкаталог local1 с такой структурой файлов внутри:
$ sudo ls -al /var/cache/cdrw-taper/local1
total 138260
drwx------ 2 backup backup 2048 2006-11-30 22:12 .
drwxr-xr-x 7 root root 192 2006-10-28 19:23 ..
-rw------- 1 backup backup 7 2006-11-30 22:12 AMANDA_LABEL
-rw------- 1 backup backup 141575082 2006-11-30 22:12 grinder.hda9.0.dump.gz
-rw------- 1 backup backup 191 2006-11-30 22:12 grinder.hda9.0.info
|
Последовательно будут появляться и другие подкаталоги, но опять же всплыл еще один нюанс Ubuntu. Несмотря на то что dump упоминается в AMANDA как основная утилита, она также не была включена в зависимости и не устанавливается вместе с AMANDA. Результат такой:
sendsize[12307]: time 0.006: running "/sbin/dump 0Ssf 1048576 - /dev/hda9"
sendsize[12307]: time 0.010: exec /sbin/dump failed or no dump program available: No such file or directory
sendsize: time 0.010: pid 12309 finish time Thu Nov 30 21:16:59 2006
sendsize[12307]: time 0.011: running /usr/lib/amanda/killpgrp
|
Пришлось отдельно устанавливать и dump.
$ sudo apt-get install dump
По окончании создания архива, создается iso-образ, который автоматически записывается на DVD-диск. Если объем архива превышает для установленного в $MEDIABLOCKS типа дисков, будет создан следующий подкаталог. И так далее. Даже если при предыдущем архивировании не был занят весь объем, то для следующего задания будет задействован диск уже с другой меткой. Текущий затребуется для перезаписи, только когда пройдет полный круг. Может возникнуть ситуация, когда требуется перезаписать архив на болванку вручную. Сделать это просто. Например, так можно повторно записать архивы с метками local1 и local2.
$ sudo /usr/lib/amanda/taper DailySet1 -flush local1 local2
taper: pid 15001 executable taper version cdrw-taper-0.4
…
Flushed local1.
Done.
|
Обратите внимание, диски должны вставляться в такой же последовательности, как при вызове команды. Иначе вы получите ошибку.
$ sudo /usr/lib/amanda/taper DailySet1 -flush local local1
taper: pid 14954 executable taper version cdrw-taper-0.3
ERROR taper label on media in /dev/hdc:0,0,0 is not local
Cannot load media with label local!
|
Когда задание выполнено успешно, автоматизируем его запуск через cron.
$ sudo crontab -u backup -e
0 10 * * 1-5 /usr/sbin/amcheck -m DailySet1
45 0 * * 2-6 /usr/sbin/amdump DailySet1
Восстановление информации
Для восстановления информации служит утилита amrecover, с ее помощью можно восстанавливать как отдельные файлы, так и целые разделы. По характеру работы amrecover напоминает консольный ftp-клиент. Восстанавливать информацию может только пользователь с правами администратора, для которого в файле amandahostsauth также должна существовать запись. Иначе:
$ sudo amrecover
Password:
AMRECOVER Version 2.4.5p1. Contacting server on localhost ...
220 grinder AMANDA index server (2.4.5p1) ready.
500 Access not allowed: [access as backup not allowed from root@localhost] amandahostsauth failed
|
При попытке зайти с правами backup, получим «amrecover must be run by root». Добавляем следующую строку в файл /etc/ amandahostsauth:
amandaserver root amindexd amidxtaped
Но для восстановления можно использовать запись с localhost:
localhost root amindexd amidxtaped
Предположим, необходимо восстановить один из файлов, ранее находящихся в каталоге /home. По назначению используемых команд будут даны комментарии, они выделенны курсивом.
$ sudo amrecover DailySet1
AMRECOVER Version 2.4.5p1. Contacting server on localhost ...
220 grinder AMANDA index server (2.5.1p1) ready.
200 Access OK
Setting restore date to today (2006-12-07)
200 Working date set to 2006-12-07.
Scanning /var/cache/cdrw-taper...
20061202142102: found Amanda directory.
# Это были найдены резервные файлы не удаленные с диска
200 Config set to DailySet1.
200 Dump host set to grinder.
Trying disk / ...
Trying disk rootfs ...
Can't determine disk and mount point from $CWD '/home/grinder'
amrecover> sethost localhost
# Выбираем узел, данные с которого собираемся восстанавливать
501 Host localhost is not in your disklist.
Trying host localhost ...
501 Host localhost is not in your disklist.
Trying host grinder ...
200 Dump host set to grinder.
# Записи localhost нет в disklist, но amrecover разобрался
amrecover> setdisk /home
200 Disk set to /home.
# Выбираем восстанавливаемый раздел с узла. Если перейти
# каталог, занесенный в disklist перед запуском amrecover,
# «cd /home», то раздел будет выбран автоматически
amrecover> ls
2006-12-02 .
2006-12-02 test_file
# Смотрим, что есть
amrecover> add test_file
Added / add test_file
# Добавляем файл в список восстановления, чтобы добавить
# все, ставим точку восстанавливаем
amrecover> extract
Extracting files from holding disk on host localhost.
The following files are needed: /var/cache/cdrw-taper/20061202142102/grinder._media_other.0
Restoring files into directory /home
Continue [?/Y/n]? y
Extracting from file /var/cache/cdrw-taper/20061202142102/grinder._media_other.0
./ test_file
amrecover> quit
200 Good bye.
|
В данном случае файл был найден на жестком диске, иначе вас попросят вставить CD/DVD с нужной меткой.
Итог
Как видите – AMANDA мощный и гибкий инструмент, который позволит вам выполнить любую задачу по резервированию важной информации. Поддержка разных платформ только добавляет ему преимуществ. Также отмечу отличную документацию, из которой вы подробно узнаете о работе всех компонентов AMANDA. Кстати, в файле using.txt найдете и главу из книги Джона Джексона (John R. Jackson) «UNIX Backup and Recovery», которая посвящена AMANDA (http://www.backupcentral.com/amanda.html).
- Сайт проекта AMANDA – http://www.amanda.org.
- Страница на Sourceforge – http://sourceforge.net/projects/amanda.
- Яремчук С. Обзор систем резервного копирования. //Системный администратор, № 9, 2006 г. – 22-29 с.
- Сайт проекта Amanda CDRW-Taper – http://www.tivano.de/software/amanda.
- Страница для закачки исходных текстов и прекомпилированных пакетов – http://www.zmanda.com/downloads.html.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|