Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #108, ДЕКАБРЬ 2007 г.

Страж файлового дерева

Сергей «grinder» Яремчук (grinder@ua.fm)

Хакер, номер #108, стр. 108-146-1

Развертываем распределенную файловую систему DFS

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

Назначение и возможности DFS

Распределенная файловая система DFS (Distributed File System) как стандартный компонент появилась еще в Win2k. Ее задача - облегчить управление, доступ и поиск данных в сети. Для этого файловые ресурсы, находящиеся на разных компьютерах, объединяются в единое логическое пространство имен. Пользователь, вместо того чтобы запоминать имена всех общих сетевых ресурсов (Universal Naming Convention, UNC), вроде \\Server\Folder, будет обращаться к единому пространству UNC-имен, в котором объединены все серверы и общие ресурсы сети. А на каком конкретно компьютере находится запрашиваемый файл, уже забота DFS, пользователю не нужно беспокоиться о реальном расположении файла. При обращении клиента он просто перебрасывается в нужный ему каталог. На месте источника, на который указывает ссылка, может быть любая операционная система, к ресурсам которой можно обратиться, используя UNC (Windows, Linux, xBSD, NetWare). Физические объекты, связанные ссылками с DFS, называются целевыми объектами (targets) или репликами (replics).

Но удобство для пользователей и администраторов - далеко не самое важное преимущество DFS. Дело в том, что с одним логическим именем может быть связано несколько общих ресурсов, в которых хранится идентичная информация. Такой набор альтернативных общих ресурсов, связанных с одним логическим именем DFS, называется набором реплик. И если общие ресурсы находятся в одном пространстве доменного корня DFS и располагаются на серверах Win2k или Win2k3, есть возможность настроить автоматическую синхронизацию информации между ними. Пользователь, обратившийся к DFS, обычно перенаправляется к ближайшей реплике и, если она недоступна, он посылается к альтернативному ресурсу. Для уменьшения нагрузки на сервер DFS на стороне клиента данные кэшируются, поэтому при частом обращении к одному и тому же ресурсу каждый раз (???) запрос к DFS не производится. Таким образом, автоматическое резервирование важной информации, реализованное в DFS, еще и повышает отказоустойчивость всей системы (выход из строя одного сервера или дискового устройства не повлияет на работу пользователей). Хотя следует помнить, что DFS не создавалась для работы с часто обновляющимися данными, и особенно для тех случаев, когда файл одновременно может обновляться в нескольких местах (в DFS остается та версия файла, где были внесены последние изменения).

В реализации DFS в Win2k можно было разместить только одно пространство имен, в Win2k3 их может быть уже несколько. В Win2k3 R2 появилась новая версия этой системы - DFS Namespaces, в которой многие вопросы уже решены. За репликацию данных в Win2k3 SP1 и SP2 отвечает FRS (File Replication Server), в Win2k3 R2 - DFS Replication. Главное их различие заключается в том, что в FRS самым маленьким объектом, подлежащим репликации, является файл, в то время как в DFS Replication используется более совершенная технология RDC (Remote Differential Compression), которая умеет копировать только изменившиеся части файла, а функция cross-file RDC меньше нагружает канал при копировании новых файлов. Таким образом, использование DFS еще и уменьшает нагрузку на сеть, что особенно актуально для удаленных офисов с недостаточной пропускной способностью. В службе DFS не используется никаких дополнительных средств обеспечения безопасности. При обращении к targets проверяются только права доступа файловой системы и установленные для этих объектов разрешения в каталоге Active Directory.

Эти разные корни

Исходной точкой для всех имен дерева DFS служит корень распределенной файловой системы. Фактически корень - это некоторый общий ресурс, находящийся на сервере, все остальные логические имена системы DFS будут подключаться как следующие иерархические уровени. Корни в DFS могут быть двух видов, отличающихся способами хранения данных и возможностями. Изолированный (автономный) корень (Standalone DFS) не связан с Active Directory, и все ссылки на сетевые ресурсы хранятся в реестре самого сервера DFS. Такой корень не использует DFS Replication, то есть не предполагает копирование информации на другие ресурсы, и поэтому не обеспечивает отказоустойчивости. При выходе из строя сервера DFS вся иерархия становится недоступной, хотя пользователи могут обращаться к ресурсам напрямую. К слову, несколько серверов Standalone DFS способно работать в кластере, поэтому эта проблема может быть решена. Если сервер DFS является членом домена, используется доменный корень (Domain-based DFS). При таком варианте можно подключать несколько реплик и использовать DFS Replication для репликации как самого корня, так и ссылок DFS. Если в Domain-based DFS корни находятся на компьютерах под управлением Win2k и Win2k3, то они называются Mixed mode domain DFS.

При доменном DFS вся информация о пространстве имен находится на контроллере домена, к которому периодически обращается сервер DFS. Учитывая синхронизацию между DFS в домене, которая становится все более сложной при каждом изменении структуры, эти запросы могут быть узким местом в системе, поэтому в этом случае также есть некоторые ограничения. Так, в Win2k существовало ограничение в виде 16 корней для одного пространства имен. В Win2k3 это ограничение снято, так как сервер DFS теперь может обращаться к любому DC, а не только к эмулятору PDC. Второе ограничение доменных корней связано с тем, что вся структура хранится в специальном объекте, который также необходимо дублировать на всех DC при любом малейшем изменении в структуре DFS. В документации рекомендуется ограничивать максимальный размер объекта 5 Мб, что соответствует приблизительно 5000 ссылок (каталогов). Эта величина зависит от многих параметров (длины имени ссылок, наличия и размера комментариев и пр.), которые также хранятся в этом объекте. Но в среднем DFS редко превышает 50-100 ссылок, и после первоначальной настройки она остается в основном статичной, а значит, часто дублироваться не будет, и этих ограничений достичь просто не удастся. Кстати, в будущей Windows 2008 ограничение в 5000 ссылок уже снято, но для этого все серверы должны работать под управлением Longhorn. Для Standalone DFS рекомендованный лимит ссылок на порядок выше и составляет 50 000 ссылок.

Настройка DFS

Для примера настроим DFS на компьютере под управлением Win2k3 с SP2, в SP1 все настройки аналогичны. В настройках DFS в R2 и Win2k есть некоторые различия, но не настолько глобальные, чтобы не разобраться самостоятельно. Все управление распределенной файловой системой выполняется централизованно с помощью оснастки MMC «Распределенная файловая система DFS», которую можно вызвать во вкладке «Администрирование» «Панели управления» Windows. С ее помощью можно создавать и удалять корни, подключаться к любым корням DFS. Удобно, что в одной вкладке может отображаться несколько корней DFS.

В случае работы корня в Mixed mode domain DFS, когда реплики и корни DFS располагаются на компьютерах под управлением разных версий Windows, управление DFS необходимо производить с компьютера, работающего под Win2k3. Как вариант - можно установить пакет Win2k3 Administration Tools Pack (adminpak.msi), который лежит в свободном доступе на сайте корпорации. Тогда для управления можно использовать и компьютеры с WinXP. Информацию об этом пакете ты найдешь по адресу support.microsoft.com/kb/304718.

Кроме этого, для работы с DFS также можно использовать утилиты командной строки dfscmd.exe и dfsutil.exe. Последняя имеет больше возможностей, но по умолчанию не включена в состав операционной системы. Чтобы ее использовать, необходимо установить пакет Win2k3 Support Tools. Обрати внимание, что для успешной установки Support Tools требуется скачать два файла: suptools.msi и support.cab.

Для создания нового корня вызываем оснастку, щелкаем мышкой по заголовку и в контекстном меню выбираем «Создать корень» (New Root). Как вариант - можно использовать аналогичный пункт в меню «Действие». Появляется мастер создания нового корня (New Root Wizard), следуем его подсказкам. На втором шаге задаем тип создаваемого корня (доменный или изолированный), указываем несущий домен и сервер. После проверки соединения с выбранным сервером вводим имя корня. Обрати внимание на то, как будет выглядеть UNC-путь к новому корню: по умолчанию \\server\nameshare.

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

Если сервер работает под управлением Win2k3, аналогичным образом создаем и другие корни. С помощью команды «Проверить статус» (Check Status), вызываемой из меню консоли или контекстного меню, можно проверить состояние реплики. Состояние будет указано в одноименном столбце, и рядом с именем появится кружок с отметкой. Если она зеленого цвета, значит все нормально. Для проверки можно зайти по указанному UNC или использовать на локальном компьютере команду net share, а на удаленном - net view computer_name. Команда dfsutil /Root:\\server\share /View покажет информацию о DFS.

>dfsutil /Root:\\server.com\first /View

DFS Utility Version 5.2 (built on 5.2.3790.3959)

Domain Root with 0 Links [Blob Size: 284 bytes]

Root Name="\\SERVER\first" Comment="first Root" State="1" Timeout="300"

Target Server="GRINDERS" Folder="first" State="2" [Site: Default-First-Site-Name]

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

Создание ссылок

После создания корня можно начинать подключать общие ресурсы. Для этого в том же контекстном меню выбираем пункт «Создать ссылку» (New Link). В появившемся окне «Новая ссылка» в поле «Имя ссылки» вводим имя ссылки, под которым она будет доступна в DFS, затем чуть ниже - UNC-путь к целевому каталогу (должен уже существовать). Для поиска общих ресурсов можно использовать кнопку «Обзор», чуть ниже можно изменить время кэширования этой ссылки для клиентов DFS (по умолчанию 1800 сек). По окончании нажимаем кнопку ОК. Команда dfsutil /view должна показать состояние всех подключенных ссылок и их свойства. Если в сети работает несколько серверов, есть возможность добавить реплику, указывающую на альтернативную ссылку. Реплика на корень или отдельный объект создается аналогично, только в первом случае в контекстном меню выбираем пункт «Создать корневую целевую папку», а во втором – «Создать папку».

Общие ресурсы, с которыми будет производиться репликация, должны располагаться в разделах с файловой системой NTFS на компьютерах, работающих под управлением серверных версий Windows от 2000 (лучше 2003). В поле «Путь к целевой общей папке» появившегося окна вводим или при помощи кнопки «Обзор» указываем общий ресурс, располагающийся на другом компьютере. В том случае если для синхронизации информации между этими ресурсами планируется использовать альтернативные программы (или синхронизация будет производиться вручную), следует снять флажок «Добавить эту целевую папку к набору репликации» (Add this target to the replication set). Нажимаем ОК, и появляется мастер настройки репликации (Configure Replication Wizard), который поможет выбрать мастер-реплику и топологию репликации. На первом шаге указываем каталог, который будет использоваться в качестве основного целевого. Вся информация из этого каталога затем будет скопирована в другую папку. Последняя должна быть пустой; если в ней есть файлы, они будут скопированы во временный каталог, а затем удалены. Если общий ресурс по каким-либо причинам не подходит для репликации (например, расположен не в разделе с NTFS), он будет отмечен красным крестиком; при попытке перейти к следующему шагу мастер предложит указать другую ссылку или закончить работу.

Нажатием кнопки «Промежуточное хранение» (Staging Folder) можно изменить расположение каталога, который будет использоваться для временного хранения реплицируемых данных. По умолчанию этот каталог размещается в разделе, отличном от того, на котором находится общий ресурс, связанный с DFS. Далее мастер предложит выбрать топологию репликации. Необходимо будет указать один из следующих вариантов:

  • Кольцо (Ring) - все реплики обмениваются информацией с двумя соседними;
  • Звезда (Hub and spoke) - указывается основная ссылка, с которой и будут обмениваться информацией все остальные реплики;
  • Полная сетка (Mesh) - все реплики обмениваются информацией друг с другом;
  • Особая (Custom) - позднее администратор самостоятельно настроит репликацию для каждой пары серверов.

Кольцевая топология установлена по умолчанию и подходит для большинства случаев. В идеале выбранная топология репликации должна соответствовать схеме сети. Например, если есть центральный офис, где располагаются основные ресурсы, а многочисленные филиалы подключаются к ним по мере необходимости, то в этом случае больше подойдет схема «Звезда». Если ничего из предустановок не подходит, следует обратиться к пункту «Особая».

После создания реплики для ссылки соответствующий ей значок в окне оснастки изменится. В контекстном меню также появятся два новых пункта: «Отобразить статус репликации»/«Скрыть статус репликации» и «Остановить репликацию». В поле статуса репликации может быть один из трех результатов. Если процесс репликации завершился нормально, на значках будут зеленые флажки. Красный крестик на значке реплики укажет, что она в данный момент недоступна; в поле «Состояние» подпись поменяется на «Автономный». Если в проверяемой ссылке недоступны лишь некоторые реплики, в значке появится желтый восклицательный знак.

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

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

Для принудительной репликации информации, хранящейся на определенном сервере, можно воспользоваться утилитой NtfrsUtl.exe, которая входит в состав пакета Support Tools. Команда проста: ntfrsutl poll /now server.com. Чтобы увидеть установленные временные интервалы, через которые производится репликация, следует ввести ntfrsutl poll. Все установки доступны по команде ntfrsutl sets server.com.

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

Администратору для контроля следует почаще заглядывать в журнал «Администрирование -> Просмотр событий –> Служба репликации файлов», где можно найти информацию обо всех событиях, происходящих со службой FRS.

Windows Server 2003 R2

Появление R2 в 2005 году прошло тихо и незаметно. Эта версия, созданная на основе Win2k3 с пакетом обновления SP1, расширяет возможности подключения локальных и удаленных ресурсов и управления ими. R2 является как бы промежуточной версией между Win2k3 и Win2k8 и поддерживается параллельно с Win2k3. Нужно сказать, что реализация и настройки DFS в Win2k3 и R2 несколько различаются.

Содержание