Контроль четности с зеркальным ускорением

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

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

Diagram depicting the mirror accelerated parity volume.

Общие сведения

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

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

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

Поворот данных на зеркало ускорения четности

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

Чтобы повернуть данные между зеркало и четностью, ReFS логически делит том на области 64 МиБ, которые являются единицей вращения. На рисунке ниже показан объем зеркало ускорения четности, разделенный на регионы.

Diagram depicting mirror accelerated parity volume with storage containers.

ReFS начинает поворот полных регионов от зеркало до четности после того, как уровень зеркало достиг указанного уровня емкости. Вместо немедленного перемещения данных из зеркало в четность ReFS ожидает и сохраняет данные в зеркало до тех пор, пока это возможно, что позволяет ReFS продолжать обеспечить оптимальную производительность данных (см. раздел "Производительность ввода-вывода" ниже).

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

Animation showing mirror accelerated parity rotation.

Операции ввода-вывода в зеркало ускорения четности

Поведение операций ввода-вывода

Записывает: входящие службы ReFS записывают три разных способа:

  1. Записывает в зеркальное отображение:

    • 1a. Если входящие данные записи изменяют существующие данные в зеркало, ReFS изменит данные на месте.
    • 1b. Если входящие записи являются новой записью, и ReFS может успешно найти достаточно свободного места в зеркало для обслуживания этой записи, ReFS будет записывать в зеркало. Screenshot showing how the ReFS service writes to mirror.
  2. Записывает в зеркальное отображение, перераспределенное из паритета:

    Если входящие данные записи изменяют данные, которые находятся в четности, и ReFS может успешно найти достаточно свободного места в зеркало для обслуживания входящей записи, ReFS сначала отменит предыдущие данные в четности, а затем записать в зеркало. Эта недопустимая операция является быстрой и недорогой операцией метаданных, которая помогает значительно повысить производительность записи, сделанную для четности. Screenshot showing how the ReFS service writes to mirror, reallocated from parity.

  3. Записывает данные в паритет:

    Если ReFS не удается найти достаточно свободного места в зеркало, ReFS будет записывать новые данные для четности или изменять существующие данные напрямую. В разделе "Оптимизация производительности" ниже приведены рекомендации, которые помогут свести к минимуму количество операций записи в четность. Screenshot showing how the ReFS service writes to parity.

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

Примечание.

Операции чтения никогда не приводят к повороту данных ReFS обратно в уровень зеркало.

Производительность операций ввода-вывода

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

  • Уровень четности зеркального уровня > "Перераспределированные записи">>

Считывает: при чтении из четности нет значимых, отрицательных последствий производительности:

  • Если зеркало и четность создаются с тем же типом носителя, производительность чтения будет эквивалентна.
  • Если зеркало и четность создаются с различными типами мультимедиа — зеркальные диски SSD, hdd parity HDD, например, кэш в Локальные дисковые пространства поможет кэшировать горячие данные для ускорения любых операций чтения из четности.

Сжатие ReFS

Сжатие для ReFS доступно в Windows Server 2019 и более поздних версиях, что значительно повышает производительность томов зеркало ускорения четности, полных 90 и более поздних версий.

Фон. Ранее, так как зеркало ускоренные тома стали полными, производительность этих томов может снизиться. Производительность снижается, так как горячие и холодные данные становятся смешанными во время сверхурочного объема. Это означает, что менее горячие данные могут храниться в зеркало так как холодные данные занимают место в зеркало, которые в противном случае могут использоваться горячими данными. Хранение горячих данных в зеркало крайне важно для обеспечения высокой производительности, так как запись непосредственно в зеркало гораздо быстрее, чем перераспределенные записи и порядка величины быстрее, чем операции записи непосредственно в четность. Таким образом, наличие холодных данных в зеркало плохо для производительности, так как снижает вероятность того, что ReFS может выполнять запись непосредственно в зеркало.

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

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

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

Важно!

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

Счетчики производительности

ReFS поддерживает счетчики производительности для оценки производительности зеркало ускорения четности.

  • Как описано выше в разделе "Запись в четность", ReFS будет записывать непосредственно в четность, когда не удается найти свободное место в зеркало. Как правило, это происходит, когда зеркало уровень заполняется быстрее, чем ReFS может повернуть данные на четность. Другими словами, смена ReFS не в состоянии следить за скоростью приема. Счетчики производительности, приведенные ниже, определяют, когда ReFS записывает непосредственно в четность:

    # Windows Server 2016
    ReFS\Data allocations slow tier/sec
    ReFS\Metadata allocations slow tier/sec
    
    # Windows Server 2019
    ReFS\Allocation of Data Clusters on Slow Tier/sec
    ReFS\Allocation of Metadata Clusters on Slow Tier/sec
    
  • Если эти счетчики не равны нулю, это означает, что ReFS не поворачивает данные достаточно быстро из зеркало. Чтобы облегчить это, можно изменить агрессивность поворота или увеличить размер зеркало уровня.

Агрессивность поворота

ReFS начинает поворот данных после того, как зеркало достиг заданного порогового значения емкости.

  • Более высокие значения этого порогового значения поворота приводят к тому, что ReFS сохраняет данные на уровне зеркало дольше. Сохранение горячих данных на уровне зеркало оптимально для производительности, но ReFS не сможет эффективно обслуживать большие объемы входящих операций ввода-вывода.
  • Более низкие значения позволяют ReFS упреждающе получать данные и лучше прием входящих операций ввода-вывода. Это применимо к приему тяжелых рабочих нагрузок, таких как архивное хранилище. Однако более низкие значения могут снизить производительность для рабочих нагрузок общего назначения. Ненужно поворот данных из уровня зеркало несет штраф за производительность.

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

  • Ключ: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Policies
  • ValueName (DWORD): DataDestageSsdFillRatioThreshold
  • ValueType: Процент

Если этот раздел реестра не задан, ReFS будет использовать значение по умолчанию 85 %. Это значение по умолчанию рекомендуется для большинства развертываний, а значения ниже 50 % не рекомендуется. В приведенной ниже команде PowerShell показано, как задать этот раздел реестра со значением 75%:

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75

Чтобы настроить этот раздел реестра на каждом узле в развертывании Локальные дисковые пространства, можно использовать следующую команду PowerShell:

$Nodes = 'S2D-01', 'S2D-02', 'S2D-03', 'S2D-04'
Invoke-Command $Nodes {Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Policies -Name DataDestageSsdFillRatioThreshold -Value 75}

Увеличение размера зеркало уровня

Увеличение размера зеркало уровня позволяет ReFS хранить большую часть рабочего набора в зеркало. Это повышает вероятность того, что ReFS может записывать непосредственно в зеркало, что поможет повысить производительность. Приведенные ниже командлеты PowerShell демонстрируют увеличение размера зеркало уровня:

Resize-StorageTier -FriendlyName "Performance" -Size 20GB
Resize-StorageTier -InputObject (Get-StorageTier -FriendlyName "Performance") -Size 20GB

Совет

Не забудьте изменить размер секции и тома после изменения размера служба хранилища Tier. Дополнительные сведения и примеры см. в разделе "Расширение томов".

Создание тома зеркало ускорения четности

Приведенный ниже командлет PowerShell создает том с ускорением зеркало с коэффициентом зеркального:паритета 20:80, который является рекомендуемой конфигурацией для большинства рабочих нагрузок. Дополнительные сведения и примеры см. в разделе "Создание томов" в Локальные дисковые пространства.

New-Volume -FriendlyName "TestVolume" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName "StoragePoolName" -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes 200GB, 800GB

Дополнительные справочники