Отказоустойчивость и эффективность хранения в кластерах Azure Stack HCI и Windows Server
Область применения: Azure Stack HCI, версии 22H2 и 21H2; Windows Server 2022, Windows Server 2019
В этой статье описаны доступные варианты устойчивости и описаны требования к масштабированию, эффективность хранения и общие преимущества и компромиссы каждого.
Обзор
Локальные дисковые пространства обеспечивает отказоустойчивость, часто называемую "устойчивостью" для данных. Эта служба аналогична системе RAID, только на уровне серверов и с программной реализацией.
Как и в случае с RAID, для дисковых пространств есть несколько вариантов использования, у каждого из которых свои соотношения между отказоустойчивостью, эффективностью хранилища и сложностью вычислений. Эти варианты можно грубо разделить на две категории: "зеркальное отображение" и "контроль четности" (второй иногда называется "удаляющее кодирование").
Зеркальное отображение
Зеркальное отображение обеспечивает отказоустойчивость, сохраняя несколько копий всех данных. Это больше всего соответствует схеме RAID-1. Как эти данные чередуются и помещаются нетривиально (см . этот блог , чтобы узнать больше), но это абсолютно верно, чтобы сказать, что любые данные, хранящиеся с помощью зеркального отображения, записываются в целом несколько раз. Каждая копия записывается на разное физическое оборудование (разные диски на разных серверах), которые, как предполагается, выходят из строя независимо друг от друга.
Вы можете выбрать один из двух вариантов зеркального отображения — "двусторонний" и "трехсторонняя".
Двухстороннее зеркало
При двухстороннем зеркальном отображении записываются две полные копии всех данных. Эффективность такого хранилища составляет 50 %, то есть для хранения 1 ТБ данных потребуется не менее 2 ТБ физического хранилища. Аналогичным образом, вам нужно по меньшей мере два аппаратных домена сбоя, что для Локальных дисковых пространств означает два сервера.
Предупреждение
Если у вас больше двух серверов, мы рекомендуем использовать трехстороннее зеркальное отображение.
Трехстороннее зеркало
При трехстороннем зеркальном отображении записываются три полные копии всех данных. Эффективность такого хранилища составляет 33,3 %, то есть для хранения 1 ТБ данных потребуется не менее 3 ТБ физического хранилища. Аналогичным образом, вам нужно по меньшей мере три аппаратных домена сбоя, что для Локальных дисковых пространств означает три сервера.
При трехстороннем зеркальном отображении можно безопасно перенести по меньшей мере два сбоя оборудования (диска или сервера) одновременно. Например, в случае перезагрузки одного сервера при внезапном сбое другого диска или сервера все данные остаются в целостности и постоянно доступными.
Четность
Кодирование с контролем четности, также именуемое "удаляющее кодирование", поддерживает отказоустойчивость с помощью побитовой арифметической операции, которая в некоторых случаях невероятно сложна. Такой подход менее очевиден, чем зеркальное отображение, и для знакомства с ним следует изучить какой-либо из множества замечательных Интернет-ресурсов, например этот сторонний документ Dummies Guide to Erasure Coding (Руководство для чайников по удаляющему кодированию). Достаточно лишь сказать, что это обеспечивает более высокую эффективность хранилища без ущерба отказоустойчивости.
Дисковые пространства поддерживают два вида контроля четности — "одинарный" и "двойной", последний применяет в широком масштабе сложную технологию "кодов локального восстановления".
Внимание
Мы рекомендуем для наиболее чувствительных к производительности рабочих нагрузок применять зеркальное отображение. Дополнительные сведения о достижении компромисса между производительностью и емкостью с учетом характеристик рабочих нагрузок см. в статье Планирование томов.
Одинарный контроль четности
При одинарном контроле четности сохраняется только один символ битовой четности, что позволяет защитить данные только от одного сбоя единовременно. Это больше всего соответствует схеме RAID-5. Чтобы применить одинарный контроль четности, вам нужно по меньшей мере три аппаратных домена сбоя, что для Локальных дисковых пространств означает три сервера. Поскольку трехстороннее зеркальное отображение дает большую отказоустойчивость при тех же объемах, мы рекомендуем не применять одинарный контроль четности. Но, если вы настаиваете на его использовании, и он полностью поддерживается.
Предупреждение
Мы советуем не использовать одинарный контроль четности из-за того, что он способен надежно выдерживать только один аппаратный сбой единовременно, и если во время непредвиденного сбоя диска или сервера вы перезагружали другой сервер, система окажется неработоспособна. Если у вас всего три сервера, лучше всего настроить трехстороннее зеркальное отображение. Рекомендации для четырех и более серверов приводятся в следующем разделе.
Двойной контроль четности
Двойной контроль четности реализует коды коррекции ошибок Рида-Соломона с двумя символами битовой четности, что обеспечивает отказоустойчивость на уровне трехстороннего зеркального отображения (то есть до двух сбоев единовременно) при более высокой эффективности хранилища. Это больше всего соответствует схеме RAID-6. Чтобы применить двойной контроль четности, вам нужно по меньшей мере четыре аппаратных домена сбоя, что для Локальных дисковых пространств означает четыре сервера. Эффективность хранилища на такой системе составляет 50 %, то есть для хранения 2 ТБ данных потребуется 4 ТБ физического места в хранилище.
Эффективность хранилища в схеме двойного контроля четности повышается с 50 до 80 % по мере увеличения числа доменов сбоя. Например, при семи узлах (семи серверах, если речь идет о Локальных дисковых пространствах) эффективность повышается до 66,7 %, то есть для хранения 4 ТБ данных вам будет достаточно 6 ТБ физического места в хранилище.
В разделе Сводка приводятся данные об эффективности двойного контроля четности и кодов локального восстановления для каждого размера системы.
Коды локального восстановления
Дисковые пространства предоставляют современную технологию, разработанную в Microsoft Research, которая именуется "коды локального восстановления" (LRC). При больших размерах системы в двойном контроле четности применяются коды LRC для распределения задач кодирования и декодирования на несколько небольших групп. Это позволяет снизить затраты на операции записи или восстановления после сбоев.
Для жестких дисков HDD размер группы составляет четыре символа, а для твердотельных накопителей — шесть символов. Например, так будет выглядеть схема системы с жесткими дисками и 12-ю аппаратными доменами сбоя (то есть 12-ю серверами), где используются две группы по четыре символа данных. Это позволяет достичь эффективности хранилища на уровне 72,7 %.
Мы рекомендуем это подробное, но в значительной степени читаемое пошаговое руководство по тому, как местные коды реконструкции обрабатывают различные сценарии сбоя, и почему они обращаются, Клауз Джоергенсен.
Четность с зеркальным ускорением
Том Локальных дисковых пространств можно сделать частично зеркальным и частично с контролем четности. В этом случае операции записи сохраняются сначала на одном из зеркальных сегментов, а затем постепенно перемещаются на другой. По сути это означает, что зеркальное отображение применяется для ускорения удаляющего кодирования.
Чтобы совместить трехстороннее зеркальное отображение и двойной контроль четности, вам потребуется не менее четырех доменов сбоя, то есть четырех серверов.
Эффективность хранилища при контроле четности с зеркальным ускорением будет средней между теми значениями, которые можно получить при чистом зеркальном отображении и чистом контроле четности, и зависит от выбранных пропорций между ними.
Внимание
Мы рекомендуем для наиболее чувствительных к производительности рабочих нагрузок применять зеркальное отображение. Дополнительные сведения о достижении компромисса между производительностью и емкостью с учетом характеристик рабочих нагрузок см. в статье Планирование томов.
Итоги
В этом разделе перечислены типы устойчивости, доступные в Локальных дисковых пространствах, минимальные требования к размеру системы для каждого из этих типов, допустимое количество сбоев и соответствующая эффективность хранилища.
Типы устойчивости
Устойчивость | Отказоустойчивость | Эффективность хранилища |
---|---|---|
Двухстороннее зеркало | 1 | 50,0 % |
Трехстороннее зеркало | 2 | 33,3 % |
Двойной контроль четности | 2 | от 50,0 % до 80,0 % |
Смешанный | 2 | от 33,3 % до 80,0 % |
Минимальные требования к размеру системы
Устойчивость | Минимально допустимое число доменов сбоя |
---|---|
Двухстороннее зеркало | 2 |
Трехстороннее зеркало | 3 |
Двойной контроль четности | 4 |
Смешанный | 4 |
Совет
Если вы не используете отказоустойчивость на уровне корпуса или стойки, число доменов сбоя всегда совпадает с числом серверов. Число дисков на каждом сервере не влияет на доступность типов устойчивости, если соблюдаются минимальные требования для Локальных дисковых пространств.
Двойной контроль четности в гибридных развертываниях
В этой таблице показана эффективность хранилища двойного четности и локальных кодов восстановления в каждом масштабе для гибридных развертываний, которые содержат жесткие диски (HDD) и твердотельные накопители (SSD).
Домены сбоя | Макет | Эффективность |
---|---|---|
2 | – | – |
3 | – | – |
4 | RS 2+2 | 50,0 % |
5 | RS 2+2 | 50,0 % |
6 | RS 2+2 | 50,0 % |
7 | RS 4+2 | 66,7 % |
8 | RS 4+2 | 66,7 % |
9 | RS 4+2 | 66,7 % |
10 | RS 4+2 | 66,7 % |
11 | RS 4+2 | 66,7 % |
12 | LRC (8, 2, 1) | 72.7% |
13 | LRC (8, 2, 1) | 72.7% |
14 | LRC (8, 2, 1) | 72.7% |
15 | LRC (8, 2, 1) | 72.7% |
16 | LRC (8, 2, 1) | 72.7% |
Двойной контроль четности в развертываниях "только на флэш-дисках"
В этой таблице показана эффективность хранилища двойного четности и локальных кодов восстановления на каждом масштабе для всех развертываний флэш-памяти, которые содержат только твердотельные накопители (SSD). Схема контроля четности позволяет применять более крупные группы и получить более высокую эффективность хранилища в конфигурациях "только на флэш-дисках".
Домены сбоя | Макет | Эффективность |
---|---|---|
2 | – | – |
3 | – | – |
4 | RS 2+2 | 50,0 % |
5 | RS 2+2 | 50,0 % |
6 | RS 2+2 | 50,0 % |
7 | RS 4+2 | 66,7 % |
8 | RS 4+2 | 66,7 % |
9 | RS 6+2 | 75,0 % |
10 | RS 6+2 | 75,0 % |
11 | RS 6+2 | 75,0 % |
12 | RS 6+2 | 75,0 % |
13 | RS 6+2 | 75,0 % |
14 | RS 6+2 | 75,0 % |
15 | RS 6+2 | 75,0 % |
16 | LRC (12, 2, 1) | 80,0 % |
Примеры
Мы рекомендуем во всех случаях, кроме системы с двумя серверами, применять трехстороннее зеркальное отображение и (или) двойной контроль четности, так как они обеспечивают более высокую отказоустойчивость. В частности, они позволяют гарантировать сохранность всех данных и постоянный доступ к ним даже при сбоях, затрагивающих одновременно два домена сбоя (два сервера в среде Локальных дисковых пространств).
Примеры, в которых сохраняется работоспособность системы
В этих шести примерах показаны проблемы, с которыми позволяют справиться технологии трехстороннего зеркального отображения и (или) двойного контроля четности.
- 1. Один диск потерян (включает диски кэша)
- 2. Один сервер потерял
- 3. Один сервер и один диск потеряны
- 4. Два диска, потерянные на разных серверах
- 5. Более двух дисков потеряны до тех пор, пока не более двух серверов затронуты
- 6. Два сервера потеряли
... В каждом случае все тома остаются в сети. (Следите за тем, чтобы в кластере соблюдался кворум.)
Примеры, в которых нарушается работоспособность системы
В долгосрочной перспективе дисковые пространства могут выдержать любое число сбоев, так как полная устойчивость эффективно восстанавливается после каждого сбоя, если на это будет достаточно времени. Но в любой конкретный момент сбой может затрагивать не более двух доменов сбоя. В следующих примерах показаны проблемы, с которыми технологии трехстороннего зеркального отображения и (или) двойного контроля четности не смогут справиться.
- 7. Диски, потерянные на трех или более серверах одновременно
- 8. Три или более серверов, потерянных одновременно
Использование
Ознакомьтесь со сведениями о создании томов.
Следующие шаги
Дополнительные сведения по темам, которые упоминались в этой статье, вы можете получить в этих статьях: