Dfs не реплицируются файлы

Обновлено: 04.07.2024

Рано или поздно системные администраторы задаются вопросом о децентрализованном хранении информации или хотя бы об объединении нескольких существующих файловых серверов в единый. Параллельно этому поднимается вопрос о безопасности хранимой информации. Относительно простым, менее затратным и популярным среди администраторов AD (Active Directory) является использование DFS. Рассмотрим что это и как настроить.

DFS - Distributed File System - распределенная файловая система. Является продуктом компании Microsoft, предназначенный для упрощения доступа пользователей к файлам. Что примечательно, файлы могут быть разнесены территориально.

Выделяют два типа DFS:
1. Namespace DFS (Пространство имен DFS). Данный тип реализует виртуальное дерево, которое объединяет общие каталоги сети в единое пространство имен. Существует возможность настройки нескольких пространств имен.
2. Replication DFS (Репликация DFS) - репликация уже существующего каталога с отслеживанием содержимого и внесенных изменений.

Установка (DFS Installation)

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

Открываем диспетчер серверов. В основной части окна кликаем по «Добавить роли и компоненты»:


В новом окне переходим к пункту «Тип установки», выбираем параметр «Установка ролей и компонентов», нажимаем кнопку «Далее»:


В обновленном окне выбираем текущий сервер и кликаем по кнопке «Далее»:


Следующим шагом, в списке доступных ролей находим «Файловые службы и службы хранилища» и раскрываем список, в котором необходимо отыскать «Файловые службы и службы iSCSI». Также раскрываем список параметров. Отмечаем галочками «Пространства имен DFS» и «Репликация DFS». В появившемся окне кликаем «Добавить компоненты». Нажимаем кнопку «Далее» несколько раз и дожидаемся окончания установки:


Создание пространства имен DFS

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



Общий доступ к папке готов. Кликаем по кнопке «Готово»:


Теперь сервер доступен по пути:
WINSERVER2019net_share

Создадим пространство имен DFS.

Для этого в меню «Пуск» выбираем «Средства администрирования Windows». Также можно через Панель управления ➝ Система и безопасность ➝ Администрирование.

В открывшемся окне, выбираем «Управление DFS»:


В новом окне «Управление DFS», в правой части кликаем по «Новое пространство имен . »:


В окне мастера указываем имя сервера. Его можно отыскать как в окне, которое откроется при клике по кнопке «Обзор», так и в свойствах системы на вкладке «Имя компьютера». Нажимаем «Далее»:


Следующим шагом указываем имя пространства имен. В нашем случае, пусть будет «MyDFS». Нажимаем кнопку «Изменить настройки. ». В новом окне следует обратить внимание на строку «Локальный путь общей папки», при необходимости измените его. В том же окне установим переключатель на значение «Использовать пользовательские разрешения» и кликаем кнопку «Настроить»:


В открывшемся окне разрешаем полный доступ для всех и нажимаем кнопку «OK»:


Окно изменения настроек закрываем кликом по кнопке «OK», в окне мастера нажимаем кнопку «Далее»:


На новом этапе выбора типа пространства имен устанавливаем переключатель на значение «Доменное пространство имен», нажимаем кнопку «Далее».

Внимательно просматриваем настройки. Все устраивает - нажимаем «Создать»:


В случае успеха мастер покажет следующее окно:


Нажимаем кнопку «Закрыть».

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

Смысла в проделанном выше нет, если не добавить каталоги к уже существующему пространству имен. В примере процесс будет выполнен на том же сервере, однако, метод применим ко всем серверам в домене.

В окне управления DFS, в левой его части, разворачиваем дерево управления DFS до существующего, кликаем по необходимому. В правой части окна, в разделе действий, выбираем «Создать папку. »:


В открывшемся окне «Создание папки» указываем имя, в нашем случае «Test» и нажимаем кнопку «Добавить»:


В новом окне необходимо добавить путь к существующей сетевой папке. Список доступных каталогов можно посмотреть кликнув по кнопк «Обзор. ». По окончании, нажимаем «OK»:


Результат будет таким:


Нажимаем «OK».

Доступ к DFS можно получить из любой адресной строки (Пуск->Выполнить, или из адресной строки любой папки) по шаблону:
<доменное_имя_сервера><имя_пространства_имен_DFS>


Настройка DFS-репликации

Для выполнения репликации данных необходимо добавить второй сервер в этот же домен и установить на нем роль сервера «Репликация DFS» с помощью диспетчера серверов:


На этом же сервере создаем папку и разрешаем общий доступ к ней. В эту папку будут реплицироваться данные из директории, расположенной на сервере контроллера домена:


При открытии доступа и позже, в меню свойств папки можно увидеть сетевой путь до каталога:


Возвращаемся к контроллеру домена и развернутому на нем пространству имен DFS. Открываем уже знакомое из примеров выше окно «Управление DFS». В левой части окна, разворачиваем дерево до созданного пространства имен. В правой части окна выбираем «Добавить конечный объект папки. ». В новом окне вводим адрес до общего каталога на другом сервер (который создали ранее). Нажимаем кнопку «OK»:


Система задаст вопрос желании создать группу репликации. Нажимаем кнопку «Да»:


Дожидаемся окончания хода выполнения. Итогом будет открытое окно «Мастера репликации папок». Необходимо проверить имя группы репликации, а также имя каталога, который будет реплицирован. Переходим к следующему шагу кликнув по кнопке «Далее»:


На данном этапе проверяем пути до сетевых каталогов и нажимаем «Далее»:


Следующим шагом предстоит выбрать основной узел из выпадающего списка. Это тот узел с которого данные будут реплицироваться. В случае с примером, основной член репликации сервер с именем WINSERV2016 - это сервер, на котором поднят контроллер доменов. Конкретный пример, лишний раз напоминает о необходимости определения понятных имен для серверов и прочих узлов сети. Нажимаем «Далее»:


Теперь предстоит выбрать топологию подключений между членами репликации. Выбираем доступную - «Полная сетка», однако если вы желаете создать свою топологию репликации позже, то выбирайте «Нет топологии». Нажимаем «Далее»:


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

Второй вариант, предлагает настроить репликацию по расписанию. Минус этого способа в том, что данные будут синхронизированы «потом». Выбираем желаемый вариант и нажимаем «Далее»:


Программа предлагает просмотр выбранных параметров. Если все устраивает - нажимаем кнопку «Создать»:


В случае успеха результат будет таким:


Нажимаем кнопку «Закрыть».


Настройку распределенной файловой системы, а также репликацию данных можно считать оконченной.



Как многим известно, в свойствах реплицируемых папок можно настроить исключения в виде масок файлов — и тогда служба не будет реплицировать файлы, соответствующие заданным маскам. Но не все знают, что у файлов есть атрибут «временный», и DFSR не обрабатывает такие файлы by design. И если это не учесть, то может случиться так, что содержимое ваших DFSR-папок станет рассинхронизированным, хотя в логах службы всё будет чисто и красиво, и всплыть это может в самый неподходящий момент. Сама проблема и ее решение уже не раз разбирались в интернете, цель же этой статьи — доработать созданное ранее решение, добавив ему гибкости и удобства. Для кого актуально — прошу под кат.

Тема давно и не раз освещалась в интернете, например в официальном блоге, тут и на самом Хабре. Поэтому не буду повторяться, а перейду сразу к делу. Исходное решение представляет собой скрипт на PowerShell, который сбрасывает атрибут «временный» для всех файлов в заданной папке. Взяв его за основу, я написал свой вариант, который находит реплицируемые папки на целевом сервере и пробегается по каждой из них, сбрасывая проблемный атрибут, после чего отправляет отчет о найденных файлах на email. Также добавлена поддержка длинных путей (необходима 5-я версия PowerShell).

Для работы скрипту нужны инструменты управления службами DFS (по умолчанию устанавливаются вместе с добавлением роли DFS Replication). Если же на целевом сервере они отсутствуют, запустите этот командлет:


А вот сам скрипт:

Правим значения переменных, отвечающих за email-оповещения, и добавляем скрипт в планировщик:


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

Вместо отчетов на email (либо в дополнение к ним) можно настроить взаимодействие скрипта с заббиксом или другой системой мониторинга. Также важно понимать, что процедура достаточно ресурсоёмкая, поэтому не надо запускать ее слишком часто. У нас на обработку 10ТБ данных уходит примерно час, а скрипт запускается раз в сутки по ночам.

Еще нас с коллегами интересовал вопрос, откуда берутся файлы с temporary-атрибутом. Поэтому в каждом отчете вместе с полным именем файла фигурирует его NTFS-владелец. На основании собранных данных удалось выяснить, что в нашей ситуации атрибут иногда добавлялся к файлам во время копирования данных с локальных дисков, проброшенных по RDP (у нас активно используется технология удаленных рабочих столов). Но не исключено, что файлы изначально были «дефектными». Пока выяснить более подробно не удалось.

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

date

09.01.2020

directory

Windows Server 2012

comments

комментариев 56

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

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

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

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

Установка роли dfs в windows server 2012

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

Установка роли dfs с помощью powershell

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

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

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

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

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

Новое пространство имен dfs

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

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

Выбираем сервер dfs

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

Имя dfs namespace

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

Права доступа к DFS ресурсам

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

Пространсто имен dfs, интегрированное в Active Directory

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

Свойства пространства имен dfs

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

access-based enumeration для DFS в Windows Server 2012

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

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

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

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

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

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

Путь к каталогу dfs

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

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

Настройка dfs репликации в windows server 2012

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

Партнер по dfs репликации

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

Новая группа dfs репликации

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

15_replication_group_name

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

группа репликации dfs

Первичный (primary) dfs сервер

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

тип dfs репликации

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

Расписание синхронизации

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

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

параметры репликации

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

В данной статье расскажу зачем нужна репликация DFS и пошагово опишу её настройку для новичков. Это статья продолжение статьи о DFS.

DFS Replication позволяет синхронизировать реплицируемые файловые директории (replicated folders) между серверами, которые входят в репликационную группу (replication group). Серверы в репликационной группе связаны между собой соединениями (connections), так что существует путь между любыми двумя и более серверами.

Данные можно реплицировать как в пределах локальной сети, так и через глобальную WAN сеть. Технология DFSR была спроектирована с расчетом на медленные WAN сети и работает столь же надежно через Интернет, как и в пределах одного здания.
Возникает вопрос- чем же эта функция по сути отличается от пространства имен DFS? Основное ее отличие- это наличие функции Алгоритма дифференциальной компрессии -- Remote differential compression algorithm (RDC), который применяется для репликации изменений. Основная идея этого алгоритма состоит в том, что реплицируются только измененные части файла. Например, если есть большой текстовый документ, и мы добавили несколько страниц в середину документа, то только эти несколько страниц и будут переданы по сети во время следующего сеанса синхронизации. Тем самым наиболее предпочтительней использовать репликацию DFS в медленных сетях, например для репликации одной (нескольких) папок между удаленно расположенными офисами с медленными каналами.
Репликация данных устойчива к проблемам с сетью. Если связь с удаленной машиной прервется, то репликация, разумеется, остановится. Но как только сеть будет снова работать, то репликация начнется с того места, где она прервалась.
Рассмотрим пошаговую инструкцию настройки репликации DFS. Первое что необходимо сделать - установить роль DFSR.
После этого создаем группу репликации ( группа репликации - это набор серверов, именуемых членами, которые участвуют в репликации одной или нескольких реплицируемых папок. Реплицируемая папка - это папка, для которой поддерживается синхронизация на каждом из членов), для этого нажимаем правой кнопкой мыши на «Репликации», выбираем «Новая группа репликации…»

В типе реплицируемой группе репликации, рекомендую указать «Универсальная группа репликации», поскольку этот тип является более гибким в использовании в дальнейшем.

В следующем окне указываем имя группы репликации, пишем комментарий (по желанию) и смотрим тот ли домен используется (если в вашей организации используется несколько доменов).


Затем указываем сервера, которые будут входить в группу репликации (их может быть два и более).

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

В следующем окне выбираем время в которое будет выполняться репликация, в данном примере, я хочу чтобы репликация выполнялась круглосуточно, для этого я оставляю все по умолчанию.

В окне «Основной член репликации» указываем сервер на котором хранятся данные.

В следующем окне указываем папку, которую необходимо реплицировать.

Затем указываем папку на которую необходим реплицировать (на другом сервере).

После этого просматриваем все указанные настройки и если все указанно верно, нажимаем «Создать».

Теперь в категории «Репликации» видим созданную репликацию Common.

Для того что бы запустить репликацию вручную, необходимо нажать на репликацию, в данном примере "Сommon", затем зайти во вкладку "Подключения" и нажав правой кнопкой на любом подключении выбрать "Реплицировать сейчас".


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

Читайте также: