Дедупликация данных в Windows Server - это роль файлового сервера, которая находит одинаковые фрагменты в разных файлах и оставляет на диске одну копию, а остальные заменяет ссылками на неё. Работает постобработкой: файлы пишутся на том как обычно, а задание по расписанию их оптимизирует. На общей файловой шаре Microsoft заявляет 50-60 % экономии, на библиотеке виртуальных дисков - до 95 %.
Появилась она в Windows Server 2012 и с тех пор живёт во всех редакциях. Дальше - как её включить, где она молча ломает соседние сервисы и в каких случаях включать не стоит.
Экономия зависит от того, что лежит на томе. Microsoft приводит такие ориентиры:
| Что на томе | Типичная экономия |
|---|---|
| Документы пользователей: офисные файлы, фото, музыка, видео | 30-50 % |
| Общая файловая шара (всё вперемешку) | 50-60 % |
| Дистрибутивы, двоичные файлы, CAB-архивы, отладочные символы | 70-80 % |
| Библиотеки образов: ISO, виртуальные жёсткие диски | 80-95 % |
На наборах с высоким дублированием скорость оптимизации доходит до 95 %, то есть занятый объём падает примерно в двадцать раз. Но это ориентиры, а не обещание: два файловых сервера одного размера дадут разную экономию, потому что лежат на них разные вещи.
Поэтому первым делом - померить.
В комплекте с ролью идёт утилита оценки. После установки дедупликации она лежит по пути C:\Windows\System32\DDPEval.exe и умеет считать как локальные тома, включая общие тома кластера, так и сетевые папки.
C:\Windows\System32\DDPEval.exe D:\Share
Вывод выглядит так:
Evaluated folder: D:\Share
Processed files: 34
Processed files size: 12.03MB
Optimized files size: 4.02MB
Space savings: 8.01MB
Space savings percent: 66
Files excluded by policy: 20
Смотреть надо на Space savings percent. Если там 5-10 %, включать дедупликацию ради этого не стоит: заплатите нагрузкой и лишней сущностью в инфраструктуре, а выигрыша не почувствуете. Строка Files excluded by policy тоже полезна: она показывает, сколько файлов не попадёт под оптимизацию из-за политики.
Install-WindowsFeature -Name FS-Data-Deduplication
Через графику - мастер добавления ролей, раздел «Роли сервера», пункт «Дедупликация данных». Если сервер входит в отказоустойчивый кластер, роль ставится на каждый узел, иначе после переезда тома задания просто перестанут отрабатывать. Про сам кластер у нас есть отдельный разбор настройки отказоустойчивого файлового сервера в Windows.
Enable-DedupVolume -Volume D: -UsageType Default
Тип использования выбирают по тому, что за нагрузка на томе. Их три, и различает их одно: какие файлы вообще берутся в работу. Силу сжатия они не меняют.
| Тип | Под что | Минимальный возраст файла | Трогает открытые файлы |
|---|---|---|---|
Default | Файловый сервер общего назначения: групповые папки, домашние каталоги, перенаправленные папки, репозитории разработки | 3 дня | нет |
HyperV | Серверы виртуальных рабочих столов (VDI) | 3 дня | да |
Backup | Виртуализированные приложения резервного копирования | 0 дней | да |
Разница по «минимальному возрасту» важнее, чем кажется. С Default файл, созданный сегодня, начнёт оптимизироваться только через трое суток - и это правильно, потому что свежие файлы обычно ещё правят. А для тома, куда приезжают резервные копии, ждать трое суток бессмысленно, там нужен Backup с нулевым возрастом.
Ждать планового задания необязательно:
Start-DedupJob -Type Optimization -Volume D: -Memory 100 -Cores 100 -Priority High
Так задание заберёт максимум ресурсов и отработает быстро. На проде в рабочее время такое лучше не делать - для первого прогона возьмите выходные.
Дедупликация работает четырьмя заданиями, у каждого своё расписание:
| Задание | Что делает | Расписание по умолчанию |
|---|---|---|
| Optimization | Разбивает файлы на блоки, уникальные складывает в хранилище блоков, в файлах оставляет ссылки | каждый час |
| Garbage Collection | Убирает блоки, на которые больше никто не ссылается после правок и удалений | каждую субботу в 02:35 |
| Scrubbing | Ищет повреждения в хранилище блоков и чинит их по избыточности тома | каждую субботу в 03:35 |
| Unoptimization | Разворачивает всё обратно и выключает дедупликацию на томе | только вручную |
Хранилище блоков лежит в служебной папке System Volume Information. Руками туда лезть нельзя - это прямой путь к потере данных.
Отдельно про память. Microsoft просит минимум 300 МБ плюс 50 МБ на каждый терабайт логических данных, а комфортным считает 1 ГБ на терабайт. Для тома в 10 ТБ это 800 МБ минимума и 10 ГБ по-хорошему. Дедупликация отработает и на меньшем, просто задания будут ползти. Отсюда же ответ на расхожий совет «на файловом сервере память не важна»: на дедуплицированном томе она важна вполне.
Часть, про которую почти не пишут в инструкциях «включи и радуйся». А приходят потом именно с этим.
Windows Search перестаёт находить файлы. Дедупликация подменяет содержимое файла точкой повторного разбора, а служба поиска такие точки не индексирует. В результате дедуплицированные файлы просто выпадают из индекса, и поиск по шаре отдаёт неполные результаты. Пользователи придут не с жалобой «сломалась дедупликация», а с жалобой «поиск не находит договор» - и связать одно с другим получится не сразу.
Robocopy может испортить хранилище блоков. Microsoft прямо не рекомендует гонять Robocopy по дедуплицированным томам: часть ключей копирует папку System Volume Information или переносит файлы-ссылки без самих блоков, и на приёмнике получаются битые файлы. Копировать данные с такого тома надо инструментами, которые читают файлы через файловую систему и не лезут в служебные структуры.
Жёсткая квота в корне тома несовместима. Мягкая квота работает, жёсткая - нет: реальное свободное место и место по квоте расходятся, и задания оптимизации начинают падать. Квоты на вложенные папки работают штатно, только считают они логический размер файла, а не физический - экономия от дедупликации в квоту не попадёт.
Дедупликация внутри виртуальной машины на хосте с вложенной виртуализацией не поддерживается. Сценарий редкий, но если вы держите вложенные ВМ, включать дедупликацию на их диске нельзя.
На клиентской Windows её нет. Инструкции в интернете, как перенести двоичные файлы из Windows Server в Windows 10 или 11, существуют, но это неподдерживаемая самоделка, и в рабочей инфраструктуре ей не место.
| Версия | Что важно |
|---|---|
| Windows Server 2012 | Дедупликация появилась здесь |
| Windows Server 2012 R2 | Том до 10 ТБ как абсолютный максимум, при высокой скорости изменений - 1-2 ТБ. Поддержка закончилась 10 октября 2023 |
| Windows Server 2016 | Ограничение на размер тома снято, поддерживаются тома до 64 ТБ |
| Windows Server 2019 | Появилась поддержка ReFS, до этого только NTFS |
| Windows Server 2022 | Механизм тот же, что в 2019 |
| Windows Server 2025 | Классическая дедупликация на месте, плюс отдельный движок для ReFS со своими командлетами и сжатием на лету |
Для 2016 и 2019 Microsoft настоятельно советует поставить накопительное исправление KB4025334 - там собраны в том числе правки надёжности дедупликации.
В 2025-й завезли вторую, независимую реализацию - дедупликацию и сжатие для томов ReFS. Она устроена иначе: работает встроенно, умеет сжимать данные на лету алгоритмами вроде LZ4 и Zstd с выбором уровня, и метаданные хранит в своём формате. Управляется тоже отдельно - командлеты у неё собственные, Enable-ReFSDedup и Get-ReFSDedupStatus, а не привычные Enable-DedupVolume и Get-DedupStatus. Есть и управление через Windows Admin Center.
Целились в неё под тома с виртуальными машинами и резервными копиями. Аппетит к оперативной памяти у неё заметный, а публичной документации пока негусто: в Microsoft Q&A уже разбирают обращения, где задание дедупликации ReFS съедало всю память узла и подвешивало сервер. Так что на прод её стоит выкатывать после пилота, а всё, что написано в этой статье про Enable-DedupVolume, к ней не относится: это два разных механизма, которые просто называются похоже.
Расширенная поддержка закончилась 10 октября 2023 года. Программа расширенных обновлений безопасности тянет систему до 13 октября 2026 года - то есть примерно два месяца от сегодняшнего дня, - и для локальных установок она платная.
Дедупликация там работает и данные не потеряет. Но ограничения ощутимые: Microsoft называет 10 ТБ абсолютным потолком для дедуплицированного тома, при активной записи и 2 ТБ уже много, а ReFS не поддерживается вовсе. Если файловый сервер стоит на 2012 R2, планировать стоит переезд, а тонкая настройка дедупликации подождёт - заодно снимутся оба ограничения.
Дедупликация в Windows - постобработочная. Ей нужно окно, когда на сервере есть свободные ресурсы. Отсюда и границы.
Не стоит включать на томах с живыми базами данных и на всём, что читает данные вразнобой. Хранилище блоков раскидано по тому, и случайное чтение собирает файл из кусков в разных местах - на обычных дисках это заметная лишняя задержка. На SSD эффект слабее, потому что время доступа одинаково по всему носителю, но и там выигрыш стоит проверять на тесте, а не принимать на веру.
Вторая граница - круглосуточная нагрузка, у которой окна простоя нет вообще. Задания оптимизации будут либо отставать от скорости изменений, либо отбирать ресурсы у рабочей нагрузки. Особенно это касается гиперконвергентных узлов, где дедупликация в рабочее время начнёт конкурировать за память и процессор с виртуальными машинами.
Отдельная категория - нагрузки, которые Microsoft относит к «сначала померьте»: универсальные хосты Hyper-V, серверы SQL и серверы бизнес-приложений. Дедупликация на них не запрещена и целостность данных гарантируется, но производительность зависит от того, что именно приложение делает с диском. Тут DDPEval и пилот на тестовом наборе обязательны.
И совсем очевидное: если на томе нет дублей, дедупликация не создаст их из воздуха. Архив уникальных фотографий или уже сжатое видео дадут единицы процентов.
Плановое задание может тихо не отработать - из-за нехватки ресурсов, из-за ошибки, из-за переезда тома в кластере. Проверяют так:
Get-DedupStatus -Volume D:
В выводе смотрят на три пары полей: LastOptimizationResult и LastOptimizationTime, то же самое для сборки мусора и для проверки целостности. Ноль в результате - успех, время должно быть свежим. Если LastOptimizationTime отстало на неделю, оптимизация не успевает за скоростью изменений. Лечится это тремя способами по нарастанию: сдвинуть расписание в более свободные часы через Set-DedupSchedule, поднять заданию долю памяти и ядер, а если и это не помогает - признать, что нагрузка на томе для постобработочной дедупликации великовата.
Ещё два поля показывают эффект. SavingsRate - экономия по тому целиком, OptimizedFilesSavingsRate - только по тем файлам, которые попали под политику оптимизации. Пока часть файлов под политику не подпадает, второе число выше первого, и путать их не стоит: по OptimizedFilesSavingsRate картина получается красивее реальной.
Подробности по каждому заданию пишутся в журнал событий, ветка Applications and Services Logs\Windows\Deduplication\Operational. Текущие и стоящие в очереди задания видны через Get-DedupJob.
Сжатие NTFS работает с каждым файлом отдельно и сжимает его при записи. Дедупликация ищет повторы между файлами на всём томе - одинаковые куски у сотни похожих документов она схлопнет в один, а сжатие NTFS такого не умеет. Плюс дедупликация постобработочная: сначала файл ложится на диск как есть, потом его оптимизирует задание.
Да, заданием разворачивания:
Start-DedupJob -Type Unoptimization -Volume D:
Важная деталь: на томе должно хватить свободного места под развёрнутые данные. Если дедупликация сэкономила 40 %, а свободно сейчас 20 %, задание упадёт. Это стоит посчитать заранее, а не в момент, когда откатиться надо срочно.
Целостность Microsoft гарантирует, а задание Scrubbing еженедельно проверяет хранилище блоков и чинит повреждения за счёт избыточности тома. Блоки, на которые ссылается больше сотни файлов, дополнительно дублируются. Но дедупликация - это оптимизация места, а не резервное копирование: сервер под резервные копии всё равно нужен отдельный.
Включается она на уровне тома, поэтому все шары с этого тома получают её автоматически. Настройка самих шар - в разборе сетевой папки на Windows Server через SMB.
Она там устроена иначе: работает на лету, прямо при записи, и платит за это оперативной памятью, причём аппетиты у неё заметно выше. Что за файловая система и кому она подходит - в разборе ZFS. Общая механика дедупликации и сжатия, включая аппаратные реализации, разобрана в статье про технологии дедупликации в современных СХД.
По теме: файловый сервер: основные типы и принципы выбора оборудования · VDI-сервер: требования к железу и пошаговая настройка
Файловый сервер упёрся в диски?
Инженеры ITTELO подберут конфигурацию под ваш объём и профиль нагрузки - с запасом памяти под дедупликацию и дисками под реальный характер чтения. Соберём и протестируем под задачу перед отгрузкой, с гарантией и поддержкой после продажи. На рынке серверов 11+ лет.
файловый сервер для офиса · +7 (800) 551-80-12 · info@ittelo.ru