В качестве примера выбора конфигурации системы рассмотрим клиент, который содержит три каталога, предназначенных для копирования на резервный носитель:
/home
,
/var
и
/
(корневой каталог). Для экспортирования соответствующих файловых систем необходимо создать записи в файле
/etc/exports
. Если сервер резервного копирования имеет имя
buserver
, эти записи будут иметь следующий вид:
/home buserver(ro,no_root_squash)
/var buserver(ro,no_root_squash)
/ buserver(ro,no_root_squash)
Для
восстановления файлов следует вместо
ro
указать
rw
и перезагрузить сервер NFS. При восстановлении данных необходимо также обеспечить сохранность информации о принадлежности файлов владельцам. Если некоторый файл принадлежит, например, пользователю
jbrown
, но соответствие имени и числового идентификатора установить не удается, то данные о владельце восстановленного файла могут быть искажены. Чтобы исключить подобный эффект, надо обеспечить, чтобы на сервере и на клиенте резервного копирования содержались учетные записи одних и тех же пользователей и чтобы совпадали их числовые идентификаторы.
Выполнение резервного копирования
Команды, по которым выполняется резервное копирование, напоминают команды, рассмотренные ранее, но, для того, чтобы они выполнялись успешно, необходимо смонтировать каталоги, экспортируемые клиентом, на сервере резервного копирования. Предположим, что клиент резервного копирования имеет имя
buclient
, а на сервере существует каталог
/mnt/client
, выполняющий роль точки монтирования. Для монтирования каталогов и создания резервной копии может быть использована приведенная ниже последовательность команд.
# mount -t nfs -о soft buclient:/ /mnt/client
# mount -t nfs -o soft buclient:/var /mnt/client/var
# mount -t nfs -o soft buclient:/home /mnt/client/home
# cd /mnt/client
# tar cvlf /dev/st0 home var ./
На заметку
При составлении приведенного выше набора команд предполагалось, что сервер NFS на компьютере, выполняющем роль клиента резервного копирования, не обеспечивает автоматическое монтирование экспортируемых подкаталогов. Если автоматическое монтирование подкаталогов поддерживается, достаточно первой из перечисленных команд
mount
.
Обратите внимание на то, что среди представленных выше команд присутствует команда
cd
. С ее помощью точка монтирования экспортируемых каталогов объявляется как текущий каталог. При этом дерево подкаталогов выглядит так, как будто вы зарегистрировались на клиенте резервного копирования. Программа
tar
сохраняет информацию о каталогах, лишь начиная с точки монтирования; полный путь к файлу не записывается. В результате в архиве на ленте никак не отображена информация о том, что экспортируемые каталоги были смонтированы в точке
/mnt/client
и при восстановлении данных требуемые каталоги можно смонтировать в любой другой позиции файловой системы. Для создания резервной копии можно также использовать следующую команду:
# tar cvlf /dev/st0 /mnt/client/home /mnt/client/var /mnt/client
В данной команде явно указан каталог
/mnt/client
. (Если
вы не зададите модификатор
– -absolute-paths
, при создании архива первый символ
/
будет удален и сохранится лишь имя
mnt/client
.) В этом случае при восстановлении файлов каталоги необходимо монтировать либо в той же точке, в которой они монтировались при создании резервной копии, либо в каталоге, путь к которому оканчивается на
mnt/client
. В противном случае будет создан новый каталог, причем он разместится не на клиентской машине, а на сервере резервного копирования.
Внимание
Недостаток описанного способа резервного копирования состоит в том, что если клиент прекратит обмен по сети, процесс сохранения данных остановится на неопределенное время. В приведенном выше примере при монтировании указывалась опция
– о soft
. Она позволяет клиенту NFS на сервере резервного копирования передавать программе
tar
сведения об ошибках, предотвращая тем самым "зависание" процедуры копирования данных.
Использование SMB/CIFS
В предыдущем разделе рассматривалось использование утилиты
tar
совместно с программой
rshd
, выполняющейся на сервере резервного копирования, либо с сервером NFS, который выполняется на компьютере, выступающем в роли клиента резервного копирования. Для обеспечения взаимодействия компьютеров можно также использовать и другие серверы. В данном разделе рассматриваются вопросы выполнения резервного копирования с применением сервера SMB/CIFS. Такой способ создания резервных копий удобно использовать при работе в сетях, содержащих большое количество компьютеров под управлением Windows. В главе 7 описывался продукт Samba, с помощью которого можно организовать взаимодействие систем Windows и Linux по протоколу SMB/CIFS.
Этот протокол может использоваться для создания резервных копий данных, содержащихся не только в системе Windows, но и в Linux. Если вы плохо представляете себе особенности конфигурации Samba, желательно перед прочтением данного раздела еще раз просмотреть главу 7.
Создание резервной копии клиента Windows с помощью сервера Linux
Резервное копирование, инициализируемое сервером, с применением Samba осуществляется почти так же, как и копирование по инициативе сервера с использованием NFS, но работа с продуктом Samba и системой Windows имеет ряд особенностей. Необходимо обратить внимание на возможности, предоставляемые программой
smbtar
, и специфику поддержки длинных имен Windows.
Объявление файлов для совместного использования
Как известно, для создания резервных копий по инициативе сервера необходимо, чтобы на клиенте резервного копирования выполнялась программа-сервер, обеспечивающая доступ к файлам. В большинстве случаев для взаимодействия с клиентами резервного копирования под управлением Windows удобно использовать протокол SMB/CIFS. Вы также можете запустить Samba на компьютере Linux, обеспечив тем самым доступ к файловой системе Linux и возможность резервного копирования содержащихся в ней данных. Однако при этом теряется информация о владельцах файлов и правах доступа (если говорить точно, эта информация может стать некорректной).