Включаем дедупликацию в Windows 10

  • Автор:

win10-deduplication-000.pngТехнология дедупликации давно известна пользователям серверных редакций Windows и широко используется системными администраторами, позволяя эффективно использовать дисковое пространство. В клиентских системах данная возможность отсутствует, так как домашние сценарии не предусматривают хранение больших массивов данных, однако может быть легко добавлена, что, несомненно, окажется полезным для специалистов и компьютерных энтузиастов.

Мы уже рассказывали, как включить дедупликацию в Windows 8, что позволило многим, и нам в том числе, сэкономить заметные средства, отложив расширение дискового пространства за счет более эффективного его использования.

Windows 10 в момент выпуска такой возможности не имела, что легко объясняется: пакеты для дедупликации энтузиасты берут из серверной версии ОС, разработка которой производится с некоторым опозданием от клиентской. Это же следует учитывать и при обновлении ОС на новую версию, так на дату выпуска пакеты для дедупликации могут быть еще не готовы.

Следует помнить, что в отличии от предыдущих версий под названием Windows 10 скрывается целый ряд операционных систем, для каждой из которых нужны свои пакеты для поддержи дедупликации. На текущий момент существуют следующие стабильные выпуски Windows 10:

ВерсияСборкаДата выпускаОкончание поддержкиДедупликация
1507 (RTM) 10240 29.07.2015 09.05.2017 НЕТ
1511 10586 12.11.2015 10.10.2017 ДА
1607 14393 02.08.2016 10.04.2018 ДА
1703 15063 05.04.2017 09.10.2018 ДА
1709 16299 17.10.2017 09.04.2019 ДА
1803 17134 30.04.2018 12.10.2019 ДА
1809 17763 13.11.2018 10.11.2020 ДА
1903 18362 21.05.2019 08.12.2020 ДА
1909 18363 12.11.2019 11.05.2021 ДА
2004 19041 27.05.2020 14.12.2021 ДА

Здесь мы говорим об основной основном канале поддержки SAC (Semi-Annual Channel, Полугодовой канал) и не касаемся LTSC-версий, которые не предназначены для широкого использования.

Первая сборка пакетов для дедупликации в Windows 10 была собрана из пакетов для Windows Server 2012 и предназначалась для сборки 10514, затем стали доступны пакеты на базе Windows Server 2016 (14393) и 2019 (17763). В настоящий момент Windows Server с возможностями рабочего стола переведен в LTSC-канал (не путать с одноименным каналом Windows 10) и новые версии выпускаются раз в два три года. В полугодовом канале обслуживания (SAC) находится просто Windows Server без номера года, который не имеет возможностей рабочего стола и предназначен в первую очередь для быстрого внедрения инноваций в области контейнеров и микрослужб.

Таким образом все промежуточные версии Windows 10, не имеющие LTSC-аналога серверной системы получают пакеты дедупликации из полугодового канала. Чем это может быть чревато? Прежде всего стабильностью, так как SAC-версии Windows сервер не предполагают использования в системах с возможностями рабочего стола и на текущий момент известно об определенных проблемах с пакетами для версии 20.04, которые на одной системе могут работать, а на другой - не работать.

Отдельно следует уточнить насчет инсайдерской версии. В ней дедупликация работать не будет. Поэтому выбирайте то, что вам нужнее.

Кроме того, многих интересует вопрос: что будет с дедуплицированными томами при обновлении с Windows 8 или между версиями Windows 10. Отвечаем: ничего страшного не произойдет, но ваши данные окажутся недоступны до тех пор, пока вы не установите пакеты для текущей сборки ОС.

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

Так как основное обсуждение дедупликации в Windows 10 и размещение пакетов происходят на зарубежном форуме, а многие ссылки ведут на файлообменники мы перепаковали содержимое пакетов и разместили их на собственном сервере.

Windows 10 1511 (10586)

Windows 10 1607 (14393)

Windows 10 1703 (15063)

Windows 10 1709 (16299)

Windows 10 1803 (17134)

Windows 10 1809 (17763)

Windows 10 1903/1909 (18362)

Windows 10 2004 (19041)

Каждый архив содержит основные и языковые пакеты, мы оставили только en-US и ru-RU, устанавливать следует какой-то один.

Для установки откройте командную строку от имени Администратора, перейдите в каталог с распакованными пакетами и выполните приведенные ниже команды, в данном примере мы будем устанавливать пакеты для 2004 русской версии:

dism /online /add-package /packagepath:Microsoft-Windows-FileServer-ServerCore-Package~31bf3856ad364e35~amd64~~10.0.19041.1.cab /packagepath:Microsoft-Windows-FileServer-ServerCore-Package~31bf3856ad364e35~amd64~ru-RU~10.0.19041.1.cab
dism /online /add-package /packagepath:Microsoft-Windows-Dedup-Package~31bf3856ad364e35~amd64~~10.0.19041.1.cab /packagepath:Microsoft-Windows-Dedup-Package~31bf3856ad364e35~amd64~ru-RU~10.0.19041.1.cab
dism /online /enable-feature /featurename:Dedup-Core /all

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

win10-deduplication-001-1.png

Сразу после установки пакетов дедуплицированные данные снова станут доступны, перезагрузка не требуется. Для управления дедупликацией в Windows 10 нет графических инструментов, поэтому воспользуемся PowerShell.

Если вы впервые включили дедупликацию, то следует импортировать модуль PowerShell, для этого запустите консоль PowerShell от имени администратора выполните следующие команды:

Set-ExecutionPolicy ByPass -Force
Import-Module Deduplication

Теперь, например, можно проверить наличие дедуплицированных томов и их состояние:

Get-DedupVolume

win10-deduplication-002.png

Но не будем забегать вперед и начнем сначала. Для включения дедупликации воспользуйтесь командой:

Enable-DedupVolume -Volume E:

Запущенная без параметров данная команда установит тип использования тома "по умолчанию", который подходит для общего применения, однако тип использования можно указывать явно, допустимы следующие значения:

  • HyperV - тома для хранения виртуальных машин Hyper-V.
  • Backup -том оптимизирован для виртуализированных серверов резервного копирования.
  • Default - том общего назначения. Это значение по умолчанию.

Например, данная команда включит виртуализацию с типом использования Hyper-V или сменит его, если дедупликация для данного тома уже включена:

Enable-DedupVolume -Volume E: -UsageType HyperV

win10-deduplication-003.png

Обратите внимание, что данная команда только включает дедупликацию, но не производит ее, ваши данные будут оставаться неоптимизированными до тех пор, пока не будет выполнено задание оптимизации (вручную или по расписанию).

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

 Set-DedupVolume -Volume E: -MinimumFileAgeDays 0

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

Set-DedupVolume -Volume E: -MinimumFileSize 536870912

Опции командлета Set-DedupVolume можно сочетать, т.е. сразу установить и минимальный размер, и минимальное время. Еще одна полезная опция - исключения, например, следующая команда исключит из процесса дедупликации папку E:\Folder1:

Set-DedupVolume -Volume E: -ExcludeFolder E:\Folder1

Путь следует указывать полностью, несколько значений разделяются запятыми, если путь содержит пробелы, то его следует взять в кавычки. Повторный запуск команды перезаписывает параметры. Важно понимать этот момент, так как если вы позже захотите добавить в исключения еще и E:\Folder2, то команда должна выглядеть так:

Set-DedupVolume -Volume E: -ExcludeFolder E:\Folder1, E:\Folder2

В противном случае вы Folder2 в список исключений добавите, а Folder1 удалите.

Аналогичным образом можно задать исключения по типам файлов, для этого укажите нужные расширения (без точки) через запятую, например, исключим временные файлы и сигнальные lck-файлы:

Set-DedupVolume -Volume E:  -ExcludeFileType tmp, lck

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

Start-DedupJob -Volume E: -Type Optimization

Проконтролировать ход выполнения задания можно командой:

Get-DedupJob

win10-deduplication-004.pngТаким образом можно выполнять не только оптимизацию, данный командлет поддерживает следующие виды задач:

  • Optimization -запуск процесса дедупликации данных.
  • Garbage Collection - применяется для очистки всех неиспользуемых или удаленных данных.
  • Scrubbing - проверка целостности дедуплицированных данных.
  • Unoptimization - запуск процесса отмены дедупликации данных.

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

Стоит ли овчинка выделки? Однозначно стоит, ниже приведен результат дедупликации нашего хранилища виртуальных машин:

win10-deduplication-005.pngЕсли бы не данная технология, то нам давно бы пришлось топать за новыми дисками вдвое большего объема.

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

win10-deduplication-006.pngЕсли вам потребуется отключить дедупликацию тома, то сначала необходимо выполнить обратный оптимизации процесс, который вернет все данные на свои места. Если свободного места не хватит, то процесс будет приостановлен.

Start-DedupJob -Volume E: -Type Unoptimization

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

Disable-DedupVolume -Volume E:

Как видим, благодаря энтузиастам, мы вполне успешно можем использовать все преимущества дедупликации в среде настольных ОС, а некоторая сложность установки и управления с лихвой компенсируется экономией дискового пространства. Да и возможность эта востребована в основном специалистами или энтузиастами, для которых работа в командной строке не является чем-то экзотическим.