Настройка DFS (Distributed File System) и репликации папок в Windows Server

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

Реализация DFS в Windows Server основана на двух службах:

  • DFS namespace – служба для объединения файловых ресурсов с разных серверов в единое логическое пространство имен DFS. Каждое пространство имен для пользователя выглядит как сетевая папка с подпапками. Пространство имен DFS может содержать сетевые папки с разных серверов, физическая структура и местоположение которых скрыто от пользователей.
  • DFS Replication – служба позволяет организовать репликацию (синхронизацию) файлов между папок на серверах в пространстве имен DFS с целью организации высокой доступности и согласованности файлов. При изменении файла на одном из серверов, репликация DFS передает партнерам только измененные части файла.

В этой статье мы покажем, как настроить DFS и репликацию в Windows Server 2025 (в предыдущих версиях Windows Server все настраивается аналогично).

Установка DFS и создание пространства имен DFS в Windows Server

Служба DFS namespace доступна во всех редакция Windows Server. Установить ее можно через консоль Server Manager (File and Storage Services -> File and iSCSI Services -> DFS Namespace) или с помощью PowerShell:

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

Установка роли DFS namespace

После установки роли можно создать новое пространство имен DFS

  1. Откройте консоль управления DFS ( dfsmgmt.msc ).
  2. Щелкните New Namespace в правой панели Actions Создать новый DFS пространство имен
  3. Укажите имя сервера, который будет содержать пространство имен DFS (это может быть как контроллер домена, так и рядовой сервер). сервер, который хранит пространство имен
  4. Укажите имя пространства имен (оно будет исопльзоватся для доступа клиентами). Например Public.
  5. Нажмите кнопку Edit Settings и настройте права доступа к корневому каталогу пространства имен. Обычно тут указывается, что доступ к сетевой папке разрешен Всем (Everyone), в этом случае фактические права доступа проверяются на уровне файловой системы NTFS. Также здесь указывается локальный путь к каталогу DFS (по умолчанию C:\DFSRoots\Public).Права доступа к DFS папке
  6. Далее нужно выбрать тип пространства имен. Это может быть Domain-based namespace (доменное пространство имен) или Stand-alone namespace (отдельное пространство имен). Domain-based namespace обладает ряд преимуществ, но для его работы нужен, собственно домен Active Directory и права администратора домена (либо наличие делегированных прав на создание доменных пространств имен DFS).Domain-based DFS namespace
Для доступа к Stand-alone DFS namespace используется имя сервера \\ServerName\Public , а для доступа к доменному DFS нужно указывать имя домена ( \\DomainName\Public ).

Чтобы пользователи при доступе к DFS каталогу видели только те папки, к которым у них есть доступ, откройте свойства нового пространства и включите опцию Enable access based enumeration for this namespace (подробнее о Access-Based Enumeration в Windows).

Включить для DFS Access-Based Enumeration

Вывести все корневые DFS namespace в домене:

dfsutil domain winitpro.ru

dfsutil - вывести все доменные пространства имен

Добавим новую сетевую папку в иерархию созданного ранее DFS namespace:

  1. Выберите его в консоли и щелкните New Folder Добавить папку DFS namespace
  2. Укажите название нового каталога и его фактический путь к нему (в формате UNC) Добавить сетевой каталог в DFS namespace

Проверьте, что теперь добавленный сетевой каталог доступен пользователям из проводника Windows через пространство имен DFS: \\winitpro\public\Docs

открыть DFS namespacace

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

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

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

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

На всех серверах, которые будут участвовать в группе репликации DFS нужно установить роль FS-DFS-Replication:

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

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

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

указать путь к сетевой папке для репликации DFS

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

Создать группу репликации ВАЫ

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

Имя груgпы репликации DFS

Выберите primary сервер, который будет источником данных при инициальной (первичной) репликации.

primary сервер репликации

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

Full Mesh full-mesh

Затем можно указать расписание репликации и нужно ли включать ограничение на максимально доступную полосу для трафика репликации DFS (bandwidth throttling). В современных интерсетях, даже соединенных через WAN каналы, как правило можно оставить постоянную репликацию с использование всей доступной полосы.

репликация dfs и ширина канала

Если нужно, настроить расписание репликации и максимальную полосу пропускания, можно задать в настройках группы репликации в ветке Replication.

расписание репликации DFS

Подождите некоторое время, чтобы прошла первоначальная репликация на другие сервера группы DFS репликации. Либо выполните команду для принудительного запуска репликации:

Sync-DfsReplicationGroup -GroupName "wintpro.ru\public\docs" -SourceComputerName "w-fs01" -DestinationComputerName "s-fs02" -DurationInMinutes 15

Служба DFS репликации может игнорировать некоторые файлы. Как правило, не нужно реплицировать временные файлы приложений, которые создаются программами. Откройте свойства DFS папки на вкладке Replicated Folder. Обратите внимание, что по умолчанию включен фильтр для файлов с расширениями ~*, *.bak, *.tmp. Вы можете отредактировать этот список и добавить свои типы файлов, которые нужно исключать из репликации DFS.

Фильтр для реплицируемых файлов в DFS

Обратите внимание, что в корне каждой DFS папки на диске появляется скрытый каталог DFSRPrivate. Этот системный каталог, в котором хранятся внутренние данные и метаданные репликации DFS.

Каталог DFSRPrivate\DFSRPrivate

Здесь находятся такие служебные папки, значение которых нужно знать администратора DFS:

  • Staging – временное хранилище для файлов, которые находятся в процессе репликации. Размер этой папки по умолчанию 4Гб. Квота создается в настройках DFS папки на вкладке Staging. Если размер файла для репликации больше, чем квота Staging, такой файл будет передан в несколько этапов. Размер каталога Staging
  • PreExisting — файлы, которые уже существовали в папке до начала репликации и были сохранены системой
  • ConflictAndDeleted – содержит удалённые и конфликтные с точки зрения репликации файлы. В эту папку перемещаются файлы, когда несколько пользователей изменили один и тот же файл. Файл в DFS пересматривается последней версией, а более старая версия отправляется в папку ConflictAndDeleted, откуда ее может восстановить администратор.
  • Delete – содержит удаленные объекты

Кроме Event Viewer (Applications and Services Logs -> DFS Replication), логи службы DFS можно найти в папке %windir%\debug\DFSR*.log .

Рассмотрим полезные команды для мониторинга и получения статуса репликации:

Вывести информацию о файлах, которые находятся в процесс репликации DFS:

Get-DfsrState -ComputerName SRV02 | FT  FileName,UpdateState,Inbound, SourceComputerName

Get-DfsrState

Статистику по очередям репликации DFS:

dfsrdiag replicationstate /all

количество файлов, которые находятся в процессе репликации между серверами:

Get-DfsrBacklog -SourceComputerName SRV01 -DestinationComputerName SRV02| select FileName,FullPathName
dfsrdiag backlog /SMem:SRV01 /RGName:Rep_Folder /RFName:share /RMem:SRV02

Если один из партнёров по репликации находится более 60 дней офлайн, после возвращения его в сеть репликация автоматически не восстановится. На нем появится ошибка с кодом 4012, указывающий что превышен максимальный срок и нужно вывести сервер из группы репликации. Чтобы не выводить его из DFS, можно увеличить срок в параметре MaxOfflineTimeInDays.

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


Предыдущая статья Следующая статья


Комментариев: 72 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)