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


Общие сведения о кэше пула носителей

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

Хранилища Spaces Direct, базовая технология виртуализации хранилища Azure Stack HCI и Windows Server, включает встроенный кэш на стороне сервера, чтобы максимизировать производительность хранилища и снизить затраты. It's a large, persistent, real-time read and write cache that is configured automatically upon deployment. В большинстве случаев никакого ручного управления не требуется. Способ работы кэша зависит от типов дисков, присутствующих.

Типы дисков и параметры развертывания

Storage Spaces Direct в настоящее время работает с четырьмя типами дисков.

Тип диска Description
PMem PMem refers to persistent memory, a new type of low latency, high performance storage.
NVMe NVMe (Non-Volatile Memory Express) refers to solid-state drives that sit directly on the PCIe bus. Распространенные форм-факторы: 2.5" U.2, PCIe Add-In-Card (AIC) и M.2. NVMe предлагает более высокую пропускную способность ввода-вывода и пропускную способность ввода-вывода с меньшей задержкой, чем любой другой тип диска, который мы поддерживаем сегодня, кроме PMem.
SSD SSD refers to solid-state drives, which connect via conventional SATA or SAS.
HDD HDD refers to rotational, magnetic hard disk drives, which offer vast storage capacity at a low cost.

Их можно объединить различными способами, которые мы группируем на две категории: "all-flash" и "hybrid". Развертывания со всеми HDD не поддерживаются.

Note

В этой статье рассматриваются конфигурации кэша с NVMe, SSD и HDD. Сведения об использовании постоянной памяти в качестве кэша см. в статье "Общие сведения об использовании постоянной памяти и развертывании".

Возможности развертывания полностью на флеш-памяти

Все развертывания флэш-памяти предназначены для повышения производительности хранилища и не включают HDD.

На схеме показаны все развертывания флэш-памяти, включая NVMe для емкости, NVMe для кэша с SSD для емкости и SSD для емкости.

Возможности гибридного развертывания

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

На схеме показаны гибридные развертывания, включая NVMe для кэша с HDD для емкости, SSD для кэша с HDD для емкости и NVMe для кэша с HDD плюс SSD для емкости.

Note

Гибридное развертывание не поддерживается в конфигурации одного сервера. Все конфигурации типа одноуровневого хранилища (например, all-NVMe или all-SSD) являются единственным поддерживаемым типом хранилища для одного сервера.

Диски кэша выбираются автоматически

В развертываниях с несколькими типами дисков, Storage Spaces Direct автоматически использует все диски самого быстрого типа для кэширования. Остальные диски используются для увеличения емкости.

Какой тип является "самым быстрым" определяется в соответствии со следующей иерархией.

На схеме показаны типы дисков, расположенные быстрее и медленнее в порядке NVMe, SSD, неназначенный диск, представляющий HDD.

Например, если у вас есть NVMe и SSD, используйте кэш NVMe для SSD.

Если у вас есть SSD-диски и HDD-диски, SSD-диски используются для кэширования данных жестких дисков.

Note

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

Если все диски имеют одинаковый тип, кэш не настраивается автоматически. You have the option to manually configure higher-endurance drives to cache for lower-endurance drives of the same type – see the Manual configuration section to learn how.

Tip

В некоторых случаях использование кэша пула хранения не имеет смысла. Например, в развертываниях all-NVMe или all-SSD, особенно в очень небольшом масштабе, отсутствие дисков, использованных на кэш, может повысить эффективность хранения и максимизировать производительность. Аналогичным образом, небольшие развертывания в удалённых или филиальных офисах могут иметь ограниченное пространство для дисков кэша.

Поведение кэша устанавливается автоматически

Поведение кэша определяется автоматически на основе типа или типов дисков, которые кэшируются. При кэшировании для флэш-дисков (таких как кэширование NVMe для SSD), кэшируются только записи. При кэшировании для вращающихся дисковых накопителей (например, когда SSD используются для кэширования HDD), кэшируются как операции чтения, так и записи.

Диаграмма сравнения кэширования для чисто флеш-памяти, где операции записи кэшируются, а операции чтения нет, с гибридной системой, где кэшируются как операции чтения, так и записи.

Кэширование только для записи для всех флэш-развертываний

Кэширование можно использовать в сценарии all-flash, например использование NVMe в качестве кэша для ускорения производительности SSD. При кэшировании для полностью флэш-развертываний кэшируются только операции записи. Это снижает нагрузку на накопители, так как многие записи и перезаписи могут объединяться в кэше, а затем сбрасываться только по мере необходимости, уменьшая совокупный трафик на накопители и увеличивая их срок службы. For this reason, we recommend selecting higher-endurance, write-optimized drives for the cache. Диски большой емкости могут, с некоторой вероятностью, иметь пониженную стойкость к записям.

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

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

Кэширование чтения и записи для гибридных развертываний

When caching for HDD, both reads and writes are cached, to provide flash-like latency (often ~10x better) for both. Кэш чтения хранит недавно и часто считываемые данные для быстрого доступа и чтобы свести к минимуму случайную нагрузку на жесткие диски (HDD). (Из-за задержек поиска и ротационных задержек, задержки и потери времени, вызванные случайным доступом к HDD, значительны.) Записи кэшируются, чтобы компенсировать всплески и, как и раньше, для объединения операций записи и перезаписи и минимизации совокупного трафика на емкостные диски.

Хранилище Spaces Direct реализует алгоритм, который дерандомизирует записи перед окончательной записью на диск, чтобы эмулировать шаблон ввода-вывода, который кажется последовательным, даже если фактический ввод-вывод, исходящий из рабочей нагрузки (например, виртуальные машины), является случайным. Это позволяет максимально увеличить число операций ввода-вывода в секунду и пропускную способность hdD.

Кэширование при развертывании с NVMe, SSD и HDD

При наличии дисков всех трех типов диски NVMe обеспечивают кэширование для дисков SSD и HDD. Это поведение описано выше: кэшируются только записи для SSD, а операции чтения и записи кэшируются для hdD. Нагрузка кэширования для жестких дисков распределяется равномерно между дисками кэша.

Summary

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

Deployment Cache drives Capacity drives Поведение кэша (по умолчанию)
All NVMe Нет (необязательно: настройка вручную) NVMe Доступно только на запись (если настроено)
All SSD Нет (необязательно: настройка вручную) SSD Доступно только на запись (если настроено)
NVMe и SSD NVMe SSD Write-only
NVMe и HDD NVMe HDD Чтение и запись
SSD и HDD SSD HDD Чтение и запись
NVMe + SSD + HDD NVMe SSD и HDD Чтение и запись для HDD, только запись для SSD

Server-side architecture

Кэш реализуется на уровне диска: отдельные диски кэша на одном сервере привязаны к одному или нескольким дискам емкости на одном сервере.

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

Учитывая, что устойчивость в локальных дисковых пространствах не ниже уровня сервера (т. е. копии данных всегда записываются на разные серверы; по крайней мере одна копия на сервер), данные в кэше получают те же преимущества устойчивости, что и данные, не в кэше.

Схема представляет три сервера, соединенные трехсторонним зеркалом на уровне слоя хранилища, который обращается к слою кэша приводов NVMe, который обращается к неназванным дискам емкости.

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

Привязки дисков являются динамическими

Привязка между кэш-памятью и дисками для хранения данных может иметь любое соотношение от 1:1 до 1:12 и более. Он динамически настраивается при добавлении или удалении дисков, таких как при масштабировании или после сбоев. Это означает, что вы можете добавлять диски кэша или диски емкости независимо друг от друга, когда вам угодно.

Анимированная схема показывает, как два кеш-диска NVMe динамически сопоставляются с четырьмя, шестью и восемью накопителями емкости.

Мы рекомендуем сделать количество емкостных дисков кратным количеству дисков кэша для симметрии. Например, если у вас есть 4 диска кэша, вы можете получить более высокую производительность с 8 дисками емкости (соотношение 1:2), чем с 7 или 9.

Управление сбоями кэш-дисков

При сбое диска кэша все записи, которые еще не были сброшены на локальный сервер, теряются, то есть они существуют только на других копиях (на других серверах). Как и после любого другого сбоя диска, технология Storage Spaces может автоматически восстанавливаться, используя оставшиеся копии.

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

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

На анимированной схеме показаны два SSD-диска кэша, сопоставленные с шестью дисками для хранения данных, пока один диск кэша не выходит из строя, что приводит к сопоставлению всех шести дисков с оставшимся диском кэша.

Затем можно заменить диск кэша так же, как и любую другую замену диска.

Note

Возможно, потребуется выключить питание, чтобы безопасно заменить NVMe, который является картой Add-In (AIC) или имеет форм-фактор M.2.

Отношение к другим кэшам

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

При использовании Azure Stack HCI не следует изменять кэш обратной записи для пространств хранения с его значений по умолчанию. For example, parameters such as -WriteCacheSize on the New-Volume cmdlet shouldn't be used.

Вы можете использовать кэш CSV или нет. Он включен по умолчанию в Azure Stack HCI, но он не конфликтует с кэшем, описанным в этом разделе, каким-либо образом. В некоторых сценариях он может обеспечить ценные преимущества производительности. Дополнительные сведения см. в разделе "Использование кэша чтения в памяти CSV" с помощью Azure Stack HCI.

Manual configuration

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

Если вам нужно изменить модель устройства кэша после установки, отредактируйте документ компонентов поддержки службы 'Работоспособность', как описано в обзоре службы 'Работоспособность'.

Указание модели диска кэша

В развертываниях, где все диски имеют одинаковый тип, например все развертывания NVMe или all-SSD, кэш не настроен, так как Windows не может различать характеристики, такие как выносливость, автоматически между дисками одного типа.

To use higher-endurance drives to cache for lower-endurance drives of the same type, you can specify which drive model to use with the -CacheDeviceModel parameter of the Enable-ClusterS2D cmdlet. Все диски этой модели используются для кэширования.

Tip

Be sure to match the model string exactly as it appears in the output of Get-PhysicalDisk.

Example

Сначала получите список физических дисков:

Get-PhysicalDisk | Group Model -NoElement

Вот пример выходных данных:

Count Name
----- ----
    8 FABRIKAM NVME-1710
   16 CONTOSO NVME-1520

Затем введите следующую команду, указав модель устройства кэша:

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

You can verify that the drives you intended are being used for caching by running Get-PhysicalDisk in PowerShell and verifying that their Usage property says "Journal".

Возможности развертывания вручную

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

На схеме показаны возможности развертывания, включая NVMe для кэша и емкости, SSD для кэша и емкости, а ТАКЖЕ SSD для кэша и смешанного SSD и HDD для емкости.

Настройка поведения кэша

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

To override the behavior, use Set-ClusterStorageSpacesDirect cmdlet and its -CacheModeSSD and -CacheModeHDD parameters. The CacheModeSSD parameter sets the cache behavior when caching for SSD. The CacheModeHDD parameter sets cache behavior when caching for HDD.

You can use Get-ClusterStorageSpacesDirect to verify the behavior is set.

Example

Сначала получите параметры Storage Spaces Direct:

Get-ClusterStorageSpacesDirect

Вот пример выходных данных:

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly

После этого выполните следующее:

Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite

Get-ClusterS2D

Вот пример выходных данных:

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite

Изменение размера кэша

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

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

Вы можете использовать встроенную программу монитора производительности (PerfMon.exe) в Windows для проверки скорости промахов кэша. В частности, можно сравнить пропущенные чтения из кэша в секунду из счетчика гибридного диска хранилища кластера с общим числом IOPS для операций чтения в вашем развертывании. Каждый «гибридный диск» соответствует одному накопителю большой емкости.

Например, 2 диска кэша, привязанные к 4 дискам для хранения, приводят к 4 экземплярам объекта "Гибридный диск" на сервер.

Performance-Monitor.

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

Next steps

Для получения дополнительной информации о хранилище см. также: