Восстановление конфигурации DFS (пространства имён и репликация)
Архитектура DFS и симптомы рассинхронизации
DFS (Distributed File System) в Windows Server состоит из двух независимых ролей: DFS Namespaces (DFSN) — виртуальное дерево путей (единая точка входа \\domain.local\share), и DFS Replication (DFSR) — механизм блочной репликации файлов (RDC) между серверами. Поломка пространства имен (когда пользователи не могут зайти по доменному пути) часто связана с коррупцией объектов в Active Directory. Поломка репликации (файлы создаются на одном узле, но не появляются на другом) связана со сбоями базы данных ESENT, квотами папок Staging (Буфер) или коллизиями (Event 4302, 4012). Бизнес-риски: сотрудники работают с устаревшими копиями документов (Split-brain), потеря данных из-за перемещения файлов в папку ConflictAndDeleted.
Таблица диагностики DFS компонентов
| Компонент | Утилита диагностики | Типовой симптом (Event ID) |
|---|---|---|
DFSN (Пространства имен) | dfsutil | Event ID 14550 (Служба DFS не может инициализировать пространство из AD). Путь недоступен. |
DFSR (Репликация) | dfsrdiag, WMI | Event ID 4012 (Репликация остановлена, партнер не отвечает больше MaxOfflineTime). |
Staging Quota | Журнал DFS Replication | Event ID 4202/4204 (Папка Staging заполнена, репликация крупных файлов заморожена). |
Пошаговое восстановление топологии DFS
Сценарий 1: Восстановление метаданных DFSN в Active Directory
Если удаление и пересоздание Target-папок в консоли DFS Management выдает ошибки (например, "Элемент не найден"), необходимо вычистить мертвые записи из AD через командную строку.
Просмотр конфигурации пространства имен
dfsutil root \\domain.local\Public
Удаление мертвой ссылки на сервер (Link Target)
dfsutil target remove \\domain.local\Public\Docs \\DeadServer\DocsShare
Принудительная синхронизация метаданных DFS с Контроллером домена
dfsutil /sync \\domain.local\PublicСценарий 2: Траблшутинг DFSR и расширение Staging-квоты
Частая причина остановки репликации — нехватка места в буфере (Staging). По правилам Microsoft, размер Staging должен быть не меньше суммы 32 самых больших файлов в папке.
Получение текущей квоты Staging для всех реплицируемых папок
Get-DfsrMembership | Select-Object GroupName, FolderName, ComputerName, StagingPathQuotaInMB
Установка новой квоты в 32 GB
Set-DfsrMembership -GroupName "DataSync" -FolderName "Docs" -ComputerName "FS01" -StagingPathQuotaInMB 32768Сценарий 3: Принудительный опрос AD (Polling) и проверка бэклога
Проверка, сколько файлов ожидают репликации между узлами (бэклог).
Запуск немедленного применения политик AD для службы DFSR
dfsrdiag pollad /Member:FS01
Просмотр очереди файлов (Backlog) от передающего узла (FS01) к принимающему (FS02)
dfsrdiag backlog /RGName:DataSync /RFName:Docs /SMem:FS01 /RMem:FS02Типовые ошибки администраторов
- Ручное копирование файлов при активной репликации (Pre-seeding без понимания хэшей): Если скопировать терабайты данных на новый узел обычным Robocopy без флагов копирования прав и времени (хэши изменятся), DFSR решит, что это КОНФЛИКТ. Вся база будет перемещена в скрытую папку
DfsrPrivate\ConflictAndDeleted. Для pre-seeding используйтеRobocopy /B /COPYALL /DAT /E. - Игнорирование Event 2213: Если сервер был жестко перезагружен, БД DFSR переходит в статус Dirty Shutdown. Служба ставит репликацию на паузу. Для запуска нужно выполнить команду (из Event Viewer)
ResumeReplicationчерез WMI.
Восстановление БД DFSR (Non-Authoritative Restore) требует ювелирной работы, иначе данные будут затерты пустым массивом. Эксперты ITSTM проведут аудит топологии Hub-and-Spoke, вычистят ADSI Edit и вернут DFS в синхронное состояние за пару часов.
Частые вопросы (FAQ)
Как восстановить файлы из папки ConflictAndDeleted?
Сама служба DFS сохраняет конфликтные файлы (с измененными именами и GUID) в эту скрытую папку. Для их извлечения с оригинальными именами используйте встроенный PowerShell-скрипт Restore-DfsrPreservedFiles (модуль DFSR) или старую утилиту скриптов Microsoft. При этом необходимо знать точный путь назначения.
Что такое параметр Access-Based Enumeration (ABE)?
ABE (Перечисление на основе доступа) в DFS Namespaces скрывает папки от пользователей, у которых нет на них прав NTFS на чтение. Если пользователь жалуется, что 'папка пропала', проверьте его NTFS-права на целевом сервере.
Почему файлы удаляются на одном сервере при удалении на другом?
DFS Replication — это синхронизация 'Много хозяев' (Multi-master). Удаление файла на любом узле реплицируется на все остальные как легитимная команда на удаление. DFSR не является инструментом резервного копирования (Бэкапом)!
Можно ли настроить одностороннюю репликацию (только чтение)?
Да, в Windows Server 2012+ можно сделать папку-реплику 'Только для чтения' (Read-Only Replicated Folder). Любые изменения, внесенные локально на этом узле (вирусом или пользователем), будут немедленно отменены, и файл будет перезаписан эталонной копией с основного сервера.