Сегодня я кратко расскажу вам как включить дедупликацию данных в клиентских ОС - Windows 10 и Windows 11, добавив функционал из Windows Server, причем не какие-то сторонние бинарники, а оригинальные, подписанные файлы Microsoft, которые к тому же будут обновляться через Windows Update.

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

Начать знакомство рекомендую с базовой теории Введение в дедупликацию данных / Хабр (habr.com) от компании Veeam, затем почитать о том, что такое дедупликация Microsoft - Обзор и настройка средств дедупликации в Windows Server 2012 / Хабр (habr.com) - статья моего бывшего коллеги по Microsoft Георгия говорит о том, как настраивается дедупликация NTFS в Windows Server 2012. В последующих изданиях Windows Server 2012R2, 2016, 2019, 2022 и 2025 функционал развивался, появилась поддержка ReFS, стало возможно (неочевидным способом) дедуплицировать системный том, расширились компоненты управления, - но для конечного пользователя все остается там же. Установили одним кликом, включили для диска, забыли. В заключение подготовительной информации - тем кого действительно интересует кроссплатформенные решения и их сравнения, предложу ознакомиться со статьей Илии Карина - Dedup Windows vs Linux, MS снова “удивит”? / Хабр (habr.com) - его не должны заподозрить в рекламе Microsoft, его сравнение подходов, и результат меня самого удивил. У меня на такую большую исследовательскую работу сил и возможностей нет, - почитайте. И имейте в виду, что если вы используете последний Windows 11, то и компоненты дедупликации в нем будут последние, от Windows Server 2025, то есть с еще более впечатляющим результатом.

Итак, дедупликация данных исторически появилась у Microsoft еще во времена Windows 2000 для задач инсталляции ОС по сети, когда вы храните массу одинаковых файлов. Компонента называлась Single Instance Storage и для пользовательских файлов была неприменима. С выходом Windows Storage Server 2003/2008 функционал стал доступен в OEM поставках со специальным оборудованием. В коробочные Windows Server 2003/2003R2/2008/2008R2 функционал не входил, а Storage Server особого распространения не получил.

Ситуация изменилась с выходом Windows Server 2012, - теперь в любой серверной ОС дедупликация стала частью роли файлового сервера. Функционал неплохо развивался, не только в крупных LTSC сборках сервера, но и в выходящих раз в полгода Semi-annual изданиях получал новые возможности.

Я, не буду в данной статье глубоко копать в архитектуру пакетов из которых собирается ОС Windows, но думаю, что не открою вам тайны, сказав что клиентские ОС от серверных отличаются по сути незначительно. Да, там есть много чего "серверного" или наоборот, в них нет много чего "клиентского" (пример Bluetooth или IrDA), но в целом они растут от одного корня. И в те счастливые годы, когда сборки Windows Server и клиентской Windows основаны на одном ядре, мы можем легко заимствовать часть функционала от сервера к клиенту, или наоборот.

О сборках и версиях. Версией у Microsoft сейчас принято называть четырехзначное число, состоящее из двух последних цифр года и двух цифр месяца. Например, версии Windows 10 May 2019 Update была 1903, а номер сборки начинался с цифр 10.0.18362 (или коротко 18362), ей в пару шел Windows Server 1903 (он же 19H1). Простым обновленим они обновлялись до Windows 10 November 2019 Update и Windows Server 1909 (19H2). Далее с появлением Windows 10 May 2020 Update (и Windows Server версии 2004 или 20H1) и до конца поддержки Windows 10 воцарилось царство сборок 10.0.1904х (19041, 19042, 19043, 19044 и 19045). Простыми обновлениями любая из этих ОС обновлялась до последней. И если вы применяли к клиентской ОС какие-либо компоненты от серверной, - те обновлялись вместе с клиентской ОС (о чем будет еще немного позднее).

С выходом Windows 11 в октябре 2021 (версия 21H2 сборка 10.0.22000) ситуация несколько испортилась, - версий Windows Server на этом ядре не было. Равно как и не было их на базе ядер 22621/22631 для Windows 11 2022/2023 Update.

Сейчас, к счастью, снова наступает время длительной сборки 10.0.26100, на базе которой основаны Windows 11 24H2 и Windows Server 2025, и уже сейчас понятно, что следующее издание Windows 11 в 2025 году будет лишь добавочным обновлением, - то есть совместимым с файлами Windows Server 2025, который тоже в рамках Annual релизов получит обновления Server Core.

Итак, хватит лирики, давайте приступим к практике. Я не буду глубоко рассказывать как именно создаются пакеты для переноски между ОС, - если будет интерес, пишите в комментариях, возможно, это стоит отдельной статьи. Но я дам ссылку на утилиту SxSv1, которая позволяет из любой установленной или подмонтированной (WIM) ОС экспортировать компоненты. Ниже я даю примеры на пакеты, которые я этой утилитой экспортировал из ознакомительных образов Windows Server 1903/19H1, 2004/20H1 и 2025/24H1. Вы можете легко сделать то же самое, - тут нет никакого пиратства. Получите рабочее, но неподдерживаемое решение, - что с ним делать судить вам самим. Да, оно будет получать обновления функционала на Windows 11 24H1 через Windows Update, если такие обновления будут входить в кумулятивное обновление, - которое у Windows 11 и Windows Server 2025 общее.

Собственно ссылки. Файлы дедупликации для Windows 10 версий 1903 и 1909 (сборок 10.0.18362 и 10.0.18363). Файлы дедупликации Windows 10 2004/21H2/22H2 (сборок 19041, 19042, 19043, 19044 и 19045). Файлы дедупликации Windows 11 24H2 (сборки 26100/26120).

Загрузили архив, распаковали, запустили CMD файл от админстратора, перезагрузились, - пользуйтесь. У вас в компонентах появилась искомая дедупликация данных.

При помощи утилиты ddpeval вы можете оценить выигрыш от применения дедупликации данных:

В моем случае все реальные диски давно дедуплицированы, и я делаю демонстрацию на примере VHDX диска одной из ВМ. Там вижу что из 15.57ГБ при включении дедупликации могу освободить 6.19ГБ. Включается дедупликация просто:

Я не ввожу необязательные параметры, всерьез на результат они не влияют. После некоторого времени (оставьте на ночь или запускайте скрипты оптимизации руками) вы сможете посмотреть результат:

Более половины всех данных дедуплицировано
Более половины всех данных дедуплицировано

В моем случае на диске, объемом 1 ТБ реально занято 380ГБ, а еще 486ГБ оптимизировано дедупликацией. На этом диске у меня лежат виртуальные машины. На диске с бэкапами домашнего компа статистика еще более впечатляющая.

И вот еще с домашнего ноутбука на Windows 10

Тоже недурные показатели
Тоже недурные показатели

Кому полезен этот функционал в клиентской ОС? Кто выигрывает от него и может не бояться потери данных? Проговорю отдельно важные моменты:

·         Дедуплицированный диск без проблем работает на любой современной системе (Windows 10/11), где функционала дедупликации не установлено. В основу клиентской ОС входит компонент Microsoft-Windows-Dedup-ChunkLibrary, умеющий обработать метаданные дедупликации. Даже переносной дедуплицированный диск, или диск принесенный с другой рабочей станции будет у вас нормально читаться на системе без дедупликации. И вы сможете писать на него без потери данных. Новые записи всегда будут писаться в новые блоки, не используя дедупликацию. Потом, вернув этот диск на систему с дедупликацией, ОС автоматом все оптимизирует.

·         Дедупликация может быть неудобна тем, кто использует не LTSC издания Windows, а обновляется регулярно (каждый год новое ядро) - не факт что для следующего ядра будет аналогичная версия Windows Server, с которой можно экспортировать роль. Обновив (upgrade, а не update) ОС с дедупликацией на новую, вы функционал дедупликации потеряете, - данные все останутся доступны, но вот даже отключить дедупликацию вам в обновленной ОС будет нечем.

·         Очень важный момент - не пользуйтесь сторонними утилитами по изменению размеров тома для дедуплицированных дисков. Потеряете данные бесповоротно.

На этом я закончу рассказ, ибо это по сути лишь совет энтузиастам - не бойтесь пробовать новый функционал, - в том числе от серверных ОС на клиентских. Как поклонник виртуализации, я, например, кроме дедупликации еще переношу SVHDXflt драйвер в Windows 11, позволяющий делать общий VHDS диск между несколькими ВМ. Но это совсем другая история.

Комментарии (30)


  1. Lirix_vladimir
    16.06.2024 13:17

    "Да, там есть много чего "серверного" или наоборот, в них нет много чего "клиентского" (пример Bluetooth или IrDA)"

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


    1. akibkalo Автор
      16.06.2024 13:17
      +1

      Спасибо, не обратил внимания

      Когда-то долго и упорно мучался перенося ее с Win8 в Server 2008, чтобы работал пульт в MediaCenter

      Сам MediaCenter кстати тоже еще со времен XP Media Center Edition можно на сервер перетянуть тоже. С родным пультом-клавиатурой от МС удобно.


  1. dartraiden
    16.06.2024 13:17

    В 24H2 через скрипт не сработало, роль не появилась. Появилась, только когда в консоли повторил все команды вручную.


    1. akibkalo Автор
      16.06.2024 13:17

      Скрипт запускали как Администратор?


      1. Javian
        16.06.2024 13:17

        Тоже от Админа "что-то пошло не так". Запустил Windows Power Shell (Администратор) - перешел в папку и запустил скрипт.


        1. akibkalo Автор
          16.06.2024 13:17

          Это CMD файл, его запускают от админа в Command Prompt.

          Через PowerShell пакеты инсталлируются другим способом.

          Доделаю.


          1. Javian
            16.06.2024 13:17

            Из PS встало, а от Администратора что-то не так.

            ddpeval не торопливый однако - полдня жужжал.


      1. dartraiden
        16.06.2024 13:17

        Воспроизвёл на чистой системе.

        Если щелкнуть пкм по cmd-файлу и выполнить от админа, то все команды dism /online /add-package заканчиваются примерно так:

        Cистема DISM
        Версия: 10.0.26100.1

        Версия образа: 10.0.26100.863

        Ошибка при попытке открыть - "Microsoft-Windows-FileServer-Core-Package-amd64-10.0.26100.1.cab" Ошибка: 0x80070002
        Ошибка при попытке открыть - "C:\Windows\System32\Microsoft-Windows-FileServer-Core-Package-amd64-10.0.26100.1.cab" Ошибка: 0x80070002

        Ошибка: 2

        PowerShell тут явно не при чем, т.к. открывается обычное окно cmd

        А вот если вызвать окно ком.строки от админа, перейти в каталог и запустить файл руками, то всё отрабатывает корректно.


        1. dartraiden
          16.06.2024 13:17
          +2

          Помогло добавление в начало @cd /d "%~dp0"


          1. akibkalo Автор
            16.06.2024 13:17

            Спасибо за хинт!


        1. Javian
          16.06.2024 13:17

          Off запускать cmd - это на несколько кликов больше, чем щелкнуть правой кнопкой по Пуску и выбрать пункт PS от Администратора.


  1. nsmcan
    16.06.2024 13:17

    Дедуплицируете бэкапы? Ну-ну


    1. akibkalo Автор
      16.06.2024 13:17
      +1

      Если мы говорим о домашней среде, где два или более ПК, и копии (несколько) одного хранятся на другом, то да, безусловно, дедуплицирую бэкапы!

      Речь не о корпоративном сегменте, там нет Windows 10/11 как сервера бэкапа (а может и вообще Windows нет).

      Для дома - самые распространенные сценарии:

      • Виртуальные машины

      • Хранилище бэкапов

      • DevBox или его аналог (много билдов/сборок разрабатываемого ПО)

      • Станция видеомонтожа, где один и те же куски десятки раз используются

      Фича на мой взгляд для энтузиаста полезная.


  1. Alexx_B
    16.06.2024 13:17
    +2

    Дедуплицированный диск без проблем работает на любой современной системе (Windows 10/11), где функционала дедупликации не установлено

    Вот уж не уверен. Как раз недавно был опыт: домашний htpc на 10 22h2, включена дедупликация на томе с раздачами.

    Вследствие определенных вещей пришлось переустановить Винду (inplace upgrade), снова на 10 22h2. Естественно, серверные компоненты это вытерло

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

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


    1. akibkalo Автор
      16.06.2024 13:17

      Гм, нужно посмотреть Windows 10.

      В 11 оно встроено.

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


  1. spaceatmoon
    16.06.2024 13:17

    Это программный аналог btrfs в Linux?


    1. StoIzSta
      16.06.2024 13:17

      нет, в БТРФС тоже она есть, но они разные


    1. akibkalo Автор
      16.06.2024 13:17

      Нет, - для btrfs есть своя дедупликация (но это не сам btrfs), - на сравнение в подходах и результатах я давал ссылку от авторитетного автора выше, повторюсь -  Dedup Windows vs Linux, MS снова “удивит”? / Хабр (habr.com) 


  1. Cristo1
    16.06.2024 13:17

    С выходом Windows 11 в октябре 2021 (версия 21H2 сборка 10.0.22000) ситуация несколько испортилась, - версий Windows Server на этом ядре не было.

    Пакет создать нельзя было, но установить Dedup еще как можно было(Привет и пока Dism.exe)! И все работало на Win11 с dedup от Windows Server старой версии. Да, есть минус, dedup больше не обновится.

    Дедуплицированный диск без проблем работает на любой современной системе (Windows 10/11), где функционала дедупликации не установлено

    Как минимум на Win10 не будет читаться без фильтра (dedup.sys)

    Очень важный момент - не пользуйтесь сторонними утилитами по изменению размеров тома для дедуплицированных дисков. Потеряете данные бесповоротно.

    Проблем быть не должно. Если же быть более точнее, то это не диск дедуплицирован, а файлы дедуплицированы на диске. Принцип работы как у симлинков, только чуть сложнее(Смешаем NTFS Reparse Points c DB в System Volume Information и получим Dedup) Но, действительно, лучшее так не делать.

    Кому полезен этот функционал в клиентской ОС?

    Я бы сказал, а какие проблемы мы можем получить. А их много. Все программы которые работают с симлинками могут начать чудить(SVN 1.12 и ранние версии, CMAKE со своим copy, PyCharm и т.д), Docker не работает с такими файлами без дополнительных плясок с бубном! И другие проблемы.

    А еще, можно очень быстро копировать такие файлы, но увы не средствами майкроософт(10 файлов по 200 Гб меньше секунды). Очень удобно копировать VHD-шки) Но как это сделать, уже другая тема.


    1. akibkalo Автор
      16.06.2024 13:17

      Да, если нет "родной" версии сервера, можно собрать кастомную.
      Я могу если кому-то нужно сделать для 22000 или 22621/22631, делается правкой update.mum, но это уже не такой чистый способ.

      По поводу работы дедуплицированного диска в Win11/WS202x на Win10 - если фича (от сервера 2004/20H1 для 1904х) установлена то все читается и пишется, версионной разницы не замечено.

      Да и для серверных ОС нет от МС криков, типа не трогайте тома дедуплицированные WS202x на WS201х, - значит не было таких кейсов.

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


  1. Doomland
    16.06.2024 13:17
    +1

    Спасибо за интересную статью. А было бы интересно включить дедубликацию на системном диске и посмотреть что будет. Есть ли такая возможность? Штатными методами не разрешает.


    1. dartraiden
      16.06.2024 13:17

      Не советую, потенциально огребёте кучу проблем - из комментария выше " Все программы которые работают с симлинками могут начать чудить"

      Эта штука хороша для файлопомоек, которые не следует устраивать на системном диске. Например, на диске, где хранится 10 терабайт торрент-раздач, выигрыш составил 8.5%


      1. dartraiden
        16.06.2024 13:17

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


        1. akibkalo Автор
          16.06.2024 13:17

          Какого сервиса?

          OneDrive синхронизирует дедуплицированный NTFS на ура. А вот с ReFS не работает и без дедупликации.

          Обновляйте клиента, а не пеняйте в ошибке МС )


          1. dartraiden
            16.06.2024 13:17

            Яндекс.Диск. Обновлять некуда, свежайший.

            А вот Dropbox и Облако mail.ru синхронизируют нормально.


            1. akibkalo Автор
              16.06.2024 13:17

              Нужно открыть сервисный тикет в Яндексе, думаю.

              Только, не с клиентской ОС в неподдерживаемой конфигурации, а с серверной, - они свой диск в терминальных решениях же поддерживают? А МС поддерживает теперь дедупликацию как general purpose solution


  1. nickston
    16.06.2024 13:17

    в вин 8 включил как то этот функционал.

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

    а потом спустя, пол года стали странные "глюки" с файлами происходить.

    подозрение сразу пало на дедуплекацию, и тут проблема:

    что бы ее отменить нужно много места - сильно больше чем было изначально.

    те процесс восстановления файлов был долгий и ни разу не радостный


    1. akibkalo Автор
      16.06.2024 13:17

      Я активно ее использовал, начиная с 8.1 (от 2012R2 файлы). Глюков не вижу..

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

      То есть, имею диск на котором 1ТБ данных дедуплицированы в 300ГБ, - чтобы отключить дедупликацию, мне требуется ЕЩЕ 1ТБ, а не 700ГБ, как можно надеяться. + порядка 5% на дедуп стор.


      1. nickston
        16.06.2024 13:17

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


        1. dartraiden
          16.06.2024 13:17

          Есть безопасный вариант: поиск одинаковых файлов и замена копий хардлинками

          https://codeberg.org/jbruchon/jdupes

          Но эффективность будет, конечно, заметно ниже, т.к. работает на уровне файлов.