Создание резервной копии клиента Windows с помощью сервера Linux
Создание резервной копии клиента Windows с помощью сервера Linux
Резервное копирование, инициализируемое сервером, с применением Samba осуществляется почти так же, как и копирование по инициативе сервера с использованием NFS, но работа с продуктом Samba и системой Windows имеет ряд особенностей. Необходимо обратить внимание на возможности, предоставляемые программой smbtar, и специфику поддержки длинных имен Windows.
Объявление файлов для совместного использования
Как известно, для создания резервных копий по инициативе сервера необходимо, чтобы на клиенте резервного копирования выполнялась программа-сервер, обеспечивающая доступ к файлам. В большинстве случаев для взаимодействия с клиентами резервного копирования под управлением Windows удобно использовать протокол SMB/CIFS. Вы также можете запустить Samba на компьютере Linux, обеспечив тем самым доступ к файловой системе Linux и возможность резервного копирования содержащихся в ней данных. Однако при этом теряется информация о владельцах файлов и правах доступа (если говорить точно, эта информация может стать некорректной).
В составе системы Windows поставляются программы поддержки сервера SMB/CIFS, однако по умолчанию эти программные средства не установлены. Для включения необходимых программных компонентов необходимо использовать элемент в составе Control Panel, который в зависимости от версии системы называется Network или Network and Dial-Up Connections. Работая с системой Windows 9x/Me, следует дважды щелкнуть на пиктограмме Network, в результате чего отобразится диалоговое окно Network. В системе Windows NT или 2000 необходимо щелкнуть правой кнопкой мыши на соответствующем объекте в Network and Dial-Up Connections и выбрать пункт Properties. Необходимый вам компонент называется File and Printer Sharing for Microsoft Networks. Если данный компонент отсутствует, щелкните на Add или Install. Перечень сетевых служб, среди которых присутствует File and Printer Sharing for Microsoft Networks, показан на рис. 17.1. Возможно, вам потребуется задать принадлежность системы к рабочей группе. Сделать это можно с помощью вкладки Identification диалогового окна Network (Windows 9x/Me) или объекта System в составе Control Panel (Windows 2000).
Рис. 17.1. Чтобы система Windows функционировала как сервер SMB/CIFS, в ней должен быть установлен компонент File and Printer Sharing for Microsoft Networks
Инсталлировав сервер SMB/CIFS, вам надо организовать разделение дисков, содержимое которых вы хотите записывать на резервный носитель. Для этого выполните следующие действия.
1. В окне My Computer щелкните правой кнопкой мыши на устройстве, доступ к которому вы хотите разрешить, и в появившемся контекстном меню выберите пункт Sharing. (Если этот пункт отсутствует, то, вероятнее всего, программное обеспечением сервера SMB/CIFS не установлено.) В результате вы увидите диалоговое окно Properties, подобное изображенному на рис. 17.2.
Рис. 17.2. Диалоговое окно Sharing системы Windows 2000. Аналогичное окно системы Windows 9x/Me содержит другой набор опций
2. Чтобы разрешить доступ к устройству, щелкните на опции Shared As или Share This Folder. При этом вам потребуется ввести имя разделяемого объекта, которое вы будете использовать при монтировании на сервере резервного копирования. В данном случае роль сервера резервного копирования выполняет компьютер под управлением Linux. (В системе Windows 2000 для ввода имени разделяемого объекта надо щелкнуть на New Share.)
3. При работе с Windows 9x/Me необходимо с помощью опции Access Type разрешить чтение и запись или только чтение и ввести пароль. Для создания резервных копий достаточно, чтобы данные были доступны только для чтения, но для восстановления данных необходимо также разрешить запись информации (в Windows 9x/Me, чтобы предоставить право чтения и записи, надо установить значение Full опции Access Туре). В Windows 2000 с помощью вкладки Security можно определить, кто имеет право доступа к разделяемому объекту.
4. Щелкните на кнопке OK, разрешив тем самым совместное использование устройства.
5. Повторите пп. 1–4 для каждого устройства, содержимое которого необходимо записать на резервный носитель.
После выполнения указанных действий устройство становится доступным для удаленных компьютеров. Чтобы убедиться в наличии доступа, можно использовать броузер Network Neighborhood либо попробовать обратиться к файлу с другого узла сети. На компьютере под управлением Linux для этой цели можно использовать инструмент smbclient.
Использование smbtar
В составе пакета Samba поставляется программа smbtar. Как нетрудно догадаться, этот инструмент сочетает в себе возможности утилиты tar и клиента SMB/CIFS. На самом деле smbtar представляет собой сценарий оболочки, который вызывает программы tar и smbclient, используя предоставляемые ими возможности для создания резервных копий данных, которые содержатся на компьютерах под управлением Windows. Инструмент smbtar можно использовать как для создания резервной копии всего разделяемого объекта, так и для копирования отдельных файлов. Сценарий smbtar вызывается с помощью следующего выражения:
smbtar -s клиент_резервного_копирования
[-x имя_разделяемого_объекта] [-u имя_пользователя]
[-p пароль] [-d каталог] [-t устройство] [-r] [-v]
Обратившись к справочной системе, вы получите подробную информацию об использовании smbtar. Ниже описано назначение основных опций.
• s клиент_резервного_копирования. Эта единственная обязательная опция задает имя клиента резервного копирования. В качестве ее значения указывается NetBIOS-имя компьютера. В зависимости от значения опции name resolve order в файле smb.conf, система также может обрабатывать DNS-имена узлов сети.
• x имя_разделяемого_объекта. Данная опция позволяет задать имя разделяемого объекта (это имя вводится на этапе 2 описанной выше процедуры). По умолчанию принимается имя backup.
• u имя_пользователя. Если вы хотите установить соединение под именем, отличающемся от имени пользователя, под которым вы выполняете резервное копирование, вам необходимо указать данную опцию. Заметьте, что в Windows 9x/Me пользовательское имя не применяется, за исключением тех случаев, когда система входит в состав домена.
• p пароль. Если для работы с разделяемым объектом необходим пароль, вы можете задать его с помощью данной опции. При этом возникает серьезная угроза безопасности системы, так как значение пароля будет сохранено в списке предыстории, поддерживаемом оболочкой (в случае, если вы вводите команду smbtar вручную), кроме того, пароль отображается в перечне выполняемых процессов (соответствующие данные доступны посредством утилиты ps). Если же вы запускаете smbtar из сценария, необходимо проследить за тем, чтобы код сценария мог просматривать только пользователь root.
• d каталог. Если вы хотите работать лишь с одним каталогом, вы можете указать его имя с помощью данной опции. В случае, когда необходимо сохранить на резервном носителе весь разделяемый объект, опцию -d указывать не следует.
• t устройство. Эта опция позволяет указать файл устройства, соответствующий накопителю на магнитной ленте, или задать имя файла, в котором будет сохранена резервная копия. По умолчанию в качестве значения данной опции используется значение переменной окружения $TAPE, если же данная переменная не указана, принимается имя tar.out.
• r. По умолчанию smbtar используется для создания резервной копии. Если же указана опция -r, данная программа будет работать в режиме восстановления данных.
• v. Данная опция включает режим вывода дополнительной информации. Если опция -v задана, smbtar отображает имена копируемых файлов.
В качестве примера рассмотрим команду, которая создает резервную копию объекта CDRIVE на компьютере WORK. Эта команда имеет следующий вид:
# smbtar -s WORK -p password -x CDRIVE -t /dev/st0 -v
При выполнении данной команды сначала выводится информация о состоянии системы, затем список файлов, а после этого — сведения о числе файлов и объеме сохраненных данных в байтах. Форматы файлов, созданных с помощью smbtar и tar, совпадают, поэтому при необходимости вы можете просмотреть содержимое архива посредством утилиты tar.
Использование smbmount
Вместо того чтобы работать с инструментом smbtar, вы можете воспользоваться предоставляемой Linux возможностью монтировать разделяемые объекты SMB/CIFS. Для монтирования подобных объектов можно применять утилиту mount или smbmount. При использовании программы mount надо указать тип файловой системы smbfs, задать NetBIOS-имя компьютера под управлением Windows, имя разделяемого объекта и имя пользователя. Сформированная таким образом команда имеет следующий вид:
# mount -t smbfs //WORK/CDRIVE /mnt/backup -о
username=fred,password=password
Эквивалентная ей команда smbmount выглядит так:
# smbmount //WORK/CDRIVE /mnt/backup -о
username=fred,password=password
На заметку
Реализации утилиты smbmount в пакетах 2.0.x Samba существенно отличаются одна от другой. В ранних версиях данной программы использовался другой синтаксис. Приведенный выше вызов корректен для программ smbmount, поставляемых в составе версий 2.0.5a-2.2.2 Samba.
Если вы не укажете пароль, то программы mount и smbmount запросят его. Поэтому, если вы хотите вызывать программу резервного копирования из командной строки, эти утилиты предпочтительнее smbtar. Кроме того, используя mount или smbmount, вы можете смонтировать несколько устройств и скопировать их содержимое с помощью одного вызова утилиты tar. Такой подход упрощает создание резервной копии, но замедляет восстановление содержимого одной системы, так как в этом случае необходимо сначала прочитать информацию, соответствующую другим системам.
После окончания копирования содержимого компьютера под управлением Windows необходимо разорвать соединение с клиентом резервного копирования с помощью команды umount или smbumount. Пример вызова umount приведен ниже.
# umount /mnt/backup
Особенности обработки имен файлов Windows
Для создания резервных копий содержимого системы Windows часто используются компьютеры под управлением Linux. Однако при этом необходимо учитывать особенности обработки имен файлов. Дело в том, что программы mount и smbmount интерпретируют имена файлов иначе, чем это происходит в системе Windows. Для того чтобы понять эти различия, необходимо рассмотреть правила хранения файлов в Windows. Файловая система FAT (File Allocation Table — таблица размещения файлов), используемая в Windows 9x/Me и поддерживаемая в системах Windows NT, 2000 и XP, ориентирована на работу с файлами, имена которых содержат восемь символов, а расширение — три символа. Такие имена файлов называются именами 8.3. Для хранения длинных имен файлов в каталогах Windows предусмотрены дополнительные записи. Длинными считаются имена файлов, содержащие больше восьми символов имени и больше трех символов расширения, либо имена, составленные из символов, регистр которых должен быть сохранен. (Имена 8.3, в зависимости от используемых программ, могут отображаться символами верхнего регистра либо представляться как имя, начинающееся с прописной буквы, например File.txt. Существует также возможность указать, что имя 8.3 должно представляться символами только верхнего или только нижнего регистра.) Проблема с обработкой имен файлов в Linux возникает из-за того, что в данной системе не поддерживаются имена 8.3, а используются только длинные имена файлов.
В отличие от Windows, Linux интерпретирует имена 8.3, которые присутствуют в каталогах, смонтированных с помощью mount или smbmount, как имена, состоящие только из символов нижнего регистра (например, file.txt). Такие файлы восстанавливаются корректно, но если при создании имени 8.3 было указано, что оно должно включать только символы нижнего регистра, процедура восстановления данных может представить его как состоящее из символов верхнего регистра. Такая особенность обработки имен редко приводит к возникновению серьезных проблем, поскольку при интерпретации имен файлов Windows не учитывает регистр.
Программа smbtar интерпретирует имена 8.3 как полностью состоящие из символов верхнего регистра, поэтому при ее использовании может возникнуть следующая проблема. Предположим, что в системе Windows был создан файл, имя которого полностью состоит из символов верхнего регистра, считается длинным именем, но содержит не больше восьми, а в составе расширения — не больше трех знаков. Программа smbtar, выполняемая в среде Linux, может интерпретировать такое имя как имя 8.3, в результате чего при восстановлении оно будет обработано некорректно, т.е. не будет указано, что имя является длинным и состоит из символов верхнего регистра. Данная проблема также не является серьёзной, но может создавать неудобства для пользователей.
Существенные трудности возникают при создании имен 8.3, которые должны соответствовать длинным именам. В системе Windows эта задача решается автоматически; если в окне DOS, отображаемом в среде Windows, вы зададите команду DIR, вы увидите как короткие, так и длинные имена файлов. Поскольку система Linux не имеет информации о том, какие имена являются короткими, при восстановлении данных она полагается на соответствующие средства Windows. Как правило, регистр символов и другие особенности коротких имен не имеют значения для системы, но в некоторых случаях в результате несоответствия имен могут возникать нежелательные последствия. Например, если в конфигурационном файле указано короткое имя файла и если в результате восстановления данных это имя подверглось изменениям, программа не найдет требуемый файл. Кроме того, в системном реестре Windows некоторые имена файлов хранятся в формате 8.3, поэтому в результате восстановления файлов часть записей может оказаться некорректной. Это приведет к ошибкам в работе и даже к разрушению системы. Чтобы уменьшить вероятность возникновения подобных проблем, следует придерживаться приведенных ниже правил.
• Используйте короткие имена каталогов. Применяя короткие имена каталогов вместо длинных, вы устраните ряд проблем. Например, многие программы в системе Windows размещаются в каталоге Program Files. Если вы будете использовать вместо этого каталог с именем APPS, уменьшится вероятность того, что при восстановлении данных имя будет восстановлено некорректно. Аналогичным образом следует выбирать подкаталоги для установки программ. Имена файлов, содержащих данные, не обязательно должны быть короткими, так как информация о таких файлах практически никогда не помещается в системный реестр.
• Используйте длинные имена в составе конфигурационных файлов. Если вам необходимо включить в конфигурационный файл имя каталога, задавайте длинное имя. Например, если вы хотите задать каталог в качестве значения переменной PATH в файле AUTOEXEC.BAT, используйте его полное имя. Этим вы достигнете того, что при внесении изменений в имена файлов 8.3 функционирование системы не изменится.
• Создавайте длинные имена файлов, различающиеся первыми шестью символами. При создании имени 8.3 Windows оставляет первые шесть символов низменными, затем присоединяет к ним символ и порядковый номер, начинающийся с единицы. Например, имя longfilename.txt может быть преобразовано в имя 8.3 LONGFI~1.ТХТ. Если все длинные имена файлов в каталоге будут различаться первыми шестью символами, при преобразовании в формат 8.3 все они будут оканчиваться последовательностью ~1, в результате вероятность некорректного восстановления имени файла уменьшится.
Оканчивая разговор об обработке имен файлов, следует заметить следующее. Вероятность возникновения проблем при создании резервных копий Windows-файлов с использованием компьютера под управлением Linux невелика. Если же вы примете рекомендуемые меры предосторожности, она станет еще меньше. Однако полностью игнорировать ее нельзя, поэтому желательно создать в системе Windows вариант резервной копии, который можно было бы использовать для восстановления базовой конфигурации системы.
На заметку
Файловая система NTFS (New Technology Filesystem — новая технология файловой системы), используемая в Windows NT, 2000 и XP, также поддерживает и имена 8.3, и длинные имена файлов. Однако вероятность возникновения проблем с преобразованием имен гораздо меньше, чем в тех системах, в которых используется FAT.