Дополнительные параметры дедупликации данных

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, версии 21H2 и 20H2

В этом документе описывается изменение дополнительных параметров дедупликации данных. Параметров по умолчанию должно быть достаточно для рекомендуемых рабочих нагрузок. Основная причина изменения этих параметров — это повышение эффективности дедупликации данных при выполнении других типов рабочих нагрузок.

Изменение расписания заданий дедупликации данных

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

Изменение расписания дедупликации данных

Для планирования заданий дедупликации данных используется планировщик заданий Windows. Кроме того, их можно просматривать и изменять по пути Microsoft\Windows\Дедупликация. Дедупликация данных включает несколько командлетов, упрощающих планирование.

  • Get-DedupScheduleпоказывает текущие запланированные задания.
  • New-DedupScheduleсоздает новое запланированное задание.
  • Set-DedupSchedule изменяет имеющееся запланированное задание.
  • Remove-DedupSchedule удаляет запланированное задание.

Обеспечить выполнение заданий в нерабочее время — наиболее распространенная причина для изменения при выполнении заданий дедупликации данных. В следующем пошаговом примере показано, как изменить расписание дедупликации данных для солнечного сценария дня: гиперконвергентный узел Hyper-V, который неактивен в выходные дни и после 7:00 вечера в недельные ночи. Чтобы изменить расписание, выполните следующие командлеты PowerShell с правами администратора.

  1. Отключите запланированные почасовые задания оптимизации.

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Удалите текущие запланированные задания сборки мусора и проверки целостности.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. Создайте ежедневное задание оптимизации с высоким приоритетом, выполняющееся в 19:00, а также предоставьте доступ ко всем ресурсам ЦП и памяти в системе.

     New-DedupSchedule -Name "NightlyOptimization" -Type Optimization -DurationHours 11 -Memory 100 -Cores 100 -Priority High -Days @(1,2,3,4,5) -Start (Get-Date "2016-08-08 19:00:00")
    

    Примечание.

    Часть с датой значения System.Datetime, указываемая в параметре -Start, несущественна (пока она указана в прошлом), но часть с временем указывает на время начала задания.

  4. Создайте еженедельное задание сборки мусора с высоким приоритетом, выполняющееся по субботам начиная с 7:00, а также предоставьте доступ ко всем ресурсам ЦП и памяти в системе.

     New-DedupSchedule -Name "WeeklyGarbageCollection" -Type GarbageCollection -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(6) -Start (Get-Date "2016-08-13 07:00:00")
    
  5. Создайте еженедельное задание проверки целостности с высоким приоритетом, выполняющееся по воскресеньям начиная с 7:00, а также предоставьте доступ ко всем ресурсам ЦП и памяти в системе.

     New-DedupSchedule -Name "WeeklyIntegrityScrubbing" -Type Scrubbing -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(0) -Start (Get-Date "2016-08-14 07:00:00")
    

Доступные параметры на уровне задания

Для новых или запланированных заданий дедупликации данных можно выбрать следующие параметры:

Наименование параметра Определение Допустимые значения Почему необходимо задать это значение?
Тип Тип задания, который нужно запланировать
  • Optimization
  • Сборка мусора
  • Очистка
Это значение необходимо, так как это тип задания, который требуется запланировать. После планирования задачи это значение нельзя изменить.
Приоритет Системный приоритет запланированного задания
  • Высокая
  • Обычная
  • Низкая
Это значение позволяет определить распределение времени ЦП в системе. Если установить значение Высокий, будет использоваться больше времени ЦП, а если Низкий — меньше.
Дни Дни, на которые запланировано выполнение задания Массив целых чисел от 0 до 6, определяющих дни недели:
  • 0 — воскресенье;
  • 1 — понедельник;
  • 2 — вторник;
  • 3 — среда;
  • 4 — четверг;
  • 5 — пятница;
  • 6 — суббота.
Запланированные задачи нужно выполнять по крайней мере раз в день.
Ядра Процентное выражение ядер в системе, необходимых для выполнения задания. Целые числа от 0 до 100 (указывают значение в процентах) Чтобы контролировать уровень влияния задания на вычислительные ресурсы в системе.
DurationHours Максимально допустимая продолжительность выполнения задания (в часах) Положительные целые числа Чтобы предотвратить выполнение задания во время выполнения рабочей нагрузки.
Включен Возможность выполнения задания. Истина/ложь Чтобы отключить задание, не удаляя его
Полностью Планирование задания полной сборки мусора Параметр (True или False) По умолчанию каждое четвертое задание представляет собой задание полной сборки мусора. С помощью этого параметра можно запланировать более частое выполнение полной сборки мусора.
InputOutputThrottle Указывает объем регулирования входящих и исходящих данных для задания. Целые числа от 0 до 100 (указывают значение в процентах) Регулирование обеспечивает отсутствие влияния заданий на другие интенсивные операции ввода-вывода.
Память Процентное выражение памяти в системе, необходимой для выполнения задания. Целые числа от 0 до 100 (указывают значение в процентах) Чтобы контролировать уровень влияния задания на ресурсы памяти в системе.
Имя. Имя запланированного задания Строка Задание должно иметь уникальное персональное имя.
ReadOnly Указывает на обработку и сообщение о найденных повреждениях в задании проверки, а не выполнение действий по восстановлению. Параметр (True или False) Необходимо вручную восстановить файлы, расположенные на поврежденных разделах диска.
Начать Указывает необходимое время запуска задания System.DateTime Часть с датой значения System.Datetime, указываемая в параметре Start, несущественна (пока она указана в прошлом), но часть с временем указывает на время начала задания.
StopWhenSystemBusy Указывает, должна ли прекратиться дедупликация данных в случае занятости системы Параметр (True или False) Этот параметр дает возможность управлять поведением дедупликации данных. Это особенно важно, если необходимо выполнить дедупликацию данных при выполнении рабочей нагрузки.

Изменение параметров дедупликации данных на уровне тома

Переключение параметров тома

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

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

  1. Просмотрите текущие параметры тома для общего тома кластера 1.

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. Включите OptimizePartialFiles в общем томе кластера 1 для применения политики MinimumFileAge к разделам файла, а не ко всему файлу. Таким образом большая часть файла оптимизируется, несмотря на то, что разделы файла регулярно изменяются.

     Set-DedupVolume -Volume C:\ClusterStorage\Volume1 -OptimizePartialFiles
    

Доступные параметры на уровне тома

Имя настройки Определение Допустимые значения Почему необходимо изменить это значение?
ChunkRedundancyThreshold Количество ссылок на блок до его копирования в раздел активной зоны хранилища блоков. Раздел активной зоны полезен, так как "активные" блоки, на которые ссылаются, содержат несколько путей для ускорения доступа. Положительные целые числа Основная причина изменения этого количества — это повышение скорости сохранения для томов с высокой дупликацией. Обычно значение по умолчанию (100) является рекомендуемым, и в его изменении нет необходимости.
ExcludeFileType Типы файлов, исключаемые из оптимизации. Массив расширений файлов Некоторые типы файлов, особенно мультимедиа или файлы, которые уже сжаты, не выигрывают от возможности оптимизации. Этот параметр позволяет настроить исключаемые типы.
ExcludeFolder Указывает пути к папкам, которые не учитываются при оптимизации. Массив путей к папкам Если необходимо повысить производительность или не оптимизировать содержимое в определенных путях, эти пути на томе можно исключить из оптимизации.
InputOutputScale Указывает уровень параллелизации операций ввода-вывода (очереди ввода-вывода) для дедупликации данных, используемый на томе во время задания постобработки. Положительные целые числа в диапазоне от 1 до 36 Основной причиной для изменения этого значения является уменьшение влияния на производительность высокой рабочей нагрузки ввода-вывода за счет ограничения числа очередей ввода-вывода, которое разрешено использовать на томе при дедупликации данных. Обратите внимание, что если изменить этот параметр по умолчанию, задания постобработки дедупликации данных могут выполняться медленно.
MinimumFileAgeDays Число дней после создания файла, прежде чем он будет считаться доступным для оптимизации. Положительные целые числа (включая ноль) Типы использования По умолчанию и Hyper-V задают значение 3, чтобы максимально повысить производительность в горячих или недавно созданных файлах. Может потребоваться изменить это значение, если необходимо повысить активность дедупликации данных или если дополнительные задержки, связанные с дедупликацией, не важны.
MinimumFileSize Минимальный размер файла, чтобы он мог считаться доступным для оптимизации. Положительные целые числа (байты) больше 32 КБ Основная причина изменения этого значения — исключение небольших файлов, преимущества оптимизации для которых ограничены (экономия времени вычислений незначительна).
NoCompress Указывает, следует ли сжимать блоки перед их помещением в хранилище блоков. True/False Некоторые типы файлов, особенно файлы мультимедиа и уже сжатые типы файлов, могут не сжиматься. Этот параметр позволяет отключить сжатие для всех файлов на томе. Это идеальный сценарий при оптимизации набора данных, содержащего большое количество уже сжатых файлов.
NoCompressionFileType Типы файлов, блоки которых не нужно сжимать перед их помещением в хранилище блоков. Массив расширений файлов Некоторые типы файлов, особенно файлы мультимедиа и уже сжатые типы файлов, могут не сжиматься. Этот параметр позволяет выключить сжатие для этих файлов, обеспечивая экономию ресурсов ЦП.
OptimizeInUseFiles При включении этого параметра файлы, содержащие активные дескрипторы, будут считаться доступными для оптимизации. Истина/ложь Включите этот параметр, если при выполнении рабочей нагрузки файлы остаются открытыми в течение длительного времени. Когда этот параметр не включен, файл никогда не будет оптимизирован, если рабочая нагрузка содержит открытый дескриптор, который лишь время от времени добавляет данные в конце.
OptimizePartialFiles При включении этого параметра значение MinimumFileAge применяется к сегментам файла, а не ко всему файлу. Истина/ложь Включите этот параметр, если рабочая нагрузка работает с большими, часто измененными файлами, в которых большая часть содержимого остается без изменений. Если этот параметр не включен, эти файлы никогда не будут оптимизированы, так как они изменяются, несмотря на то, что большая часть содержимого файла готова к оптимизации.
Проверка При включении этого параметра, если хэш соответствует блоку, уже имеющемуся в хранилище блоков, блоки сравниваются по байтам для обеспечения их идентичности. Истина/ложь Эта функция проверки целостности гарантирует, что алгоритм хэширования, сравнивающий блоки данных, не совершит ошибку, сравнив два разных блока данных с одинаковым хэшем. На практике такой сценарий очень маловероятен. При включении функции проверки нагрузка задания оптимизации значительно повышается.

Изменение параметров дедупликации данных на уровне системы

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

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

  • Если дедупликация данных выполняется в кластере:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
      Set-ItemProperty -Path HKLM:\CLUSTER\Dedup -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    
  • Если дедупликация данных не выполняется в кластере:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    

Доступные параметры уровня системы

Имя настройки Определение Допустимые значения Почему это значение следует изменить?
WlmMemoryOverPercentThreshold Этот параметр позволяет заданиям использовать больше памяти по сравнению с доступным объемом, оцененным заданиями дедупликации данных. Например, значение 300 означает, что для отмены задания понадобится в три раза больше назначенного объема памяти. Положительные целые числа (значение 300 означает 300 % или 3 раза) При наличии другого задания, которое остановится, если дедупликация данных использует больше ресурсов памяти
DeepGCInterval Этот параметр настраивает интервал, через который обычное задание сборки мусора становится заданием полной сборки мусора. Значение n означает, что каждое n-ое задание было заданием полной сборки мусора. Обратите внимание: полная сборка мусора всегда отключена (независимо от значения реестра) для томов с архивным типом использования. Start-DedupJob -Type GarbageCollection -Full может использоваться, если в томе резервного копирования необходим полный сбор мусора. Целые числа (–1 означает "отключено") См. этот вопрос и ответ.

Часто задаваемые вопросы

Я изменил параметр дедупликации данных, и теперь задания медленно или не завершаются, или производительность рабочей нагрузки снизилась. Почему? Эти параметры позволяют управлять запуском дедупликации данных. Используйте их ответственно и наблюдайте за производительностью.

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

Какова разница между полной и обычной сборкой мусора? Существует два типа сборки мусора:

  • В обычной сборке мусора используется статистический алгоритм для поиска больших блоков без ссылок, соответствующих определенным критериям (малое использование памяти и низкий процент операций ввода-вывода в секунду). Обычная сборка мусора сжимает контейнер хранилища блоков только в том случае, если минимальный процент блоков не перенаправлен. Этот тип сборки мусора выполняется намного быстрее и использует меньше ресурсов, чем полная сборка мусора. В соответствии с расписанием по умолчанию задания обычной сборки мусора выполняются раз в неделю.
  • Полная сборка мусора более эффективно справляется с поиском блоков без ссылок и освобождает больше места на диске. Полная сборка мусора сжимает каждый контейнер, даже если на отдельный блок в контейнере отсутствует ссылка. Она также освобождает место на диске, которое могло использоваться при аварийном завершении или сбое питания во время выполнения задания оптимизации. Задания полной сборки мусора приведут к восстановлению 100 % доступного места на дедуплицированном томе. Но для этого требуется больше времени и системных ресурсов по сравнению с заданием обычной сборки мусора. Как правило, задание полной сборки мусора находит и освобождает до 5 % больше данных, на которые нет ссылок, в отличие от задания обычной сборки мусора. В соответствии с расписанием по умолчанию полная сборка мусора выполняется каждый четвертый раз при планировании задания полной сборки мусора.

Почему я хочу отключить полную сборку мусора?

  • Сборка мусора может негативно повлиять на теневые копии времени жизни тома и на размер добавочной архивации. В результате производительность рабочих нагрузок с высокой скоростью обновления данных или интенсивными операциями ввода-вывода может снизиться при выполнении заданий полной сборки мусора.
  • Задание полной сборки мусора можно выполнить вручную из PowerShell для устранения утечки в случае аварийного завершения системы.