Резервное копирование, инициируемое сервером

We use cookies. Read the Privacy and Cookie Policy

Резервное копирование, инициируемое сервером

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

На заметку

Для выполнения копирования можно использовать протокол разделения файлов, отличный от NFS. Далее в этой главе будет рассматриваться копирование данных с компьютера под управлением Windows с использованием smbmount. Для работы с данными в системе Linux необходим протокол, который обеспечивал бы сохранение информации о владельцах файлов и правах доступа к ним. Таким протоколом является NFS.

Установка конфигурации сети для резервного копирования, инициируемого сервером

Вопросы настройки компьютера под управлением Linux для экспортирования файловых систем рассматривались в главе 8. Чтобы скопировать на резервный носитель всю информацию, содержащуюся на компьютере, надо сконфигурировать систему так, чтобы на сервере резервного копирования можно было смонтировать все файловые системы. При необходимости можно исключить из процесса резервного копирования /proc, сменные носители и некоторые разделы файловой системы. Как правило, клиент резервного копирования настраивается так, чтобы сервер имел доступ ко всем разделам жестких дисков.

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

При выполнении резервного копирования по инициативе сервера возникает угроза безопасности системы. Она состоит в том, что пользователь, зарегистрированный на сервере резервного копирования под именем root, получает неограниченный доступ к данным на клиентской машине. Происходит это потому, что при экспортировании каталогов указывается опция no_root_squash. Без этой опции сервер резервного копирования не сможет прочитать системные файлы и файлы, принадлежащие различным пользователям. Такая конфигурация позволяет злоумышленнику, имеющему доступ к компьютерам локальном сети, прочитать все файлы с клиента резервного копирования, а если при экспортировании каталогов была разрешена запись, то он сможет даже изменить содержащиеся в них данные. Подобные действия имеют возможность выполнять и пользователи внешней сети, указав в запросе фальсифицированный IP-адрес. Для того чтобы уменьшить вероятность несанкционированного доступа, необходимо защитить сервер и все клиенты резервного копирования с помощью брандмауэра, а систематически просматривая файлы протоколов, вы сможете вовремя выявлять попытки взлома системы.

В качестве примера выбора конфигурации системы рассмотрим клиент, который содержит три каталога, предназначенных для копирования на резервный носитель: /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 сведения об ошибках, предотвращая тем самым "зависание" процедуры копирования данных.