· 18 мин чтения

Файловый сервер Windows с DFS: правильная архитектура для офиса 50+ РМ

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет в ИТ-аутсорсинге я поднял и поддержал, наверное, сотню файловых серверов на Windows Server. И до сих пор в каждом новом проекте вижу одни и те же ошибки: ACL с прямыми именами пользователей, папка «Общая» с доступом Everyone Full Control, нет квот, Shadow Copy не включён, бэкап настроен «как-нибудь». В этой статье — собранный по шишкам правильный подход.

Что ожидать от современного файл-сервера

Современный файл-сервер в офисе на 50+ рабочих мест — это не «компьютер с общими папками». Это сервис с чётко определёнными свойствами:

У нас на практике это стандартная конфигурация, которую мы разворачиваем клиентам за 3–5 рабочих дней.

Выбор железа

В зависимости от задачи я предлагаю три конфигурации:

ПрофильCPURAMДискиСеть
Базовый (до 50 РМ)Xeon Silver 8C32 ГБ2× 240 GB SSD + 4× 4 TB SATA RAID102× 1 Гбит LACP
Средний (50–150 РМ)Xeon Gold 16C64 ГБ2× 480 GB NVMe + 4× 4 TB SAS RAID102× 10 Гбит
Нагруженный (150+ РМ)Xeon Platinum 8280128 ГБ2× 480 GB NVMe + 8× 3.84 TB NVMe RAID102× 40 Гбит Mellanox

Я всегда ставлю клиентам в дата-центре МТС оборудование Dell PowerEdge — на практике у нас 98% uptime за год по парку из 20+ серверов.

Установка ролей и подготовка тома

Install-WindowsFeature `
  FS-FileServer, FS-Resource-Manager, FS-DFS-Namespace, FS-DFS-Replication, `
  FS-VSS-Agent, File-Services, Storage-Replica `
  -IncludeManagementTools

# Подготовка тома данных
Initialize-Disk -Number 1 -PartitionStyle GPT
New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D
Format-Volume -DriveLetter D -FileSystem NTFS -AllocationUnitSize 65536 -NewFileSystemLabel "Data"

Cluster size 64K для больших файлов даёт лучшую производительность. Для хранения миллиона мелких документов — оставляем default 4K.

Структура папок

Структура должна быть понятной и плоской. Максимум два уровня вложенности в корне:

D:\Shares\
├── Departments\        # общие папки отделов
│   ├── Accounting\
│   ├── HR\
│   ├── IT\
│   ├── Marketing\
│   ├── Sales\
│   └── Warehouse\
├── Projects\           # проектные папки с доступом по проекту
│   ├── 2025-ProjectA\
│   └── 2025-ProjectB\
├── Users\              # домашние папки сотрудников
│   └── ivanov.ii\
├── Common\             # одна общая папка для временных файлов
└── Scan\               # папка под сканы МФУ

Каждая папка — отдельная шара:

New-SmbShare -Name "Accounting$" -Path "D:\Shares\Departments\Accounting" `
  -FullAccess "Domain Admins" `
  -ChangeAccess "DL_Acct_RW" `
  -ReadAccess "DL_Acct_RO" `
  -Description "Бухгалтерия" `
  -EncryptData $true

# Скрытая шара с $ на конце не видна в сетевом обзоре, но доступна по прямой ссылке

AGDLP — правильная раздача прав

Самое важное: никогда не давайте ACL напрямую пользователям. Только через группы по принципу AGDLP.

  1. Account — учётка пользователя.
  2. Global group — роль или принадлежность к отделу (G_Accounting, G_HR).
  3. Domain Local group — права на конкретный ресурс (DL_Acct_RW, DL_Acct_RO).
  4. Permissions — назначаются на файловой системе Domain Local группам.

Пример настройки для Бухгалтерии:

# Глобальные группы ролей
New-ADGroup -Name "G_Accounting" -GroupScope Global `
  -Path "OU=Roles,OU=Groups,DC=corp,DC=ru"

# Локальные группы прав
New-ADGroup -Name "DL_Acct_RW" -GroupScope DomainLocal `
  -Path "OU=Permissions,OU=Groups,DC=corp,DC=ru"
New-ADGroup -Name "DL_Acct_RO" -GroupScope DomainLocal `
  -Path "OU=Permissions,OU=Groups,DC=corp,DC=ru"

# Вложим глобальную в локальную
Add-ADGroupMember -Identity "DL_Acct_RW" -Members "G_Accounting"

# Права на файловой системе
$acl = Get-Acl "D:\Shares\Departments\Accounting"
$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule(
  "CORP\DL_Acct_RW","Modify","ContainerInherit,ObjectInherit","None","Allow")))
Set-Acl "D:\Shares\Departments\Accounting" $acl

При добавлении нового сотрудника в бухгалтерию — просто кладём его в G_Accounting. Всё, доступ есть.

DFS Namespace

Теперь создаём единое пространство имён, чтобы пользователь не помнил имя сервера:

# Domain-based DFSN
New-DfsnRoot -TargetPath "\\FS01\Shared" `
  -Type DomainV2 -Path "\\corp.ru\Shared"

# Добавляем ссылки
New-DfsnFolder -Path "\\corp.ru\Shared\Accounting" -TargetPath "\\FS01\Accounting$"
New-DfsnFolder -Path "\\corp.ru\Shared\HR"         -TargetPath "\\FS01\HR$"
New-DfsnFolder -Path "\\corp.ru\Shared\Common"     -TargetPath "\\FS01\Common"

Теперь пользователь монтирует \\corp.ru\Shared — видит красивое дерево. Когда через два года понадобится перенести папку Accounting на другой сервер — обновим DFSN-цель, клиенты даже не заметят.

Квоты через FSRM

File Server Resource Manager умеет квоты, файл-скрининг, отчёты. Типовая настройка:

# Шаблон квоты 50 ГБ с уведомлением на 80%
New-FsrmQuotaTemplate -Name "User-50GB" -Size 50GB `
  -Threshold (New-FsrmQuotaThreshold -Percentage 80 `
    -Action @(New-FsrmAction -Type Email `
      -MailTo "[Source Io Owner Email]" `
      -MailCC "admin@corp.ru" `
      -Subject "Квота 80%"))

# Применяем на OU домашних папок
New-FsrmAutoQuota -Path "D:\Shares\Users" -Template "User-50GB"

File screening — защита от шифровальщиков и мусорных файлов:

# Шаблон блокирующий расширения криптолокеров
New-FsrmFileGroup -Name "Crypto-Extensions" `
  -IncludePattern "*.locked","*.crypt","*.encrypted","*.ransom","*.wcry"

New-FsrmFileScreen -Path "D:\Shares" `
  -IncludeGroup "Crypto-Extensions" `
  -Active -Notification (New-FsrmFmjNotificationAction -Type Email `
    -MailTo "admin@corp.ru" -Subject "Крипто-попытка на FS01")

Shadow Copy (Previous Versions)

Настраиваем теневые копии на томе D: — пользователи сами откатят случайно удалённый файл:

vssadmin add shadowstorage /for=D: /on=D: /maxsize=15%
vssadmin list shadowstorage

# Создание по расписанию
schtasks /Create /TN "ShadowCopyD" `
  /TR "vssadmin create shadow /for=D:" `
  /SC DAILY /ST 07:00 /RU SYSTEM /RL HIGHEST /F
schtasks /Create /TN "ShadowCopyDMidday" `
  /TR "vssadmin create shadow /for=D:" `
  /SC DAILY /ST 12:00 /RU SYSTEM /RL HIGHEST /F

Два снимка в день хватает для большинства офисов. Важно: Shadow Copy — это не бэкап. При отказе диска всё потеряется вместе со снимками.

Реальный кейс: файл-сервер для логистики

В январе 2025 клиент — логистическая компания, 88 РМ в Москве и 2 филиала в Питере и Казани — попросил сделать нормальный файл-сервер. Что было: один старый сервер 2012 R2 с разваливающимся RAID, папки с Everyone Full Control, бэкап был «настроен», но не проверялся 2 года. Хотели «как у людей».

Собрали Dell PowerEdge R650 с Xeon Platinum 8280, 128 ГБ RAM, 8× 3.84 ТБ NVMe в RAID10 (14 ТБ полезного) в дата-центре МТС, 40G Mellanox аплинк. За 5 рабочих дней подняли файл-сервер с DFSN, пересобрали структуру прав через AGDLP (создали 40 глобальных групп + 80 локальных), настроили FSRM-квоты 100 ГБ на отдел, Shadow Copy дважды в день, Windows Server Backup ежедневно + Veeam агент для оффсайт-копий на FTP в дата-центре МТС.

На выходе: скорость открытия файлов с 8–12 секунд (старый HDD) упала до 400 мс (NVMe по 40G). Пользователи заметили сразу. Стоимость инфраструктурных работ — 195 000 руб., плюс железо. По словам клиента, «теперь я понимаю, за что платят в нормальных компаниях».

Типичные грабли

Построим правильный файл-сервер

Я лично проектирую и разворачиваю файловые сервера на Windows Server: DFS Namespaces, AGDLP, FSRM-квоты, Shadow Copy, антикрипто-защита, бэкап. Срок — 5–10 рабочих дней в зависимости от размера. Аудит существующей инфраструктуры — за один рабочий день.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ

Что такое DFS Namespaces?
DFSN — это виртуальный единый каталог вида \\corp.ru\shared, который склеивает шары с разных серверов в одно пространство имён. Пользователь не знает, на каком сервере лежит папка — это облегчает миграцию и масштабирование.
Почему AGDLP важен?
AGDLP — принцип управления правами: Accounts в Global group, Global в Domain Local group, Local group назначается Permissions. Это упрощает управление и избавляет от прямых ACL на папках, которые сложно аудировать.
Какие квоты ставить?
На домашние папки пользователей — обычно 10–50 ГБ мягкой квоты, с уведомлением на 80% и блокировкой на 100%. На общие папки отделов — от 100 ГБ до нескольких ТБ, в зависимости от специфики. Аудитория должна знать о квоте.
Shadow Copy это бэкап?
Нет, это снапшоты на уровне тома, дающие пользователю Previous Versions. Удобны для быстрой отмены случайного удаления. Но если сервер умер или диск вышел из строя — все снапшоты потеряются. Полноценный бэкап обязателен.
Какая антикрипто-стратегия?
FSRM с шаблонами расширений вымогателей (.locked, .crypt, .encrypted) — при попытке записи такого файла сервер блокирует IP источника. Плюс отключить SMB1, настроить минимальные NTFS-права и регулярно тестировать восстановление.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.