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


Устойчивость вложенных дисковых пространств

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

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

Перед тем как начать

Рассмотрите вложенную устойчивость, если:

  • Кластер запускает одну из этих операционных систем: Azure Stack HCI версии 22H2 или более поздней версии, Windows Server 2019 или более поздней версии; и
  • Кластер имеет ровно два узла сервера.

Вы не можете использовать вложенную устойчивость, если:

  • Ваш кластер использует Windows Server 2016 или
  • Кластер имеет только один узел сервера или имеет три или более узлов сервера.

Почему вложенная устойчивость

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

Схема доступности хранилища.

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

Принцип работы

В этом разделе предоставляется справочная информация о вложенной устойчивости для Storage Spaces Direct (локальных дисковых пространств) и описываются два новых варианта устойчивости, а также их эффективность по емкости.

Вдохновение: RAID 5+1

RAID 5+1 — это признанная форма устойчивости распределенного хранилища, которая обеспечивает полезную основу для понимания вложенной устойчивости. В RAID 5+1 на каждом сервере локальная устойчивость обеспечивается RAID-5 или одиночной четностью для защиты от потери любого отдельного диска. Затем дальнейшая устойчивость обеспечивается RAID-1 или двухсторонним зеркалированием между двумя серверами для защиты от потери одного из них.

Схема, на которую показан RAID 5+1.

Параметры устойчивости

Storage Spaces Direct в Azure Stack HCI и Windows Server предлагает два варианта устойчивости, реализованных в программном обеспечении, без необходимости в специализированном оборудовании RAID.

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

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

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

    Диаграмма, показывающая четность с вложенным зеркальным ускорением.

Эффективность емкости

Эффективность емкости — это соотношение полезного пространства к объему. Он описывает затраты на емкость, связанные с устойчивостью, и зависит от выбранного варианта устойчивости. В качестве простого примера хранение данных без устойчивости составляет 100% емкости (1 ТБ данных занимает 1 ТБ физической емкости хранилища), в то время как двустороннее зеркальное отображение составляет 50% эффективно (1 ТБ данных занимает 2 ТБ физической емкости хранилища).

  • Вложенное двустороннее зеркальное отображение записывает четыре копии всего. Это означает, что для хранения 1 ТБ данных требуется 4 ТБ физической емкости хранилища. Несмотря на привлекательность его простоты, эффективность емкости вложенного двухстороннего зеркала на уровне 25% является самой низкой из всех вариантов устойчивости в Storage Spaces Direct.

  • Вложенное зеркальное ускорение четности обеспечивает более высокую эффективность емкости, около 35%–40%, которая зависит от двух факторов: количество дисков емкости на каждом сервере, а также сочетание зеркального отображения и четности, указанного для тома. Эта таблица содержит поиск распространенных конфигураций:

    Емкость дисков на сервере 10% зеркало 20% зеркало 30% зеркало
    4 35,7% 34.1% 32,6%
    5 37,7% 35,7% 33,9%
    6 39.1% 36,8% 34.7%
    7+ 40,0% 37,5% 35.3%

    Ниже приведен пример полной математики. Предположим, у нас есть шесть емкостных дисков на каждом из двух серверов, и мы хотим создать один том объемом 100 ГБ, состоящий из 10 ГБ зеркального отражения и 90 ГБ паритета. Двусторонняя зеркальная репликация сервера имеет эффективность 50,0%, что означает, что 10 ГБ зеркальных данных занимает 20 ГБ для хранения на каждом сервере. Отражено на обоих серверах, общий объем составляет 40 ГБ. В этом случае локальная одиночная четность на сервере составляет 5/6 = 83,3% эффективности, то есть 90 ГБ данных четности требуют 108 ГБ для хранения на каждом сервере. Его общее пространство, занятое зеркальным отображением на обоих серверах, составляет 216 ГБ. Таким образом, общий след составляет [(10 ГБ / 50,0%) + (90 ГБ / 83,3%)] × 2 = 256 ГБ, при общей эффективности использования емкости 39,1%.

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

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

Создание вложенных томов резервирования

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

Шаг 1. Создание шаблонов уровня хранилища (только Для Windows Server 2019)

Windows Server 2019 требует от вас создать новые шаблоны уровня хранилища с помощью командлета New-StorageTier перед созданием томов. Это необходимо сделать только один раз, а затем каждый новый том, который вы создаете, может ссылаться на эти шаблоны.

Замечание

Если вы используете Windows Server 2022, Azure Stack HCI версии 21H2 или Azure Stack HCI версии 20H2, можно пропустить этот шаг.

-MediaType Укажите диски емкости и, при необходимости, выбранный -FriendlyName вариант. Не изменяйте другие параметры.

Например, если ваши диски большой емкости являются жесткими дисками (HDD), запустите PowerShell от имени администратора и выполните следующие командлеты.

Чтобы создать уровень NestedMirror, выполните приведенные действия.

New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedMirrorOnHDD -ResiliencySettingName Mirror -MediaType HDD -NumberOfDataCopies 4

Чтобы создать уровень NestedParity, выполните приведенные действия.

New-StorageTier -StoragePoolFriendlyName S2D* -FriendlyName NestedParityOnHDD -ResiliencySettingName Parity -MediaType HDD -NumberOfDataCopies 2 -PhysicalDiskRedundancy 1 -NumberOfGroups 1 -FaultDomainAwareness StorageScaleUnit -ColumnIsolation PhysicalDisk

Если ваши накопители являются твердотельными дисками (SSD), задайте -MediaTypeSSD вместо этого и замените -FriendlyName на *OnSSD. Не изменяйте другие параметры.

Подсказка

Убедитесь, что Get-StorageTier успешно создал уровни.

Шаг 2. Создание вложенных томов

Создайте новые тома с помощью командлета New-Volume .

  • Вложенное двустороннее зеркало

    Чтобы использовать вложенное двустороннее зеркальное отображение, обратитесь к шаблону уровня NestedMirror и укажите размер. Рассмотрим пример.

    New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume01 -StorageTierFriendlyNames NestedMirrorOnHDD -StorageTierSizes 500GB
    

    Если ваши диски емкости являются твердотельными дисками (SSD), перейдите на -StorageTierFriendlyNames*OnSSD.

  • Вложенное зеркальное ускорение четности

    Чтобы использовать вложенную зеркально-ускоренную четность, обратитесь к шаблонам уровней NestedMirror и NestedParity и укажите два размера, один - для зеркальной части тома, второй - для части с четностью. Например, чтобы создать один том размером 500 ГБ, который содержится в 20% двустороннем вложенном зеркале и 80% вложенной четности, выполните следующую команду:

    New-Volume -StoragePoolFriendlyName S2D* -FriendlyName Volume02 -StorageTierFriendlyNames NestedMirrorOnHDD, NestedParityOnHDD -StorageTierSizes 100GB, 400GB
    

    Если ваши диски емкости являются твердотельными дисками (SSD), перейдите на -StorageTierFriendlyNames*OnSSD.

Шаг 3. Продолжение работы в Windows Admin Center

Тома, использующие встроенную устойчивость, отображаются в Windows Admin Center с четкой маркировкой, как показано на следующем снимке экрана. После создания вы можете управлять и отслеживать их с помощью Windows Admin Center так же, как и любой другой том в Storage Spaces Direct.

Управление томами в Windows Admin Center.

Необязательно: Подключение к дискам кэша

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

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

Замечание

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

(Необязательно) Чтобы автоматически отключить кэширование записи при отключении одного сервера в двухсерверном кластере, запустите PowerShell от имени администратора и выполните следующую команду:

Get-StorageSubSystem Cluster* | Set-StorageHealthSetting -Name "System.Storage.NestedResiliency.DisableWriteCacheOnNodeDown.Enabled" -Value "True"

После задания значения True поведение кэша выполняется следующим образом:

Ситуация Поведение кэша Может ли допускается потеря диска кэша?
Оба сервера работают Операции чтения и записи из кэша, максимальная производительность Да
Сервер недоступен в первые 30 минут Операции чтения и записи из кэша, максимальная производительность Нет (временно)
После первых 30 минут Кэш только для чтения, влияние на производительность Да (после записи кэша на емкостные накопители)

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

Найдите ответы на часто задаваемые вопросы о внутренней надежности.

Можно ли преобразовать существующий том между двухсторонним зеркалом и вложенной устойчивостью?

Нет, тома нельзя преобразовать между типами устойчивости. Для новых развертываний в Azure Stack HCI, Windows Server 2022 или Windows Server 2019 решите заранее, какой тип устойчивости лучше подходит для ваших потребностей. При обновлении с Windows Server 2016 можно создать новые тома с вложенной устойчивостью, перенести данные и удалить старые тома.

Можно ли использовать вложенную устойчивость с несколькими типами накопителей различной емкости?

Да, просто укажите -MediaType для каждого уровня соответствующим образом в шаге 1 выше. Например, при использовании NVMe, SSD и HDD в одном кластере NVMe предоставляет кэш-память, а последние два обеспечивают дополнительную емкость: установите уровень NestedMirror на -MediaType SSD и уровень NestedParity на -MediaType HDD. В этом случае эффективность паритетной емкости зависит только от количества дисков HDD, и необходимо по крайней мере 4 из них на сервер.

Можно ли использовать вложенную устойчивость с тремя или более серверами?

Нет, используйте только вложенную устойчивость, если в кластере есть ровно два сервера.

Сколько дисков необходимо для достижения вложенной устойчивости?

Минимальное количество дисков, необходимых для локальных дисковых пространств, — четыре диска емкости на узел сервера, а также два диска кэша на узел сервера (при наличии). Это не отличается от Windows Server 2016. Нет других требований к вложенной устойчивости, и рекомендация по резервным мощностям также не изменилась.

Изменяет ли вложенная отказоустойчивость процесс замены диска?

Нет.

Изменяет ли вложенное резервирование процесс замены узла сервера?

Нет. Чтобы заменить узел сервера и его диски, выполните следующий порядок:

  1. Прекращение использования дисков на исходящем сервере
  2. Добавление нового сервера с его дисками в кластер
  3. Пул носителей будет перебалансироваться
  4. Удаление исходящего сервера и его дисков

Дополнительные сведения см. в статье "Удаление серверов ".

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