Что такое хорошо, и что такое плохо в DFS-R? Страж файлового дерева: развертываем распределенную файловую систему 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 Replicatio n. Главным их отличием является то, что в 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 рекомендованный лимит ссылок на порядок выше и составляет 50000 ссылок .

Настройка 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
Root Name="\\SERVER\first" Comment="first Root" State="1" Timeout="300"
Target Server="GRINDERS" Folder="first" State="2"

После создания корня его можно опубликовать в 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.

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

Реплицируемые ресурсы должны быть расположены в папках с NTFS 5.0, поскольку система использует систему протоколирования этой файловой структуры для отслеживания изменений.

Примечание Если необходимо использовать ограничения прав доступа к документам в папках DFS, то эти настройки следует применить только к папкам сервера (\\<имя_сервера>\ <имя_папки>). Иначе при создании ссылки DFS по новому месту репликации папка унаследует права родительской структуры.

По умолчанию репликация не включена. Чтобы организовать синхронизацию данных нескольких серверов, необходимо выделить соответствующие ссылки на ресурсы и выбрать команду Синхронизовать. При создании репликации требуется указать, какой ресурс будет являться основным (мастером). Когда первоначальная репликация завершится, все ссылки станут равнозначными: изменение в одном месте повлечет изменение по другой ссылке.

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

Автоматически синхронизируются не все файлы. Из репликации исключаются временные файлы (список расширений можно просмотреть в настройках). Сами файлы реплицируются только после того, как с ними завершена работа пользователя. Иными словами, если пользователь открыл файл и работает с ним в течение всего дня, то копия файла по реплицируемой ссылке изменится только после завершения работы - вечером.

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

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

Настраивается график репликации в задаче AD Пользователи и компьютеры. Открыв оснастку, следует включить отображение дополнительных функций (Вид | Дополнительные функции) и найти необходимый корень DFS. Открыв его свойства на вкладке Набор репликации, нужно нажать кнопку Изменить расписание и отредактировать график (рис. 10.2).

Рис. 10.2. Настройка графика репликаций DFS

Распределенная файловая система DFS (Distributed File System) – это технология, обеспечивающая возможности упрощения доступа к общим файловым ресурсам и глобальной репликации данных. Благодаря DFS распределённые по различным серверам общие ресурсы (каталоги и файлы) можно объединить в единую логическую UNC структуру, которая для пользователя выглядит, как единый сетевой ресурс. Даже при изменении физического местоположения целевой папки, это не влияет на доступ пользователя к ней.

Реализация служб DFS в Windows Server 2012 отличается от предыдущих версиях Windows. В первую очередь отметим, что технологии DFS в Windows Server 2012 реализованы в виде двух отдельных, независимых друг от друга служб — DFS Namespaces и DFS Replication , включенных в роль файлового сервера (File and Storage Services ).

  • DFS Namespaces (DFSN или DFS-N) – пространство имен DFS. Позволяет объединять в единую логическую структуру общие папки, расположенные на различных серверах организации. Каждое пространство имен для пользователя выглядит как единая сетевая папка с подкаталогами. Реальная структура данного пространства имен DFS является скрытой от пользователя, и может включать в себя различные сетевые папки, расположенные на различных серверах и сайтах.
  • DFS Replication (DFSR или DFS-R) — служба DFS репликации. Позволяет организовать эффективную службу репликации каталогов (в том числе включенных в пространство имен DFS) между различными серверами и сайтами AD. Данная служба для репликации использует специальный алгоритм удаленного разностного сжатия – RDC- remote differential compression. Благодаря RDC, которая отслеживает изменения в файлах, при репликации копируются не файлы целиком (как в случае с FRS репликацией), а только их блочные изменения.

Установка служб DFS в Windows Server 2012

Установить службы DFS можно с помощью консоли Server Manager или же при помощи Windows PowerShell.

Как мы уже говорили, службы DFS являются элементами роли Files and Storage Services :

Но проще и быстрее установить все DFS службы и консоль управления DFS с помощью PowerShell:

Install-WindowsFeature FS-DFS-Namespace, FS-DFS-Replication, RSAT-DFS-Mgmt-Con

Совет . Естественно, службы и консоль управления DFS можно установить и по отдельности.

Где FS-DFS-Namespace – служба DFS Namespaces

FS-DFS-Replication – служба репликации DFS Replication

Настройка пространства имен DFS в Windows Server 2012

Перейдем к описанию процедуры настройки пространство имен DFS, для чего необходимо открыть панель управления DFS Management tool .

Создадим новое пространство имен (New Namespace ).

Необходимо указать имя сервера, который будет содержать пространство имен (это может быть как контроллер домена, так и рядовой сервер).

Затем следует указать имя создаваемого пространства имен DFS и перейти в расширенные настройки (Edit Settings).

Здесь следует указать имя пространства имен DFS и права доступа к данному каталогу. Обычно рекомендуется указать, что доступ к сетевой папке разрешен Всем (Everyone), в этом случае права доступа проверяются на уровне файловой системы NTFS.

Далее мастер предложит указать тип создаваемого пространства имен. Это может быть Domain-based namespace (доменное пространство имен) или Stand-alone namespace (отдельное пространство имен). Domain-based namespace обладает ряд преимуществ, но для его работы нужен, собственно домен Active Directory и права администратора домена (либо наличие делегированных прав на создание доменных пространств имен DFS).

После окончания работы мастера в ветке Namespaces консоли управления DFS появится созданное нами новое пространство имен DFS. Чтобы пользователи при доступе к DFS каталогам видели только те каталоги, к которым у них имеется доступ, включим для данного пространства DFSAccess-Based Enumeration (подробнее о данной технологии в статье ). Для этого откройте окно свойств созданного пространства имен.

И на вкладке Advanced включите опцию Enable access-based enumeration for this namespace .

Чтобы посмотреть содержимое нового пространства DFS, просто наберите в окне проводника UNC путь: \\имя_домена_или_сервера\DFS

Добавление дополнительного DFS сервера

В доменное пространство имен DFS можно добавить дополнительный сервер (пункт меню Add Namespace Server), который его будет поддерживать. Делается это для увеличения доступности пространства имен DFS и позволяет разместить сервер пространства имен в том же сайте, в котором находится пользователи.

Примечание . Отдельно стоящие пространства имен DFS поддерживают только один сервер.

Добавление нового каталога в существующее пространство имен DFS

Теперь нужно добавить новый сетевой каталог в иерархию созданного нами пространства имен DFS. Нажмите кнопку Add Folder Target .

Укажите наименование каталога в DFS пространстве и его реальное местоположение на существующем файловом сервере (Folder targets ).

Настройка DFS-репликации на Windows Server 2012

Технология репликации DFS-R предназначена для организации отказоустойчивости пространства имен DFS и балансировки нагрузки между серверами. DFS-R автоматически балансирует трафик между репликами в зависимости от их загрузки и в случае недоступности одного из серверов перенаправляет клиентов на другой сервер-реплику. Но прежде, чем говорить о DFS репликации и ее настройке в Windows Server 2012перечислим основные системные требования и ограничения:

  • Служба DFS Replication должна быть установлена на всех серверах, которые планируется включить в группу репликации
  • Все сервера в группе репликации должны находиться в одном лесу AD
  • Уровень леса Active Directory должен быть как минимум Windows Server 2003 R2 (при установке первого домена контроллера на Windows Server 2012 ).
  • Функциональный уровень домена — как минимум Windows Server 2008
  • Необходимо убедиться, что антивирусное обеспечение на файловых серверах совместимо с технологией репликации DFS
  • Реплицируемые каталоги должны располагаться на томах с файловой системой NTFS (файловые системы и FAT не поддерживаются). Также не поддерживается репликация данных, хранящихся на on Cluster Shared Volumes

В консоли DFS Managment выберите нужный вам DFS Namespace и щелкните ПКМ по каталогу, для которого необходимо создать реплику и выберите пункт Add Folder Target .

И укажите полный (UNC) путь к сетевому каталогу другого сервера, в котором и будет храниться реплика.

На вопрос хотите ли вы создать группу репликации отвечаем Yes.

Запускается мастер настройки репликации. Проверяем имя группы репликации и каталог.

Указываем первичный (Primary ) сервер. Именно этот сервер будет источником данных при инициальной (первичной) репликации.

Затем выбираем тип топологии (соединения) между членами группы репликации. В нашем примере выбираем Full Mesh (все со всеми).

И, наконец, указываем расписание репликации и параметры bandwidth throttling – ограничение доступной для репликации полосы пропускания.

После окончания работы мастера, запуститься первоначальная синхронизация.

В случае необходимости, настройки расширенных параметры расписания репликации и максимальную полосу пропускания под данный трафик, можно задать в ветке Replication .

Q зачем нужна DFS?

A для организации единого структурированного отказоустойчивого файлопомоечного пространства в организации. вместо зоопарка непонятных шар и дисков имеем единый корень (который можно мапить пользователям как диск, например), в котором мы можем создавать удобную нам структуру в виде виртуальных папок (хоть вложенных, хоть вперемешку с реальными), к которым, в удобном нам виде, мы и цепляем сетевые шары, физически расположенные на разных серверах. люди, человеки, один сетевой диск - это пипец как удобно по сравнению с колхозом, что есть у большинства!

Q интегрировать ли пространство имен в Active Directory (Domain Based DFS Namespace) или использовать автономные (stand-alone DFS namespace)?

A интегрированное пространство имен DFS хранится в AD (бэкапится, соответственно, "за компанию". вы ведь делаете резервные копии Active Directory? ;) и позволяет иметь несколько namespace серверов, т.е. имеет встроенный механизм отказоустойчивости (fault tolerance). Stand Alone DFS NS встроенных механизмов не имеет (отказоустойчивость в них достигается с помощью использования кластеризации). Microsoft рекомендует использовать domain based DSF в случае, если количество линков (виртуальных папок) не больше 5,000. Stand Alone DFS же рекомендуют ограничивать 50,000 линков. это не жесткое ограничение, это рекомендации (после превышения цифры, вроде как должна начать падать производительность). т.е. в итоге получаем, что stand alone выгодно использовать в маленькой сети, например, если нет AD или, наоборот, в случае экстремально большой файлопомойки, в остальных же случаях выгоднее использовать интегрированное пространство имен DFS.
PS: еще некоторые несознательные буржуи пишут "Standalone DFS root do not have any DFS shared folders in the root level and only one level of DFS link is possible", но я не совсем понимаю что это означает.

Q какие механизмы отказоустойчивости в domain based DFS?

A информация корня DFS хранится в Active Directory (в случае, если у вас нескольких контроллеров домена резервирование получается и тут) и реплицируется на серверы пространств имен DFS (которых тоже может быть много). линки (вируальные папки, которые вы создаете в DFS Root и к которым монтируете физические шары) могут иметь несколько (не обязательно 2, можно и больше) источников-шар, данные в которых реплицируются между собой.

Q что такое репликация DFS и какая она бывает

A механизм синхронизации содержимого нескольких источников DFS.
бывает: FRS (File Replication Service) - обычная репликация;)
DFSR (Distributed File System Replication) - модная репликация, появившаяся в Windows Server 2003R2 и 2008. использует RDC (разностное сжатие, т.е. передается только изменения в файле, а не изменившийся файл целиком, как это было в FRS. в общем, для наших дохлых каналов очень полезная штука). замечу, что репликация DFS асинхронная, т.е. некоторое время источники не согласованы.

Q на что нужно обратить внимание после развертывания DFS

A на расположение и безопасность папки DFSRPrivate в каждом источнике (служит для хранения реплицируемой информации, удаленных и конфликтных с точки зрения репликации файлов). по умолчанию хранится в самой папке-источнике с правами, наследуемыми "сверху" (вообще странно, на technet"е написано, что только администраторы будут иметь доступ. может в 2008R2 что-то поправили). если у вас в пределах папки-источника права безопасности разные (что само по себе с точки зрения архитектуры файлопомойки несколько коряво), то люди могут получить доступ туда, куда не надо. плюс, шаловливые ручонки кулибиных радости не добавят.

Q что за папка "DFSRPrivate\Staging" и как правильно выбрать ее размер?

A это папка, где хранятся временные копии файлов для репликации, через которую они, по сути, передаются. есть во всех источниках. размер, хотя бы на время первичной репликации, лучше выставить чуть больше размера максимального встречающегося файла в реплицируемой папке (если у вас нет экстремалов, хранящих гигазы вареза одним терабайтным архивом, конечно). важно: файл, больший по размеру, чем Staging-папка нормально реплицируется и нигде не застрянет, как думают некоторые, просто процесс репликации пройдет в несколько этапов (файл будет резаться на несколько частей и передаваться по частям), что несколько замедлит процесс.

Q что за папка "DFSRPrivate\Conflict and Deleted"

A так как одновременно несколько пользователей могут изменить один и тот же файл, работает принцип "кто последний записал файл, того и тапки". файл-неудачник отправляется в эту папку, а в ConflictandDeletedManifest.xml появится соответствующая запись. так же, при наличии галки "хранить удаленные файлы в папке конфликтов" там будут храниться файлы удаленные пользователями (очень удобно восстанавливать). так что на размер я бы не скупился.

Q какие основные проблемы с репликацией DFS?

A Большинство проблем с репликацией DFS у меня возникали из-за File Screening (ограничение на разрешенные расширения файлов) и Disk Quotas (ограничение на размер папки). особенно в случае первичной репликации. с дисковыми квотами всё понятно, за ними надо следить (учитывая что директория DFSRPrivate вместе со "Staging" и "Conflict and Deleted" по умолчанию находится в самой папке источнике), то с File Screening полный гемор - нужно или выносить папку DFSRPrivate в место, где нет ограничений (что не удобно) или пытаться делать исключения на папки "DFSRPrivate" (а она скрытая. гыгы) или временно отключать запреты (в первичном источнике тоже! иначе файл не попадет в Staging на источнике и не реплицируется) или удалять все файлы пользователей, попадающие под запрещающие фильтры (напомню, что файл скрининг запрещает только создание новых файлов определенных расширений, а не их наличие. т.е. если файлы уже есть и мы включаем запрещающие правила в screening, то файлы, подпадающие под фильтры, нельзя создать-изменять, но можно читать-удалять. вот мы и получим при попытке репликации ошибку, когда служба попытается записать в папку Staging запрещенный реплицируемый файл, file screening ругнется ошибкой "нет места на диске", на чем вся репликация и встанет).

Q где хранятся подробные логи репликации?

A кроме eventlog"a в %windir%\debug\DFSR*.log.gz - архивные, и %windir%\debug\DFSR*.log - актуальный.

Q Какие есть тонкости в работе DFS?

A1 хотя и допускается монтировать одно пространство имен, как папку в другое пространстве имен, на практике при монтировании stand alone DFS Windows Server 2003 в папку другого, интегрированного в AD DFS Windows Server 2008, сей авангардизм приводил к BSOD"у при заходе в такую папку с компа с Windows XP ;) видимо, буржуи имели в виду, что можно сращивать только разные domain based DFS namespaces.

A2 когда выпадает первичный из источников папки в DFS, при заходе на него с Windows XP происходит задержка, равная времени кэширования структуры DFS (по дефолту 300 секунд, насколько я помню). если зайти с Windows Vista/7/2008, то задержки нет. как пишут буржуи, связанно с переписанными в новых windows"ах сетевых протоколах. так что полноценный auto failover, при наличии клиентов XP, не получится, нужно пользоваться немножко другими средствами или отключать источники вручную (например, на случай плановой остановки одного из серверов).

A3 так как репликация в DFS асинхронная, какие-либо базы данных держать в папке с двумя и более реплицируемыми источниками не стОит. в момент перехода между источниками она рассинхронизируется.

Q что бы еще такого сделать с DFS?

A включить ABE (Access Based Enumeration) в свойствах каждой шары - эта технология позволяет скрыть от пользователя папки, к которым у него нет доступа. полезно по многим причинам - и не раздражаем пользователя кучей папок, в которые он не сможет зайти (у него будут видны только те папки, к которым у него есть доступ), и не выдаем какую-либо косвенную информацию (мало кого не насторожит папка "План сокращения персонала в три раза") и делает навигацию по файлопомойке удобнее.

Q как вообще войти в DFS после создания? ;)

A в случае Doman Based DFS Namespace - "\\DomainName\DFSRootName" в адресной строке Explorer"a, в случае Stand Alone - как в обычную шару - "\\ServerName\DFSRootName". мапить можно как обычную шару - "net use Z: \\DOMAIN.Local\MyCoolDFS\" и "net use Z: \\Server\MyCoolDFS\" соответственно.

Всем привет!
Это моя первая публикация, надеюсь, что в дальнейшем буду писать часто.
Если что-то неправильно оформил, поправьте, я исправлю как надо.

В работе пришлось столкнуться с интересной особенностью работы DFS Replication . И хотя сам рассматриваемый вопрос не нов, набить на нем шишки могут многие.

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

Для примера я сделал тестовую среду, в которой всего два сервера - LAB-DC1 и LAB-FS1 . На каждом из них есть папка C:\DFSR , между которыми и должна проходить репликация.

Копируем в эту папку на LAB-DC1 два тестовых файла и видим, что на второй сервер отреплицировался только один.

Почему?

Потому что механизм DFS Replication устроен так, что by design не копирует файлы, у которых установлен атрибут Temporary . Воспользуемся командой fsutil и посмотрим, какие атрибуты имеют оба наших файла.

Файл not-a-temporary-file.txt имеет атрибуты 0x20 :

Файл temporary-file.txt имеет атрибуты 0x120 :

Раскодировать эти шестнадцатеричные числа очень просто. Каждый возможный атрибут файла имеет свое шестнадцатеричное значение. Вот все возможные варианты:

READONLY 0x1
HIDDEN 0x2
SYSTEM 0x4
DIRECTORY 0x10
ARCHIVE 0x20
DEVICE 0x40
NORMAL 0x80
TEMPORARY 0x100
SPARSE_FILE 0x200
REPARSE_POINT 0x400
COMPRESSED 0x800
OFFLINE 0x1000
NOT_CONTENT_INDEXED 0x2000
ENCRYPTED 0x4000

Из этого списка видно, что not-a-temporary-file.txt имеет только атрибут «Archive» , а temporary-file.txt - атрибуты «Archive» и «Temporary» .
И все файлы, для которых задано «Temporary» , не будут реплицироваться с помощью механизма DFS Replication .

Снять данный атрибут со всех вложенных файлов и папок очень просто с помощью маленького PowerShell -скрипта:
Get-ChildItem C:\DFSR -recurse | ForEach-Object -process {if (($_.attributes -band 0x100) -eq 0x100) {$_.attributes = ($_.attributes -band 0xFEFF)}}

Снимаем атрибут и вуаля! Наш «проблемный» файл temporary-file.txt успешно скопировался на удаленный сервер:

Откуда в сети берутся «временные» файлы - история умалчивает. У меня откуда-то появились. Для того, чтобы поэкспериментировать, можно установить для файла атрибут «Temporary» руками. Для этого тоже можно воспользоваться простым PowerShell -скриптом:
$file = Get-Item C:\DFSR\temporary-file.txt $file.Attributes = 0x120

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

Напоследок хочется сказать спасибо Крэгу Лэндису, который в далеком 2008-м году опубликовал у себя в блоге исчерпывающую



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: