Разделяемые объекты резервного копирования

Разделяемые объекты резервного копирования

Один из способов создания резервных копий с применением Samba состоит в использовании разделяемых объектов резервного копирования. Разделяемый объект резервного копирования предоставляет собой объект Samba, связанный с устройством резервного копирования. Существует несколько подходов к работе с данными объектами, и все они могут рассматриваться как резервное копирование, инициируемое клиентом.

Что такое сервер резервного копирования

Существуют два основных подхода к созданию разделяемых объектов резервного копирования.

• Непосредственное копирование. Вы можете создать разделяемый объект, связанный с точкой монтирования устройства со сменными носителями (например, Zip или Jaz). После монтирования носителя клиент резервного копирования может обращаться к нему как к любому другому разделяемому объекту. Так, например, вы можете записывать на этот носитель данные, запуская программу создания архивов и даже перетаскивая необходимые файлы с помощью мыши.

• Опосредованное копирование. Для копирования на резервный носитель файлов, передаваемых клиентом, можно создать разделяемый объект, использующий сценарии. Сценарий может непосредственно записывать полученные данные либо выполнять их обработку. Пример использования сценария для записи данных на компакт- диск рассматривался в главе 7.

Возможности непосредственного копирования ограничены объемом сменных носителей. Лишь на жесткий диск можно записать всю информацию, содержащуюся на клиентской машине. Опосредованное копирование обеспечивает большую степень гибкости, однако полученные данные временно записываются на жесткий диск. Поэтому если вам необходимо сохранить большой объем информации, на диске сервера резервного копирования должно быть свободное пространство, достаточное для временного хранения данных, передаваемых клиентом.

Создание разделяемых объектов резервного копирования

Разделяемые объекты резервного копирования создаются так же, как и другие типы разделяемых объектов Samba. Различие состоит лишь в том, что вы, вероятнее всего, захотите использовать сценарии для автоматического монтирования устройства при первом обращении к нему и размонтирования его по завершении процедуры создания резервной копии. Кроме того, в определении объекта резервного копирования обычно присутствует параметр max connections, ограничивающий число пользователей, которые имеют возможность одновременно работать с данным объектом. Ниже приведено определение объекта резервного копирования, который позволяет удаленным пользователям записывать резервные копии данных на устройство Zip, смонтированное в позиции файловой системы /mnt/zip.

[zip]

 comment = Zip Backups

 path = /mnt/zip

 read only = No

 max connections = 1

 preexec = /bin/mount /mnt/zip

 postexec = /bin/umount /mnt/zip

На заметку

Поскольку многие клиенты SMB/CIFS, в том числе средства, реализованные в системе Windows, не размонтируют разделяемый объект, вам, возможно, придется использовать глобальный параметр deadtime, который указывает на то, что после определенного периода бездействия соединение должно быть разорвано. Для устройства резервного копирования желательно задать параметр deadtime = 5. Значение этого параметра сообщает, что соединение будет разорвано через пять минут после прекращения активности.

Разделяемые объекты резервного копирования, подобные приведенному выше, применяются для копирования ограниченного объема данных. Такие объекты удобно использовать в небольших сетях для предоставления пользователям доступа к Zip и другим подобным устройствам.

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

Совместное использование некоторых носителей обеспечить достаточно сложно. Для работы с ними необходимо создать разделяемый объект, который предпринимал бы специальные меры по записи данных на носитель. В главе 7 были приведены два примера разделяемых объектов, которые записывали информацию на компакт-диск. Модифицированный вариант разделяемого объекта, описанного в главе 7, представлен ниже.

[backup]

 path = /var/spool/samba

 printable = Yes

 print command = /usr/local/bin/samba-backup %H %s %U

  /var/spool/samba; rm %s

Данный объект определяет псевдопринтер, который получает от клиента резервного копирования zip-файлы. Для извлечения содержимого zip-файла и копирования его на ленту с помощью tar этот объект использует сценарий /usr/local/bin/samba-backup, код которого приведен в листинге 17.1. В результате получается копия данных на ленте, аналогичная той, которая создается с помощью программы smbtar. Модифицировав сценарий или изменив параметр print command, вы можете организовать непосредственную запись zip-файла на ленту. Это позволит предотвратить потерю признаков скрытых и системных файлов при извлечении содержимого zip-файла в системе Linux.

Листинг 17.1. Сценарий, поддерживающий работу разделяемого объекта резервного копирования, реализованного в виде псевдопринтера

#!/bin/sh

# $1 = Рабочий каталог пользователя, который передал

# задание на обработку

# $2 = Имя zip-файла

# $3 = Имя пользователя, который передал задание на обработку

# $4 = Путь к zip-файлу

mkdir -p $1/backup/samba

cd $1/backup/samba

unzip $4/$2

tar cvpf /dev/st0 ./ > $1/tar.out

mail -s "Backup finished" $3 < $1/tar.out

rm $1/tar.out

rm -r $1/backup/samba

ВНИМАНИЕ

Описанный здесь подход предполагает, что файл устройства резервного копирования доступен всем пользователям. Существуют, однако, способы обойти это требование. Например, вы можете использовать для всех соединений учетную запись root. Также можно включить в определение разделяемого объекта в файле smb.conf параметр force user, который устанавливал бы идентификатор пользователя, по инициативе которого выполняется команда "печати". Вы можете создать специальную группу, членам которой накопитель на магнитных лентах был бы доступен для чтения и записи; в этом случае вам потребуется параметр force group.

Данный подход может быть использован для обработки файлов, отличных от zip- фалов. Например, если система получает tar-файлы, то их можно непосредственно скопировать на ленту. В этом случае отпадает необходимость в извлечении файлов (чему посвящена основная часть сценария в листинге 17.1). Такой подход обеспечивает более высокую скорость обработки данных, но менее удобен при работе с клиентами Windows, поскольку формат tar в основном используется в системе Linux, а в Windows он применяется крайне редко.

Применение разделяемых объектов резервного копирования

Как было описано в главе 7, применение псевдопринтера предполагает создание файла архива на локальном компьютере и передачу его на сервер резервного копирования без использования драйвера принтера. При желании вы можете создать в системе Windows bat-файл, который после щелчка на пиктограмме выполнял бы все действия, связанные с созданием резервной копии. По завершении процедуры копирования сценарий, код которого представлен в листинге 17.1, посылает по почте отчет, содержащий список скопированных файлов.

Поскольку использование псевдопринтера предполагает передачу файла архива, вы можете использовать этот способ для создания резервной копии данных Linux, при этом сведения о файлах сохраняются в той мере, в которой формат архива обеспечивает их поддержку. Если вы настроите псевдопринтер для приема tar-файла, вы можете использовать данный метод для создания резервной копии информации, содержащейся на клиентах под управлением Linux. Рассматриваемый подход обеспечивает более высокую степень защиты по сравнению с использованием сервера rshd. Работая с Samba, вы можете ограничивать доступ на основании IP-адреса компьютера, в то время как при работе с rshd необходимо также указывать пароль. Недостатком данного способа является тот факт, что для организации резервного копирования нужно очень много свободного пространства на диске. Процедура создания резервной копии занимает много времени, кроме того, если два пользователя одновременно передадут задания на создание резервной копии, возможен конфликт.