Конфигурирование Client/File Daemon

Конфигурирование Client (или File Daemon) является одной из самых простых задач. Как правило, все что нужно сделать пользователю – это изменить имя клиента для того, чтобы упростить идентификацию сообщений об ошибках. Конфигурирование не предполагает внесение каких-либо изменений в стандартный конфигурационный файл клиента.

Более подробную информацию, касающуюся конфигурационного файла и ресурсов, включая типы данных, поддерживаемые ПО Bacula, вы найдете в соответствующем разделе данного руководства. Необходимо дать определение следующим ресурсам:

  • ClientClientResource – используется для определения клиента, резервная копия которого должна быть создана;
  • DirectorDirectorResource — имя Director’а и пароль доступа.
  • MessagesMessagesChapter – используется для определения локации, куда будут отправляться сообщения об ошибках и информационные сообщения.

Ресурс Client

Ресурс Client (или FileDaemon) задает имя клиента, которое используется службой Director, а также порт, на котором клиент «слушает» подключения службы Director.

Client (или FileDaemon)

Запуск записей клиента. Конфигурационный файл должен содержать только один ресурс Client, так как он определяет свойства текущей программы-клиента.

Name = name

Имя клиента, которое должно использоваться службой Director при подключении. Как правило, рекомендуется использовать имя, связанное с именем машины (ПК), чтобы упростить процесс идентификации сообщений об ошибках в случае работы с несколькими клиентами. Эта обязательная директива.

Working Directory = Directory

Это обязательная директива, которая позволяет задать каталог, в котором File Daemon может помещать свои файлы статусов. Этот каталог должен использоваться только ПО Bacula. Однако он также может использоваться другими службами Bacula Daemon при условии, что название каждой службы Daemon в определении Name является уникальным. Эта обязательная директива.

В системах Win32, в некоторых случаях может потребоваться указать букву дисковода в пути к указанному рабочему каталогу. Также убедитесь в том, что используемый каталог доступен для записи данных системным пользователем, в противном случае возможны ошибки при восстановлении системы (загрузочный файл, который передается в File Daemon из службы Director временно помещается в данный каталог перед передачей его в Storage Daemon).

Pid Directory = Directory

Это обязательная директива, которая позволяет задать каталог, в который служба Director может помещать файлы с ID соответствующего процесса. Файл с ID процесса используется для завершения работы Bacula и для предотвращения одновременного запуска нескольких копий Bacula. Это обязательная директива. Стандартное расширение оболочки для каталога (Directory) выполняется при считывании конфигурационного файла для правильного увеличения значений $HOME .

Как правило, в системах Linux, данный каталог задается как: /var/run. Если вы устанавливаете Bacula не в системном каталоге, вы можете использовать рабочий каталог, как описано выше.

Heartbeat Interval = time-interval

Эта директива определяет интервал времени в секундах. В случае каждого контрольного сигнала, получаемого File Daemon от Storage Daemon, File Daemon будет пересылать этот сигнал в Director. Если контрольный сигнал не был принят от Storage Daemon и переслан далее, File Daemon отошлет контрольный сигнал в службу Director и в Storage Daemon, чтобы каналы продолжали оставаться активными. По умолчанию интервал равен нулю, что предполагает отсутствие контрольного сигнала. Эта функция полезна, если вы используете маршрутизатор типа 3Com, который не поддерживает стандарты Интернета и разрывает соединение через определенное время несмотря на использование интервала «keepalive». Это, как правило, приводит к возникновению сообщения об ошибке, связанной с неустойчивой работой канала.

Если вы получаете подобные сообщения об ошибке несмотря на использование интервала подтверждения времени и при этом вы используете систему Windows, вам стоит обновить Ethernet-драйвер. Данная проблема довольно часто встречается при использовании драйверов для NVidia NForce 3 (4.4.2 17/05/2004). Вы также можете попытаться использовать решение, предложенное Томасом Симмонсом для машин, на которых установлены системы Win32:

Перейдите: Пуск -> Панель Управления -> Сетевые Подключения

Правой клавишей мыши кликните по подключению, выполненное с помощью сетевой карты nvidia, и выберите меню «Свойства». На вкладке «Основные свойства» нажмите на кнопку «Сконфигурировать…». На вкладке «Дополнительные настройки» нажмите на кнопку «Контрольная сумма разгрузки», чтобы отключить опцию, а затем кликните по кнопке ОК, чтобы сохранить изменения.

Отсутствие подключения или прерывание активного подключения могут быть также вызваны работой брандмауэров Linux, которые используют правила прерывания подключений или ограничения трафика.

Maximum Concurrent Jobs = number

где number – это максимальное количество задач, которое может быть запущено одновременно. По умолчанию данный параметр равен 2, но пользователь может задать другое значение. Каждое обращение службы Director (например, запрос статуса, или запрос запуска задачи) расценивается как задача. Поэтому, если вы хотите иметь возможность запрашивать статус в консоли во время выполнения другой задачи, вам необходимо задать значение > 1.

FDAddresses = IP-address-specification

Задает порты и адреса, на которых File Daemon слушает подключения службы Director. Приведем следующий пример для простоты понимания:

FDAddresses = {
ip = { addr = 1.2.3.4; port = 1205; }
ipv4 = {
addr = 1.2.3.4; port = http; }
ipv6 = {
addr = 1.2.3.4;
port = 1205;
}
ip = {
addr = 1.2.3.4
port = 1205
}
ip = { addr = 1.2.3.4 }
ip = {
addr = 201:220:222::2
}
ip = {
addr = bluedot.thun.net
}
}

где ip, ip4, ip6, addr, и port – это ключевые слова. Примите во внимание тот факт, что адрес может быть задан как четыре группы цифр, разделенные точками, так и с использованием нотации IPv6, либо с использованием условного имени (только в IP спецификации). Порт может быть обозначен с помощью численного, либо мнемонического значения из файла /etc/services. Если порт не задан, будет использован порт по умолчанию. Если указана ip группа, разрешение может быть задано с использованием IPv4 или IPv6. Если задан протокол ip4, допускается использование только IPv4 разрешений. То же самое действует и для протокола ip6.

FDPort = port-number

Директива используется для указания номера порта, на котором клиент «слушает» подключения службы Director. Номер порта должен совпадать с номером FDPort, указанным в ресурсе Client конфигурационного файла Director’а. По умолчанию используется порт 9102.

FDAddress = IP-Address

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

FDSourceAddress = IP-Address

Это опциональная директива. Если она используется, то сервер File Daemon (для подключений службы Storage) будет привязан к указанному IP адресу, который представляет собой либо доменное имя, либо IP адрес, заданный в виде четырех групп цифр, разделенных точками. Если запись не задана, ядро выберет лучший адрес согласно таблице маршрутизации (по умолчанию).

SDConnectTimeout = time-interval

Данная запись задает интервал времени, в течение которого File Daemon  будет пытаться подключиться к Storage Daemon. По умолчанию интервал составляет 30 минут. Если в течение заданного интервала времени не будет установлено ни одного подключения, File Daemon отменит задачу.

Maximum Network Buffer Size = bytes

где bytes – это исходный размер сетевого буфера, который будет использоваться совместно со службой File Daemon. Этот размер будет уменьшен, если буфер слишком большой. Пожалуйста, будьте осторожны при изменении данного значения, поскольку, если оно будет слишком большим, оно будет уменьшено до 512 байтов. По умолчанию используется значение, равное 65 536 байтам.

В случае некоторых машин, на которых установлена ОС Windows, скорость передачи данных может быть очень низкой, что, по-видимому, связано с размером буфера в 65 536 байтов. В случае, если скорость передачи данных крайне низка, вы можете попытаться уменьшить максимальный размер сетевого буфера до 32 768 байтов, как для File Daemon так и для Storage Daemon.

Maximum Bandwidth Per Job = speed

Параметр скорости, который задает максимальную допустимую пропускную способность сети, которую может использовать задача. Параметр скорости можно задать в К/с, Кб/с, М/с, или Мб/с.

Heartbeat Interval = time-interval

Эта опциональная директива. Если она задана, File Daemon задаст интервал «keepalive» (интервал подтверждения соединения) в секундах на каждом сокете, используемом для связи со Storage Daemon. Решение реализовано только на тех системах (Linux, …), которые используют функцию setsockopt и параметр TCP_KEEPIDLE. По умолчанию используется значение, равное 0, что означает отсутствие изменений в сокете.

PKI Encryption

Смотрите раздел данного руководства, посвященный вопросам шифрования данных.

PKI Signatures

Смотрите раздел данного руководства, посвященный вопросам шифрования данных.

PKI Keypair

Смотрите раздел данного руководства, посвященный вопросам шифрования данных.

PKI Master Key

Смотрите раздел данного руководства, посвященный вопросам шифрования данных.

Ниже приведен пример правильного определения ресурса Client:

Client {                              # this is me

Name = rufus-fd

WorkingDirectory = $HOME/bacula/bin/working

Pid Directory = $HOME/bacula/bin/working

}

Ресурс Director

Ресурс Director задает имя и пароль для служб Director, которые могут связываться с конкретным клиентом.

Director

Запуск записей службы Director. Конфигурационной файл клиента может содержать любое количество ресурсов Director. Каждый ресурс определяет службу Director, которая может связываться с данным клиентом.

Name = name

Имя службы Director, которая может связываться с данным клиентом. Это имя должно совпадать с именем, которое задано в ресурсе Director в конфигурационном файле Director’а. Примите во внимание тот факт, что название чувствительно к регистру (то есть буква «S» и буква «s» в названии – это два разных символа). Это обязательная директива.

Password = password

Данная директива задает пароль, который необходимо указывать при использовании службы Director для авторизации. Этот пароль должен совпадать с паролем, заданным в ресурсе клиента в конфигурационным файле Director’а. Это обязательная директива.

Maximum Bandwidth Per Job = speed

Параметр скорости, который задает максимальную допустимую пропускную способность сети, которая может использоваться при запуске задачи из данной службы Director. Параметр скорости можно задать в К/с, Кб/с, М/с, или Мб/с.

Monitor = yes|no

Если функции Monitor присвоено значение no (по умолчанию), служба Director получит полный доступ к соответствующему клиенту. Если функции мониторинга Monitor присвоено значение yes, служба Director сможет лишь отслеживать статус соответствующего клиента.

Если данная служба Director используется службой Monitor, мы настоятельно рекомендуем использовать в директиве значение yes, чтобы избежать серьезных проблем с безопасностью.

Таким образом, использовать службы данного клиента могут несколько служб  Director. Каждая служба Director должна иметь свое имя и, как правило, свой пароль.

Ниже приведено правильное определение ресурса Director:

#
# List Directors who are permitted to contact the File daemon
#
Director {
Name = HeadMan
Password = very_good                # password HeadMan must supply
}
Director {
Name = Worker
Password = not_as_good
Monitor = Yes
}

Ресурс Сообщений

Более подробная информация относительно Ресурса Сообщений изложена в соответствующем разделе данного руководства.

Конфигурационный файл Client должен содержать по меньшей мере один Ресурс Сообщений.

Пример конфигурационного файла Клиента

Пример конфигурационного файла File Daemon приведен ниже:

#
# Default  Bacula File Daemon Configuration file
#
#  For Bacula release 1.35.2 (16 August 2004) — gentoo 1.4.16
#
# There is not much to change here except perhaps to
#   set the Director’s name and File daemon’s name
#   to something more appropriate for your site.
#
#
# List Directors who are permitted to contact this File daemon
#
Director {
Name = rufus-dir
Password = «/LqPRkX++saVyQE7w7mmiFg/qxYc1kufww6FEyY/47jU»
}
#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
Name = rufus-mon
Password = «FYpq4yyI1y562EMS35bA0J0QC0M2L3t5cZObxT3XQxgxppTn»
Monitor = yes
}
#
# «Global» File daemon configuration specifications
#
FileDaemon {                          # this is me
Name = rufus-fd
WorkingDirectory = $HOME/bacula/bin/working
Pid Directory = $HOME/bacula/bin/working
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = rufus-dir = all, !skipped
}