Сегодня я кратко расскажу вам как включить дедупликацию данных в клиентских ОС - 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 диск между несколькими ВМ. Но это совсем другая история.
UPDATE от 15.08.2024
Обновленные версии Dedup 10.0.26100.1300 и SVHDXflt 10.0.26100.1150 доступны для скачивания. Для Windows 11 24H2 amd64. Если кому-то актуально для ARM64, пишите мне в ПМ, сделаю, сам не использую ARM.