Windows дедупликация очистка мусора

Обновлено: 30.06.2024

В этом документе описывается, как работает дедупликация данных.

Как работает дедупликация данных

Дедупликация данных для Windows Server разрабатывалась на основе двух важнейших принципов.

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

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

После включения дедупликации данных для тома она выполняет в фоновом режиме следующие задачи:

  • выявляет повторяющиеся фрагменты в файлах тома;
  • автоматически перемещает эти фрагменты (блоки) со специальными указателями, которые называются точками повторного анализа и указывают на уникальную копию блока.

Этот процесс выполняется в четыре этапа:

  1. Проверка файловой системы на наличие файлов, отвечающих политике оптимизации.
  2. разбиение файлов на блоки переменного размера;
  3. выявление уникальных блоков;
  4. помещение блоков в хранилище блоков со сжатием, если применимо;
  5. Замена исходного потока данных в оптимизированных файлах на точки повторного анализа, указывающие на хранилище блоков.

При считывании оптимизированных файлов файловая система отправляет файлы с точкой повторного анализа в фильтр дедупликации данных файловой системы (Dedup.sys). Фильтр перенаправляет операцию чтения к соответствующим блокам, которые образуют поток этого файла в хранилище блоков. Изменения фрагментов дедуплицированного файла записываются на диск в неоптимизированном виде. Их при следующем запуске обрабатывает задание оптимизации.

Типы использования

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

  • Общие групповые папки
  • рабочие папки
  • Перенаправление папок
  • Общие ресурсы для разработки программного обеспечения
  • Фоновая оптимизация
  • Политика оптимизации по умолчанию:
    • минимальный возраст файла — 3 дня;
    • оптимизация используемых файлов — нет;
    • оптимизация неполных файлов — нет.
    • Фоновая оптимизация
    • Политика оптимизации по умолчанию:
      • минимальный возраст файла — 3 дня;
      • оптимизация используемых файлов — да;
      • оптимизация неполных файлов — да.
      • Приоритетная оптимизация
      • Политика оптимизации по умолчанию:
        • минимальный возраст файла — 0 дней;
        • оптимизация используемых файлов — да;
        • оптимизация неполных файлов — нет.

        Задания

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

        Имя задания Описание заданий Расписание по умолчанию
        Optimization Задание оптимизации выполняет дедупликацию путем фрагментирования данных на томе согласно параметрам политики тома (необязательно) сжатие этих фрагментов и сохранение блоков в хранилище блоков. Процесс оптимизации, используемый дедупликацией данных, подробно описан в разделе Как работает дедупликация данных? Каждый час
        Сборка мусора Задание сборки мусора выполняет освобождение места на диске, удаляя ставшие ненужными блоки, на которые не осталось ссылок после изменения или удаления файлов. Каждую субботу в 02:35
        Проверка целостности Задание проверки целостности обнаруживает повреждения в хранилище блоков, связанные со сбоями диска или поврежденными секторами. По мере возможности дедупликация данных автоматически применяет доступные для тома функции (например, зеркала или контроль четности для тома дисковых пространств), чтобы восстановить поврежденные данные. Кроме того, дедупликация данных сохраняет в отдельной "активной зоне" резервные копии популярных блоков, на которые существует более 100 ссылок. Каждую субботу в 03:35
        Отмена оптимизации Задание отмены оптимизации, особое задание, которое может выполняться только вручную, отменяет всю оптимизацию, выполненную службой дедупликации, и отключает дедупликацию данных для тома. Только по запросу

        Глоссарий дедупликации данных

        Термин Определение
        Chunk Блоком называется фрагмент файла, отобранный алгоритмом дедупликации данных, который с высокой долей вероятности будет повторяться в других схожих файлах.
        Хранилище блоков Хранилище блоков — это упорядоченный набор файлов в папке "System Volume Information", который дедупликация данных использует исключительно для хранения блоков.
        Dedup Сокращенная форма англоязычного названия дедупликации данных, которая часто используется в PowerShell, интерфейсах API и компонентах Windows Server, а также в сообществе Windows Server.
        Метаданные файла Каждый файл содержит метаданные, которые описывают важные свойства файла, не связанные напрямую с основным содержимым файла. Например: дата создания файла, дата последнего чтения, создатель файла и т. д.
        Файловый поток Так называется основное содержимое файла. Именно эту часть файла оптимизирует дедупликация данных.
        Файловая система Файловой системой называют специализированное программное обеспечение и структуру хранящихся на диске данных, которые используются операционной системой для хранения файлов на любых носителях. Дедупликация данных поддерживается только на томах с файловой системой NTFS.
        Фильтр файловой системы Так называется подключаемый модуль, который изменяет стандартное поведение файловой системы. Чтобы сохранить семантику доступа, дедупликация данных использует фильтр файловой системы (Dedup.sys), который перенаправляет запросы на чтение оптимизированного содержимого незаметным для пользователя или приложения образом.
        Optimization Файл считается оптимизированным с точки зрения дедупликации данных (дедуплицированным), если он разделен на уникальные блоки, которые перенесены в хранилище блоков.
        Политика оптимизации Политика оптимизации определяет, для каких файлов следует применять дедупликацию данных. Например, политика может исключать из оптимизации недавно созданные или открытые файлы, все файлы в определенном расположении в томе или файлы определенного типа.
        Точка повторного анализа Точка повторной обработки — это специальный тег, уведомляющий файловую систему о необходимости передачи ввода-вывода в указанный фильтр файловой системы. В тех файлах, для которых выполнена оптимизация, дедупликация данных заменяет файловый поток точкой повторного анализа, что позволяет полностью сохранять семантику доступа к этому файлу.
        Тома Том — это используемое Windows обозначение для логического диска хранения данных, который может включать несколько физических устройств хранения, расположенных на одном или нескольких серверах. Дедупликация включается на уровне отдельного тома.
        Рабочая нагрузка Рабочей нагрузкой называется приложение, выполняемое на Windows Server. Пример рабочей нагрузки — файловый сервер общего назначения, сервер Hyper-V и SQL Server.

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

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

        Чем отличается дедупликация данных от других средств оптимизации? Есть несколько важных различий между дедупликацией данных и другими распространенными решениями для оптимизации хранения.

        Чем отличается дедупликация данных от хранилища единственных копий? Хранилище единственных копий (SIS) является предшественником технологии дедупликации данных и впервые было представлено в выпуске Windows Storage Server 2008 R2. Для оптимизации тома хранилище единственных копий выявляло в нем полностью идентичные файлы и заменяло их логическими ссылками на одну копию такого файла, размещенную в общем хранилище SIS. В отличие от хранилища единственных копий, дедупликация данных способна уменьшить пространство, занимаемое файлами, которые не полностью идентичны, но имеют некоторые одинаковые элементы, а также файлами, в которых встречается много повторяющихся элементов. Хранилище единственных копий считается устаревшим начиная с выпуска Windows Server 2012 R2, а в Windows Server 2016 его полностью заменила дедупликация данных.

        Чем отличается дедупликация данных от сжатия NTFS? Сжатие NTFS используется файловой системой NTFS на уровне тома. Эта необязательная функция NTFS оптимизирует каждый файл по отдельности, сжимая его во время записи. В отличие от сжатия NTFS, дедупликация данных использует для экономии места одновременно все файлы на томе. Это гораздо эффективнее, чем сжатие NTFS, ведь файл может одновременно иметь как внутреннее дублирование данных (которое устраняется сжатием NTFS), так и сходство с другими файлами в томе (которое не устраняется сжатием NTFS). Кроме того, дедупликация данных использует модель постобработки. Это означает, что новые или измененные файлы записываются на диск в неоптимизированном виде, и лишь затем дедупликация данных оптимизирует их.

        Чем отличается дедупликация данных от форматов архивации файлов, таких как ZIP, RAR, 7Z, CAB и т. д.? Форматы ZIP, RAR, 7Z, CAB и другие выполняют сжатие для определенного набора файлов. Как и в случае с дедупликацией данных, оптимизируются повторяющиеся фрагменты внутри файлов и в разных файлах. Однако вам необходимо выбрать файлы, которые должны быть включены в архив. Семантика доступа также отличается. Чтобы получить доступ к определенному файлу в архиве, необходимо открыть архив, выбрать файл, а затем распаковать его для использования. Дедупликация данных работает незаметно для пользователей и администраторов, не требуя никаких ручных операций. Кроме того, дедупликация данных сохраняет семантику доступа — оптимизированные файлы выглядят для пользователя точно так же, как и раньше.

        Можно ли изменить параметры дедупликации данных для выбранного типа использования? Да. Хотя дедупликация данных обеспечивает рациональные значения по умолчанию для рекомендуемых рабочих нагрузок, вам может потребоваться настроить параметры для наиболее эффективного использования хранилища. И не забывайте, что в некоторых случаях определенная дополнительная настройка нужна для того, чтобы дедупликация не мешала рабочей нагрузке.

        Можно ли вручную запускать задания дедупликации данных? Да, все задания дедупликации данных можно запускать вручную. Это удобно, если запланированное задание не было выполнено из-за недостатка системных ресурсов или ошибки. Кроме того, есть специальное задание отмены оптимизации, которое запускается только вручную.

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

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

        Каждое запланированное задание дедупликации данных можно запустить вручную следующими командлетами PowerShell:

          : Запуск нового задания дедупликации данных. : Остановка задания дедупликации данных, которое уже выполняется (или удаляется из очереди). : Показывает все активные и поставленные в очередь задания дедупликации данных

        При запуске задания вручную доступны все параметры, доступные при планировании задания дедупликации данных, за исключением параметров планирования. Например, чтобы запустить вручную задание оптимизации с высоким приоритетом и максимальным использованием ЦП и памяти, выполните следующую команду PowerShell с правами администратора:

        Наблюдение за дедупликацией данных

        Успешное выполнение задания

        Так как дедупликация данных использует модель постобработки, важно, чтобы задания дедупликации данных выполнялись успешно. Простой способ проверить состояние последнего задания — использовать командлет PowerShell Get-DedupStatus . Периодически проверяйте следующие поля:

        • Для задания оптимизации проверьте (0 = Успех), LastOptimizationResultMessage , и LastOptimizationTime (должны быть указаны последние).
        • Для задания сбора мусора проверьте (0 = Успех), LastGarbageCollectionResultMessage , и LastGarbageCollectionTime (должны быть указаны последние).
        • Для задания очистки целостности проверьте (0 = Успех), LastScrubbingResultMessage , и LastScrubbingTime (должны быть указаны последние).

        Дополнительные сведения об успешном выполнении и невыполнении заданий можно найти в средстве просмотра событий Windows в разделе \Applications and Services Logs\Windows\Deduplication\Operational .

        Скорости оптимизации

        Одним из индикаторов сбоя при выполнении задания оптимизации является снижение скорости оптимизации. Оно может означать, что задания оптимизации не могут своевременно обрабатывать все изменения или обновления. Частоту оптимизации можно проверить с помощью Get-DedupStatus командлета PowerShell.

        Get-DedupStatus имеет два поля, относящиеся к скорости оптимизации: OptimizedFilesSavingsRate и SavingsRate . Для отслеживания важны оба этих поля, но каждое из них имеет уникальное значение.

        • OptimizedFilesSavingsRate применяется только к файлам, которые находятся в политике для оптимизации ( space used by optimized files after optimization / logical size of optimized files ).
        • SavingsRate применяется ко всему тому ( space used by optimized files after optimization / total logical size of the optimization ).

        Отключение дедупликации данных

        Чтобы отключить дедупликацию данных, запустите задание отмены оптимизации. Чтобы отменить оптимизацию тома, выполните следующую команду:

        Если том не имеет достаточно места для хранения неоптимизированных данных, задание отмены оптимизации завершится сбоем.

        Вопросы и ответы

        Существует ли какой-либо доступный пакет управления System Center Operations Manager для отслеживания дедупликации данных? Да. Дедупликацию данных можно отслеживать при помощи пакета управления System Center для File Server. дополнительные сведения см. в документе руководство по пакету управления System Center для файлового сервера 2012 R2 .

        Описание

        файлы до дедупликации

        После дедупликации данные из File1 и File2 удаляются и заменяются заглушками, указывающими на соответствующие блоки данных, хранящиеся в общем хранилище блоков. Так как блоки A, B и C одинаковы для обоих файлов, они хранятся в единственной копии, что снижает объем дискового пространства, необходимый для хранения обоих файлов.

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

        файлы после дедупликации

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

        • Оптимизированные файлы (файлы точек повторного анализа) которые содержат указатели на соответствующие блоки данных в хранилище блоков, необходимые для построения исходного файла;
        • Хранилище блоков (данные оптимизированных файлов);
        • Неоптимизированные файлы (т. е. пропущенные файлы, например файлы состояния системы, зашифрованные файлы, файлы с дополнительными атрибутами или файлы размером менее 32 КБ);

        Планирование

        Дедупликация может значительно снизить потребляемое дисковое пространство (на 50-90% и более), но только при правильном планировании. Поэтому при выборе объекта для дедупликации следует учитывать некоторые моменты.

        Тип данных

        Эффективность дедупликации очень сильно зависит от типа данных. Так мультимедийные файлы (фотографии, музыка, видео) практически не содержат повторяющихся данных, поэтому их дедупликация не даст большой экономии. В то же время файлы виртуальных машин (VHD) замечательно дедуплицируются и на них экономия может составлять до 95 %. По этой причине перед включением дедупликации рекомендуется выполнить предварительную оценку данных на предмет дедуплицируемости 🙂

        Частота изменения файлов

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

        Загруженность сервера

        Во время дедупликации выполняется чтение, обработка и запись большого объема данных. Этот процесс потребляет ресурсы сервера, что необходимо учитывать при планировании развертывания. Как правило, сервера имеют периоды высокой и низкой активности. Большую часть дедупликации можно выполнить, когда ресурсы доступны. Постоянно высоконагруженные сервера не рекомендуется использовать для дедупликации.

        Не рекомендуется выполнять дедупликацию файлов, которые открыты, постоянно изменяются в течение продолжительного периода времени либо имеют высокие требования ввода/вывода, например файлы работающих виртуальных машин, динамических баз данных SQL или активных сеансов VDI. Дело в том, что при дедупликации не выполняется обработка файлов, открытых постоянно в монопольном режиме для записи. Это значит, что дедупликация не будет проведена до тех пор, пока файл не будет закрыт. Только тогда задание оптимизации выполнит попытку обработать файл, отвечающий выбранным параметрам политики дедупликации.

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

        Приведу рекомендации Microsoft. Для дедупликации:

        Не рекомендуется

        • Сервера Hyper-V;
        • VHD-файлы запущенных виртуальных машин;
        • Службы WSUS;
        • Сервера SQL и Exchange;
        • Любые файлы, размер которых равен или больше 1 Тб.

        Рекомендуется:

        • Файловые ресурсы общего доступа (общие папки, профили и домашние папки пользователей, прочие файлопомойки);
        • Развертывание программных продуктов (бинарники, образа дисков и обновления ПО);
        • Библиотеки виртуализации (VHD-диски);
        • Тома архивов SQL и Exchange.

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

        Для определения ожидаемой экономии в результате включения дедупликации можно использовать средство оценки дедупликации Ddpeval.exe. После установки компонента дедупликации утилита Ddpeval.exe автоматически устанавливается в папку \Windows\System32\. Кстати, ее можно просто скопировать из любой установки Windows Server 2012 и запустить в системах Windows 7, Windows 8 или Windows Server 2008 R2.

        Синтаксис у программы проще некуда, пишем Ddpeval.exe и указываем путь. В качестве пути можно указать локальный диск, папку или сетевую шару:

        Ddpeval.exe E:
        Ddpeval E:\Test\
        Ddpeval.exe \\Server\Share

        применение утилиты ddpeval.exe

        Системные требования

        Дедупликация предъявляет к системе некоторые требования.

        Тома

        • Тома, предназначенные для дедупликации не должны быть системными или загрузочными. Дедупликация не поддерживается для томов операционной системы;
        • Тома могут быть разбиты под MBR или GPT и отформатированы в NTFS. Новая отказоустойчивая файловая система ReFS не поддерживается;
        • Тома могут находиться на локальных дисках либо в общедоступном хранилище (SAS, iSCSI или Fibre Channel);
        • Windows должна видеть тома как несъемные диски. Сетевые диски и съемные носители не поддерживаются;
        • Нельзя включать дедупликацию для общих томов кластера (Claster Shared Volume, CSV). Если дедуплицированный том преобразовать в CSV, то доступ к данным останется, но задания дедупликации не смогут отработать;

        Аппаратные ресурсы

        • Оборудование серверов должно отвечать минимальным требованиям Windows Server 2012. Функция дедупликации разработана для поддержки минимальных конфигураций, таких как система с одним процессором, 4 ГБ ОЗУ и одним жестким диском SATA;
        • Сервер должен иметь одно процессорное ядро и 350 МБ свободной памяти для выполнения задания дедупликации на одном томе, при этом будет обрабатываться около 1,5 ТБ данных в день. Если планируется поддерживать дедупликацию в нескольких томах на одном сервере, необходимо соответствующим образом увеличить производительность системы, чтобы гарантировать, что она сможет обрабатывать данные.
        • Функция дедупликации поддерживает одновременную обработку до 90 томов, однако при дедупликации одновременно может обрабатываться один том на физическое процессорное ядро плюс один. Применение технологии Hyper-Threading не влияет на этот процесс, поскольку для обработки тома можно использовать только физические ядра. К примеру сервер с 16 процессорными ядрами и 90 томами будет обрабатывать по 17 томов одновременно, пока не обработает все 90 томов;
        • К виртуальным серверам применяются те же правила, что и к физическому оборудованию в отношении ресурсов сервера.

        Общие требования

        • Наличие свободного места на диске. При отсутствии дискового пространства на дедуплицированном томе некоторые приложения не смогут получить доступ к данным и будут завершены с ошибкой. Необходимо сохранять, по крайней мере, один гигабайт свободного места на дедуплицированном томе;
        • Жесткие квоты. При использовании FSRM (File System Resource Managet) не поддерживается установка жестких квот на объем тома. Когда для тома установлены жесткие квоты, фактический объем свободного места на томе и ограниченное квотами пространство отличается, что может привести к неудаче процесса дедупликации. Все другие FSRM-квоты, в том числе мягкие квоты на объем тома и квоты на подпапки, будут нормально работать при дедупликации;
        • Файлы с дополнительными атрибутами, зашифрованные файлы, файлы размером меньше 32 КБ и файлы точек повторного анализа при дедупликации не обрабатываются.

        Установка и настройка

        Для включения дедупликации можно воспользоваться диспетчером сервера (Server Manager). Запускаем его и открываем пункт «Add roles and features».

        открываем Server Manager

        В ролях сервера отмечаем пункт «Data Deduplication», соглашаемся на установку необходимых компонентов и жмем Install.

        устанавливаем компонент Data Deduplication

        Затем все в том же Server Manager идем в «File and Storage Services» -> «Volumes» и выбираем диск, который планируется оптимизировать. Напоминаю, что дедупликацию можно включить для логического диска, или тома (Volume). Кликаем на выбраном томе и в контекстном меню выбираем пункт «Configure Data Deduplication».

        включаем дедупликацию для тома

        В открывшемся окне включаем дедупликацию для выбранного тома. Также можно произвести некоторые настройки:

        • Указать количество дней, прошедших с последнего изменения файла, после которых файл можно оптимизировать. Как я уже говорил, для дедупликации лучше подходят редко изменяемые файлы, поэтому период по умолчанию составляет 5 дней. Для часто изменяющихся файлов период можно уменьшить до 1-2 дней, а если задать значение 0, дедупликация будет выполняться для всех файлов вне зависимости от их срока существования.
        • Исключить из процесса дедупликации отдельные файлы (по расширениям) или целые папки. Кстати, Microsoft почему то не рекомендует этого делать.

        основные настройки дедупликации

        Нажав на кнопку «Set Deduplication Shedule» мы попадаем в окно настройки расписания запуска оптимизации. По умолчанию файлы обрабатываются внутри активного тома один раз в час в режиме фоновой (background) оптимизации. Дополнительно можем включить производительную (throughput) оптимизацию и настроить для нее основное и дополнительное расписание. Например, можно запланировать производительную оптимизацию на часы минимальной активности сервера.

        настройка расписания дедупликации

        Из консоли PowerShel можно сделать все то же самое (и даже больше) гораздо быстрее. Установка фичи:

        Install-WindowsFeature -Name FS-Data-Deduplication

        Включение дедупликации c дефолтными настройками на выбраном томе:

        Enable-DedupVolume -Volume E:

        включение дедупликации через PowerShell

        Для настройки есть командлет Set-DedupVolume . С его помощью можно настроить гораздо больше параметров, чем из графического интерфейса:

        Для примера выставим минимальный возраст файлов 2 дня, минимальный размер 64КБ и отключим сжатие на диске E командой:

        Set-DedupVolume -Volume E: -MinimumFileAgeDays 2 -MinimumFileSize 65536
        -NoCompress $true

        настройка дедупликации из PowerShell

        Задания дедупликации

        задания оптимизации

        задание очистки данных

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

        1) Дедупликация создает резервные копии популярных блоков. Популярность определяется количеством ссылок на них в области, которую называют активной зоной. Если рабочая копия повреждена, средство дедупликации будет использовать резервную;
        2) При использовании дисков в зеркальной конфигурации дедупликация может использовать зеркальный образ избыточного блока для обслуживания операций ввода-вывода и устранения повреждения;
        3) Если обрабатывается файл с поврежденным блоком, то поврежденный блок исключается и для устранения повреждения используется новый входящий блок.

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

        Start-DedupJob E: –Type Scrubbing

        Чтобы проверить целостность всех дедуплицированных данных в томе, используйте параметр -full . Этот параметр, называемый также глубокой очисткой, задает очистку всего набора дедуплицированных данных и поиск всех повреждений, приводящих к отказам в доступе к данным.

        задание сбора мусора

        Операция сбора мусора также выполняется еженедельно. Она удаляет блоки, на которые нет ссылок, и сжимает контейнеры, содержащие более 5 % данных, на которые нет ссылок. Во время каждой десятой сборки мусора используется параметр /Full, который запускает задание по освобождению всего доступного пространства и максимально сжимает весь контейнер. Процесс сбора мусора связан с интенсивной обработкой данных, поэтому его надо либо запланировать на нерабочие часы, либо запускать вручную и отслеживать нагрузку. Сделать это можно командой:

        Start-DedupJob E: –Type GarbageCollection

        А если добавить ключ –full , то задание будет сжимать все контейнеры максимально возможным образом.

        Задания дедупликации можно настроить в Server Manager (только оптимизацию), с помощью командлета Set-DedupShedule или в планировщике заданий, в разделе Microsoft\Windows\Deduplication. Кстати, дедупликация поддерживает только планирование недельных заданий. Если требуется создать расписание на любой другой временной период, то используйте планировщик заданий Windows. Имейте в виду, что вы не сможете просматривать расписания пользовательских заданий, созданных или измененных в планировщике заданий, с помощью командлета Get-DedupSchedule .

        задания дедупликации в Task Sheduler

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

        Мониторинг результатов

        Основные результаты дедупликации для конкретного тома можно увидеть, открыв его свойства в Server Manager. Здесь показано общее количество сэкономленного пространства и процент оптимизации. Как видите, в моем случае сжатие 76%, а экономия составила почти 32ГБ. Очень неплохо.

        свойства тома в Server Manager

        Несколько больше информации выдаст команда Get-DedupVolume E: | fl

        свойства дедуплицированного тома в PowerShell

        Посмотреть, когда и с каким результатом прошла последняя оптимизация можно командой:

        Get-DedupStatus -Volume E: | fl

        статус дедупликации в PowerShell

        Ну и подробные данные (размер хранилища блоков, средний размер блока и т.п.) покажет командлет Get-DedupMetadata .

        метаданные дедупликации в PowerShell

        Продолжаем разговор о дедупликации данных в Windows Server 2016, начатый в предыдущей статье. Сегодня речь пойдет о тонких настройках, особенностях работы дедупликации и проблемах, с которыми можно столкнуться в процессе ее использования.

        Задания дедупликации

        Дедупликация состоит из трех этапов, которые выполняются в виде запланированных заданий:

        Список всех запланированных заданий можно вывести командой Get-DedupSchedule.

        список заданий дедупликации

        Задания сборки мусора и очистки дополнительно разделяются на обычные и полные (full):

        Полная сборка мусора

        При обычной сборке мусора контейнер хранилища блоков сжимается только в том случае, если существует минимальный процент блоков без ссылок. При полной сборке мусора контейнер сжимается даже в том случае, если на отдельный блок в контейнере отсутствует ссылка. Также при полной сборке освобождается место, которое могло быть использовано при нештатном завершении работы дедупликации (напр. при сбое питания). Обычный тип сборки мусора работает быстрее и потребляет меньше ресурсов, чем полный, но освобождает меньше места. Полная сборка мусора освобождает до 5% больше места, чем обычная, но при этом работает дольше и потребляет большее количество системных ресурсов. По умолчанию каждая 4-я процедура сборки мусора является полной.

        Полная очистка

        Обычная очистка проверяет и исправляет только целостность критических метаданных и данных, для которых ранее были зафиксированы проблемы. При полной очистке проверке подвергаются все без исключения данные на томе. Этот тип очистки нет необходимости запускать часто, поэтому по умолчанию он не используется. Запустить его можно вручную, с помощью командлета Start-DedupJob с ключом Full.

        Задания оптимизации также подразделяются на три типа:

        Фоновая оптимизация (Background optimization)

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

        фоновая оптимизация

        Приоритетная оптимизация (Priority optimization)

        Также запускается раз в час, но работает с нормальным приоритетом и потребляет большее количество системных ресурсов (до 50% памяти и до 100% процессора). В файлах большого размера при фрагментации количество фрагментов может приближаться к пороговому значению для одного файла. При оптимизации происходит объединение фрагментов. Включение приоритетной оптимизации добавляет дополнительные процедуры обработки, что позволяет уменьшить уровень фрагментации. Данный тип оптимизации Microsoft рекомендует для виртуальных серверов резервного копирования.

        приоритетная оптимизация

        Производительная оптимизация (Throughput optimization)

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

        производительная оптимизация

        Настройка заданий дедупликации

        Ну уровне заданий находится довольно много важных параметров. Параметры эти задаются либо при создании задания командлетом New-DedupSchedule, либо при его редактировании командлетом Set-DedupSchedule. Давайте рассмотрим некоторые из этих параметров:

        Для наглядности несколько примеров. Сначала создадим новое запланированное задание:

        New-DedupSchedule -Name ThroughputOptimization -Type Optimization

        задание оптимизации с дефолтными параметрами

        Обозвать задание можно как угодно, но тут есть интересный момент. Для заданий производительной оптимизации существуют два предопределенных имени: ThroughputOptimization и ThroughputOptimization-2. Эти имена даются заданиям в том случае, если их настраивать их оснастки Server Manager. И если при создании нового задания оптимизации из PowerShell указать одно из этих имен, то задание будет отображаться и в графической оснастке.

        это же задание в графической оснастке

        Стандартное расписание может подходить не всем, поэтому изменим его:

        Set-DedupSchedule -Name ThroughputOptimization -Days @(1,2,3,4,5) -DurationHours 24 -Start ″8:00 PM″

        Дни недели можно указывать по именам через запятую (Sunday, Monday) либо по номерам, в виде массива чисел от 0 (воскресенье) до 6 (суббота). Значение @(1,2,3,4,5) означает запуск задания с понедельника по пятницу.

        Параметр Start представляет из себя значение в формате System.DateTime. Указывать его можно также по разному, напр. 8:00 PM означает старт в 8 часов вечера начиная с текущего дня. Можно указать и дату полностью, напр. Get-Date ″12/8/2016 8:00 PM″. При этом сама дата не особо важна (если она указана в прошлом), а вот часть с временем как раз указывает на время запуска задания. Также при указании даты надо учитывать внимание на формат времени, использующийся на сервере.

        Ну и в завершение можно подкорректировать параметры производительности для задания, скажем для уменьшения влияния дедупликации на работу сервера:

        Set-DedupSchedule -Name ThroughputOptimization -Memory 25 -Cores 75 -Priority Low -InputOutputThrottle 20 -StopWhenSystemBusy $true

        В результате получаем

        редактирование задания

        Все задания дедупликации можно увидеть в планировщике (Task scheduler), в разделе Microsoft\Windows\Deduplication.

        задания дедупликации в планировщике

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

        настройки приоритетной оптимизации

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

        ежемесячное расписание дедупликации

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

        ошибка при доступе к заданию

        Настройка дедупликации для тома

        Некоторые параметры настраиваются на уровне тома. Просмотреть их можно с помощью командлета Get-DedupVolume. Например:

        Get-DedupVolume D: | fl

        свойства тома

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

        Изменить параметры дедупликации для тома можно с помощью командлета Set-DedupVolume. Для примера уменьшим минимальный возраст файла до нуля и отключим частичную дедупликацию файлов для тома:

        Set-DedupVolume -Volume D: -MinimumFileAgeDays 0 -OptimizePartialFiles:$false

        настройка параметров дедупликации для тома

        Типы дедупликации

        Теперь плавно переходим к выбору типа дедупликации. Тип дедупликации представляет собой готовый набор настроек, оптимизированный под определенную рабочую нагрузку. Это позволяет не заморачиваться с подбором параметров, а просто выбрать подходящий тип дедупликации. В Windows Server 2016 на выбор предлагается 3 типа:

        Default

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

        HyperV

        Этот тип применяется для дедупликации виртуальных машин Hyper-V. Для него кроме фоновой включена приоритетная оптимизация и используются следующие настройки:

        Backup

        Тип дедупликации, специально предназначенный для виртуализованных серверов резервного копирования, таких как Microsoft Data Protection Manager. Для этого типа также по умолчанию включена фоновая и приоритетная оптимизация, настройки следующие:

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

        Настройки операционной системы

        Некоторые настройки можно изменить на уровне операционной системы, с помощью реестра. Настройки дедупликации можно найти в разделе HKLM\System\CurrentControlSet\Services\ddpsvc\Settings для одиночного сервера или в HKLM\Cluster\Dedup для кластера. Эти параметры применяются ко всем без исключения томам и заданиям дедупликации, выполняющимся в системе.

        К примеру, для настройки интервала запуска задания полной сборки мусора можно добавить параметр DWORD с именем DeepGCInterval такой командой:

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

        Значение этого параметра задает интервал запуска полной сборки мусора, т.е. каждое N-е задание является заданием полной сборки мусора. По умолчанию полная сборка мусора запускается каждое четвертое задание, но иногда это требуется изменить, например увеличить этот интервал. А если задать параметру значение 0, то полная сборка мусора будет совсем отключена.

        Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name WlmMemoryOverPercentThreshold -Type Dword -Value 300

        Значение параметра означает, насколько задание дедупликации может увеличить установленный по памяти лимит. Например, значение 300 означает, что что можно превысить лимит в 3 раза (на 300%).

        При очень высоком уровне сжатия (saving rate>80%) задания оптимизации могут отрабатывать медленнее из за того, что требуется выделять больше памяти для обработки сжатия. Для корректировки объема памяти можно добавить параметр EstimatedCompressionRate такой командой:

        Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name EstimatedCompressionRate -Value 5

        Значение параметра устанавливается в диапазоне от 5 до 10, в зависимости от уровня сжатия. Для сверх-высокого уровня сжатия (90%-95%) рекомендуется значение 10.

        Настройки файловой системы

        В некоторых случаях для корректной работы дедупликации может потребоваться специальным образом подготовить файловую систему. Так при использовании больших (1ТБ и более) файлов рекомендуется задать размер кластера 64кб, а также увеличить размер сегмента записи файла (File Record Segment, FRS) до 4кб.

        fsutil fsinfo ntfsinfo D:

        свойства тома

        Для изменения этих параметров потребуется переформатировать том. Сделать это можно из командной строки:

        format D: /A:64K /L /Q

        Либо с помощью PowerShell:

        Format-Volume -Partition D: -FileSystem NTFS -AllocationUnitSize 64KB -UseLargeFRS -Force

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

        Мониторинг и проверка состояния

        Примечание. Оба командлета выводят одинаковый набор данных, но между ними есть одно отличие. Get-DedupStatus показывает закешированные данные, тогда как Update-DedupStatus перед выводом производит сканирование тома на предмет изменений.

        Кроме того, они выводят данные о времени запуска и результате выполнения заданий дедупликации. В случае проблем с дедупликацией эта информация поможет найти причину. Так в нашем примере можно увидеть, что последнее задание сборки мусора не смогло отработать до конца и было отменено.

        состояние дедупликации

        Более подробную информацию можно найти в системном журнале, в разделе «Application and Services Log\Microsoft\Windows\Deduplication». Как видите, в нашем случае задание было отменено вручную.

        журнал событий дедупликации

        Ну и для расширенного анализа можно использовать данные, выдаваемые командлетом Get-DedupMetadata. Он возвращает подробные данные о состоянии хранилища дедуплицированных данных:

        Так в нашем примере общий размер хранилища составляет около 33.5Гб. Дедупликации подверглись 501758 блоков, средний размер блока составляет примерно 70кб.

        метаданные дедупликации

        Заключение

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

        Нагрузка

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

        Расписание

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

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

        На этом все. Для тех, кто не знаком с дедупликацией, я рекомендую посмотреть вот эту статью, где описан принцип ее работы и основные понятия. Статья написана еще для Windows Server 2012, но основные моменты остались неизменными до сих пор. Также на технете есть ряд статей по дедупликации в Windows Server 2016.

        Читайте также: