Формирование конфигурационного файла AMANDA
Формирование конфигурационного файла AMANDA
Особенности работы пакета AMANDA определяются содержимым конфигурационных файлов amanda.conf, которые обычно находятся в подкаталогах каталога /etc или /usr/local/etc. Обычно конфигурационные файлы AMANDA размещаются на двух уровнях подкаталогов. Эти подкаталоги доступны для чтения только пользователю, который должен работать с пакетом AMANDA (в данном примере это пользователь amanda). Подкаталог верхнего уровня обычно называется amanda, а имена подкаталогов нижнего уровня выбираются в соответствии с задачами резервного копирования. Например, конфигурационный файл, описывающий правила ежедневного копирования, может размещаться в каталоге /usr/local/etc/amanda/Daily, а файл, определяющий создание архивов, — в каталоге /usr/local/etc/amanda/Archive. Если вы использовали для инсталляции AMANDA исходные коды, в вашем распоряжении имеется образец конфигурационного файла. Он находится в каталоге example инсталляционного пакета.
Установка основных опций
В состав файла amanda.conf входит набор строк, и каждая из них начинается с ключевого слова, за которым следует одно или несколько значений. Например, запись, указывающая, как долго длится процесс полного копирования содержимого всей сети, выглядит следующим образом:
dumpcycle 4 weeks
Некоторые из записей могут занимать несколько строк. Они помещаются в фигурные скобки и определяют набор связанных между собой опций.
Для большинства опций можно принять значения, установленные по умолчанию. Опции, которые вы, возможно, захотите изменить, описаны ниже.
• org. С помощью данной опции задается название организации, которое затем указывается в отчетах, генерируемых AMANDA. Значение опции org никак не влияет на процесс создания резервной копии.
• mailto. О выполненных действиях AMANDA сообщает, посылая письмо по адресу, указанному в качестве значения этой опции. При необходимости вы можете задать несколько адресов, разделив их пробелами.
• dumpuser. Посредством данной опции указывается имя пользователя, инициирующего процедуру резервного копирования. При инсталляции AMANDA это имя задается с помощью опции --with-user.
• dumpcycle. В качестве значения этой опции указывается число дней, составляющих цикл резервного копирования.
• runspercycle. AMANDA может запускаться каждый день, несколько раз в день или один раз в несколько дней. Периодичность запусков задается с помощью данной опции. Предположим, что цикл резервного копирования, указанный посредством опции dumpcycle, составляет четыре недели. Установив значение runspercycle, равное 20, вы сообщаете, что данные для копирования должны выбираться исходя из того, что AMANDA будет запускаться один раз в день в рабочие дни. Значение 4 говорит о том, что AMANDA будет запускаться один раз в неделю. (Заметьте, что реальный запуск AMANDA осуществляется с помощью инструмента cron. Значение опции runspercycle не влияет на периодичность запуска, оно лишь позволяет AMANDA планировать, какие данные должны быть скопированы на резервный носитель.)
• tapecycle. Значение данной опции определяет число магнитных лент, используемых в цикле резервного копирования. Учитывая, что некоторые носители могут быть повреждены, значение tapecycle должно быть несколько больше, чем значение опции runspercycle.
• tapetype. Если вы сообщите о том, какой тип накопителя вы используете, AMANDA сможет определить, как долго будет длиться запись информации. В конфигурационном файле, поставляемом в составе конфигурационного пакета, указано несколько типов накопителей. Если вы не найдете тип, соответствующий вашему устройству, вам придется выяснить эти сведения самостоятельно. Сделать это можно с помощью утилиты tapetype, которая поставляется в составе пакета AMANDA, но по умолчанию не устанавливается. Перейдите в каталог tape-src инсталляционного пакета и задайте команду make tapetype. Затем установите в устройстве ненужную вам ленту и введите ./tapetype -f /dev/устройство (где под устройством понимается файл, соответствующий накопителю на ленте). В результате выполнения данной команды вы получите набор значений для вашего устройства. Для завершения данной процедуры потребуется несколько часов, и все данные на ленте будут уничтожены. Если в вашем накопителе реализована встроенная функция сжатия данных, вы можете увеличить значение длины ленты в полтора- два раза. При этом соблюдайте осторожность: если вы будете копировать данные, плохо поддающиеся сжатию, места на ленте может не хватить.
• tapedev. Данная опция задает файл устройства Linux, представляющий интерфейс без перемотки к накопителю на ленте. В большинстве случаев в качестве значения этой опции указывается имя /dev/nst0 или /dev/nht0.
• netusage. С помощью этой опции указывается максимальная пропускная способность линий, на которую может рассчитывать AMANDA при выполнении резервного копирования.
• labelstr. Значением этой опции является регулярное выражение, которое AMANDA использует для назначения имен лентам с резервными копиями данных. Имена лент учитываются при их подготовке. Особенности подготовки лент рассматриваются в следующем разделе.
• tpchanger, changerfile и changerdev. Если в вашем накопителе предусмотрена автоматическая смена ленты, вы можете управлять устройством с помощью специальных файлов. Примеры этих файлов находятся в каталоге example инсталляционного пакета.
• infofile, logdir и indexdir. Расположение файлов протоколов AMANDA задается с помощью опций infofile и logdir. Кроме того, опция indexdir определяет индексный файл, содержащий список скопированных файлов. Значения этих опций можно оставить без изменения.
Кроме установки значений приведенных выше опций, вам также надо описать область для хранения данных. Для этого используется опция holdingdisk, значение которой занимает несколько строк и состоит из ряда подопций. К ним относятся directory (каталог для хранения файлов) и use (пространство на диске, которое может быть использовано для хранения данных). Если на диске сервера резервного копирования недостаточно места, вы можете задать отрицательное значение chunksize. При этом файл, размер которого превышает абсолютное значение chunksize, непосредственно записывается на ленту, минуя область хранения. (Положительные значения chunksize указывают на то, что большие файлы должны быть разбиты на части для размещения в области хранения. Такой подход удобно применять в тех случаях, когда файловая система на диске или особенности ядра не позволяют обрабатывать большие файлы. Например, при использовании версий ядра 2.2.x на компьютерах x86 максимальный размер файлов составляет 2 Гбайт.)
Подготовка лент
Для работы AMANDA необходимо, чтобы лента была подготовлена к использованию. Подготовка осуществляется с помощью утилиты amlabel. Эта утилита должна запускаться от имени пользователя, который выполняет резервное копирование. Вызов amlabel выглядит следующим образом:
$ amlabel Daily DailySet123
Указанный здесь параметр Daily задает подкаталог, в котором размещается конфигурационный файл amanda.conf. В результате amlabel получает доступ к необходимым опциям. Параметр DailySet123 представляет собой метку ленты. Это значение должно соответствовать регулярному выражению, заданному в качестве значения опции labelstr в файле amanda.conf, в противном случае AMANDA не сможет работать с лентой. В большинстве случаев AMANDA копирует данные из сети на несколько лент. Чтобы вы могли различать ленты, вам необходимо разработать схему их именования.
Определение типов резервных копий
В конце файла amanda.conf, поставляемого в составе инсталляционного пакета AMANDA, содержится несколько записей dumptype. Они определяют, как должно выполняться резервное копирование содержимого клиентского компьютера или отдельной файловой системы. В составе записи dumptype могут указываться следующие опции.
• compress [client | server] [best | fast | none]. Вы можете задать тип сжатия, выполняемого клиентом или сервером копирования. Тип сжатия выбирается в зависимости от используемого процессора и сетевых ресурсов. Значение best указывает на то, что необходимо выполнить наиболее эффективное сжатие, для которого требуется большое количество ресурсов процессора. Значение fast задает быстрое, но менее эффективное сжатие. Значение none запрещает сжатие данных.
• exclude [list] "строка". В зависимости оттого, указано ли значение list, AMANDA включает заданную строку в качестве значения опции --exclude или --exclude-from утилиты tar.
• holdingdisk логическое_значение. Задавая логическое значение yes или no, вы можете указать AMANDA, следует ли использовать область диска для хранения данных.
• index логическое_значение. Задавая логическое значение равным yes или no, вы сообщите AMANDA о том, следует ли создавать перечень файлов, скопированных на резервный носитель. Такой файл может оказать помощь в работе с резервными копиями, но он занимает место на диске, которое можно использовать для других целей.
• kencrypt логическое_значение. Данная опция позволяет указать, следует ли кодировать данные, передаваемые по сети, с помощью протоколов Kerberos. Значение, равное yes, можно указывать только в том случае, когда сеть сконфигурирована для работы с Kerberos. Вопросы использования Kerberos обсуждались в главе 6.
• program "строка". AMANDA может использовать либо утилиту tar, либо программу dump, ориентированную на работу с конкретной операционной системой. Данная опция позволяет указать, какую из этих программ следует использовать. По умолчанию AMANDA работает с программой dump (значение DUMP данной опции). Чтобы задать использование tar, необходимо, чтобы значение опции было равно GNUTAR. (При работе с Samba по умолчанию применяется утилита tar.)
• skip-incr логическое_значение. Если значение данной опции равно true, то при инкрементном копировании файловая система, для которой указан этот тип резервной копии, не учитывается.
В определении типа резервной копии могут присутствовать и другие опции. Некоторые из них, например dumpcycle, обсуждались в предыдущем разделе. Информацию о других опциях вы найдете в справочной системе. Большинство определений типов резервных копий начинается с имени другого определения. Это означает, что новое определение создано на основе существующего и для него справедливы значения опций базового определения. Например, в конфигурационном файле amanda.conf, поставляемом в составе инсталляционного пакета, присутствует определение с именем global, включаемое в другие определения.
Заметьте, что при выполнении одной операции резервного копирования могут быть созданы копии различных типов. Например, вы можете скопировать важные системные файлы, не используя сжатие, но сжимать при копировании менее важную информацию. Вы также можете использовать утилиту dump для копирования разделов ext2fs, а утилиту tar — для копирования разделов ReiserFS.
Определение данных для копирования
В файле amanda.conf содержатся важные опции, управляющие процессом копирования, но отсутствуют сведения о клиентах резервного копирования или каталогах, содержимое которых необходимо записать на резервный носитель. Эта информация указывается в файле disklist, который находится в том же каталоге, что и amanda.conf. В составе инсталляционного пакета AMANDA содержится пример файла disklist. Очевидно, что рабочий вариант этого файла, созданный с учетом конфигурации вашей системы, будет существенно отличаться от образца.
Содержимое файла disklist представляет собой набор записей, каждая из которых содержится в отдельной строке и состоит из трех полей. В этих полях указывается имя компьютера, выступающего в роли клиента резервного копирования, область для копирования и тип резервной копии для этой области. В качестве области для копирования может быть указано имя устройства (например, /dev/hda2 или hda2) либо точка монтирования файловой системы (например, /home). Строки, начинающиеся с символа #, содержат комментарии. Пример простого файла disklist приведен в листинге 17.2.
Листинг 17.2. Пример содержимого файла disklist
# Создание резервной копии сервера резервного копирования
buserver.threeroomco.com / root-tar
buserver.threeroomco.com /var user-tar
buserver.threeroomco.com /hold holding-disk
# Создание резервной копии клиента Linux или UNIX
buclient.threeroomco.com / root-tar
buclient.threeroomco.com /home user-tar
# Создание резервной копии клиента Windows
buserver.threeroomco.com //WINPC/DRIVEC user-tar
Большинство записей в этом примере не нуждается в комментариях. Раздел /hold компьютера buserver.threeroomco.com содержит область для хранения данных.
В определении соответствующего типа резервной копии указано значение по опции holdingdisk, что предотвращает использование этой области для временного хранения своего же содержимого. Если в данном разделе не содержится ничего, кроме области хранения данных, вы можете исключить его из процесса копирования. Для копирования данных клиента Windows указывается имя компьютера Linux или UNIX, на котором установлен и выполняется сервер Samba, а также NetBIOS-имя клиента Windows (WINPC) и имя разделяемого объекта (DRIVEC). В листинге 17.2 в качестве компьютера, на котором установлен продукт Samba, указан сам сервер резервного копирования, но при необходимости вы можете задать имя другого компьютера. (Заметьте, что, установив Samba на сервере резервного копирования, вы уменьшаете нагрузку на сеть.) Чтобы создать резервную копию устройства на компьютере под управлением Windows, его не нужно монтировать; AMANDA обращается к системе Samba для использования smbclient. Samba использует smbclient так же, как обычный клиент резервного копирования утилиту tar или dump. В файловой системе компьютера, на котором выполняется Samba, необходимо создать файл /etc/amandapass. В этом файле следует указать имя разделяемого объекта и пароль. В качестве пользовательского имени AMANDA передает имя SAMBA, поэтому при работе с Windows NT, 2000 или XP этот пользователь должен присутствовать в системе. Для того чтобы изменить имя пользователя, применяемое по умолчанию, вам надо при установке AMANDA задать это имя в качестве значения опции --with-samba-user.