Поделиться через


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

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

Схема с изображением тома зеркального ускорения четности.

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

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

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

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

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

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

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

Схема, изображающая том ускорения четности зеркального отображения с контейнерами хранилища.

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

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

Анимация с зеркальным ускорением поворота четности.

Число операций ввода-вывода в режиме зеркального ускорения

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

Сжатие 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

Совет

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

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

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

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

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