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


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

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

Хранилища Spaces Direct, базовая технология виртуализации хранилища Azure Stack HCI и Windows Server, включает встроенный кэш на стороне сервера, чтобы максимизировать производительность хранилища и снизить затраты. Это объемный, постоянный кэш записи и чтения в реальном времени, который автоматически настраивается при развертывании. В большинстве случаев никакого ручного управления не требуется. Способ работы кэша зависит от типов дисков, присутствующих.

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

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

Тип диска Описание
PMem PMem относится к постоянной памяти, новому типу низкой задержки, высокопроизводительного хранилища.
NVMe NVMe (Non-Volatile Memory Express) относится к твердотельным дискам, которые сидят непосредственно на шине PCIe. Распространенные форм-факторы: 2.5" U.2, PCIe Add-In-Card (AIC) и M.2. NVMe предлагает более высокую пропускную способность ввода-вывода и пропускную способность ввода-вывода с меньшей задержкой, чем любой другой тип диска, который мы поддерживаем сегодня, кроме PMem.
SSD SSD относится к твердотельным накопителям, которые подключаются через обычный SATA или SAS.
HDD HDD относится к поворотным, магнитным жестким дискам, которые обеспечивают огромную емкость хранилища с низкой стоимостью.

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

Замечание

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

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

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

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

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

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

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

Замечание

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

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

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

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

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

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

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

Замечание

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

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

Подсказка

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

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

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

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

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

Кэширование можно использовать в сценарии all-flash, например использование NVMe в качестве кэша для ускорения производительности SSD. При кэшировании для полностью флэш-развертываний кэшируются только операции записи. Это снижает нагрузку на накопители, так как многие записи и перезаписи могут объединяться в кэше, а затем сбрасываться только по мере необходимости, уменьшая совокупный трафик на накопители и увеличивая их срок службы. По этой причине мы рекомендуем выбирать диски высокой стойкости, оптимизированные для записи, для кэша. Диски большой емкости могут, с некоторой вероятностью, иметь пониженную стойкость к записям.

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

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

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

При кэшировании для HDD операции чтения и записи кэшируются, чтобы обеспечивать время отклика, подобное флэш-памяти, что часто в 10 раз лучше для обоих. Кэш чтения хранит недавно и часто считываемые данные для быстрого доступа и чтобы свести к минимуму случайную нагрузку на жесткие диски (HDD). (Из-за задержек поиска и ротационных задержек, задержки и потери времени, вызванные случайным доступом к HDD, значительны.) Записи кэшируются, чтобы компенсировать всплески и, как и раньше, для объединения операций записи и перезаписи и минимизации совокупного трафика на емкостные диски.

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

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

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

Сводка

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

Развертывание Кеш-диски Емкостные накопители Поведение кэша (по умолчанию)
Все NVMe Нет (необязательно: настройка вручную) NVMe Доступно только на запись (если настроено)
Все SSD Нет (необязательно: настройка вручную) твердотельный накопитель (SSD) Доступно только на запись (если настроено)
NVMe и SSD NVMe твердотельный накопитель (SSD) Только запись
NVMe и HDD NVMe HDD (жёсткий диск) Чтение и запись
SSD и HDD твердотельный накопитель (SSD) HDD (жёсткий диск) Чтение и запись
NVMe + SSD + HDD NVMe SSD и HDD Чтение и запись для HDD, только запись для SSD

Архитектура на стороне сервера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечание

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

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

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

При использовании Azure Stack HCI не следует изменять кэш обратной записи для пространств хранения с его значений по умолчанию. Например, не следует использовать такие параметры, как -WriteCacheSize в командлете New-Volume .

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

Настройка вручную

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

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

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

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

Чтобы использовать диски с более высокой выносливостью для кэширования дисков с более низкой выносливостью того же типа, можно указать, какую модель диска использовать с параметром -CacheDeviceModel командлета Enable-ClusterS2D. Все диски этой модели используются для кэширования.

Подсказка

Не забудьте сопоставить строку модели точно так же, как она отображается в выходных данных Get-PhysicalDisk.

Пример

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

Get-PhysicalDisk | Group Model -NoElement

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

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

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

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

Вы можете убедиться, что предназначенные диски используются для кэширования, запустив Get-PhysicalDisk в PowerShell и проверив, что в их свойстве Usage указано "Журнал".

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

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

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

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

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

Чтобы переопределить поведение, используйте командлет Set-ClusterStorageSpacesDirect и параметры -CacheModeSSD и -CacheModeHDD. Параметр CacheModeSSD задает поведение кэша при кэшировании для SSD. Параметр CacheModeHDD задает поведение кэша при кэшировании для HDD.

Вы можете использовать Get-ClusterStorageSpacesDirect , чтобы проверить, задано ли поведение.

Пример

Сначала получите параметры 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 экземплярам объекта "Гибридный диск" на сервер.

Монитор производительности.

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

Дальнейшие шаги

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