Отказоустойчивость и эффективность хранения в кластерах Azure Stack HCI и Windows Server
Область применения: Azure Stack HCI, версии 22H2 и 21H2; Windows Server 2022, Windows Server 2019
В этой статье описаны доступные варианты устойчивости и описаны требования к масштабированию, эффективность хранения и общие преимущества и компромиссы каждого.
Обзор
Технология Storage Spaces Direct обеспечивает отказоустойчивость данных, часто называемую "резильентностью". Его реализация аналогична RAID, но распределена по серверам и выполнена в программном обеспечении.
Как и в случае с RAID, существует несколько различных способов использования дисковых пространств, что делает различные компромиссы между отказоустойчивостью, эффективностью хранилища и сложностью вычислений. Эти в общем делятся на две категории: "зеркальное отображение" и "паритет", последний иногда называется "кодирование стирания".
Отзеркаливание
Зеркальное отображение обеспечивает отказоустойчивость, сохраняя несколько копий всех данных. Это больше всего напоминает RAID-1. Как эти данные чередуются и помещаются нетривиально (см. этот блог, чтобы узнать больше), но безусловно, можно сказать, что все данные, хранящиеся с помощью зеркалирования, записываются полностью и многократно. Каждая копия записывается на другое физическое оборудование (разные диски на разных серверах), и предполагается, что они могут выходить из строя независимо.
Вы можете выбрать один из двух вариантов зеркального отображения — "двусторонний" и "трехсторонний".
Двустороннее зеркальное отображение
Двунаправленное зеркальное отображение записывает две копии всего. Его эффективность хранилища составляет 50 процентов — для записи 1 ТБ данных требуется не менее 2 ТБ физической емкости хранилища. Аналогичным образом, вам потребуется как минимум два аппаратных домена отказа — с технологией Storage Spaces Direct, это означает два сервера.
Предупреждение
Если у вас более двух серверов, вместо этого рекомендуется использовать трехстороннее зеркальное отображение.
Трехстороннее зеркало
Трехкратное зеркалирование создает три копии всего. Его эффективность хранения составляет 33,3 процента— для записи 1 ТБ данных требуется не менее 3 ТБ физической емкости хранилища. Аналогично, вам потребуется не менее трех доменов отказоустойчивости оборудования — с использованием Storage Spaces Direct, это означает необходимость в трех серверах.
Трехстороннее зеркалирование может безопасно выдерживать как минимум две аппаратные проблемы (диска или сервера) одновременно. Например, если вы перезагрузите один сервер при внезапном сбое другого диска или сервера, все данные остаются безопасными и постоянно доступными.
Равенство
Кодировка четности, часто называемая "стирание кода", обеспечивает отказоустойчивость с помощью битовой арифметики, которая может получить удивительно сложные. То, как это работает, менее очевидно, чем зеркальное отображение, и есть много отличных онлайн-ресурсов (например, этот сторонний Руководство для чайников по кодированию с устранением ошибок), которые могут помочь вам получить представление. Достаточно сказать, что это обеспечивает лучшую эффективность хранения без ущерба для отказоустойчивости.
Хранилище данных предлагает две версии четности — "одинарный" и "двойной" паритет, второй использует усовершенствованный метод, называемый "локальными кодами реконструкции" на больших масштабах.
Важный
Рекомендуется использовать зеркальное отображение для большинства рабочих нагрузок с учетом производительности. Дополнительные сведения о том, как сбалансировать производительность и емкость в зависимости от рабочей нагрузки, см. в статье Планирование томов.
Одиночная четность
Единая четность сохраняет только один битовый символ четности, который обеспечивает отказоустойчивость только к одному сбою за раз. Он больше всего похож на RAID-5. Чтобы использовать единичную четность, вам потребуется не менее трех доменов сбоя оборудования — с Storage Spaces Direct, это означает три сервера. Так как трехкратное зеркалирование обеспечивает большую отказоустойчивость в том же масштабе, мы не рекомендуем использовать одиночную четность. Но, если вы настаиваете на его использовании, и он полностью поддерживается.
Предупреждение
Мы не рекомендуем использовать одиночную четность, так как она может безопасно выдерживать только один аппаратный сбой за раз: если вы перезагружаете один сервер, когда вдруг происходит сбой другого диска или сервера, у вас будет время простоя. Если у вас есть только три сервера, рекомендуется использовать трехсторонние зеркальное отображение. Если у вас есть четыре или более, см. следующий раздел.
Двойная четность
Двойная четность реализует Reed-Solomon коды исправления ошибок для поддержания двух битовых символов четности, тем самым обеспечивая ту же отказоустойчивость, что и трехстороннее зеркалирование (т. е. до двух сбоев одновременно), но с более эффективным использованием хранилища. Он больше всего похож на RAID-6. Чтобы использовать двойную четность, вам потребуется по крайней мере четыре домена сбоя оборудования — с использованием Storage Spaces Direct, это означает четыре сервера. В этом масштабе эффективность хранения составляет 50% — для хранения 2 ТБ данных требуется 4 ТБ физической емкости хранилища.
Эффективность хранилища с двойной четностью увеличивается с увеличением числа доменов сбоя оборудования, достигая от 50 до 80 процентов. Например, при семи (с использованием Storage Spaces Direct, это означает семь серверов) эффективность резко возрастает до 66,7 процента: для хранения 4 ТБ данных требуется всего 6 ТБ физической емкости хранилища.
с двойной широкой четностью
Ознакомьтесь с разделом Сводка о эффективности двойного кодирования и локальных скорректирующих кодов на каждом масштабе.
Локальные коды реконструкции
В пространствах хранения внедрён продвинутый метод, разработанный Microsoft Research и называемый "локальные коды реконструкции" или LRC. В крупномасштабных системах двойная четность использует LRC для разделения кодирования и декодирования на несколько меньших групп, чтобы уменьшить издержки, необходимые для записи или восстановления после сбоев.
При использовании жестких дисков (HDD) размер группы составляет четыре символа; с твердотельными дисками (SSD) размер группы составляет шесть символов. Например, вот как выглядит макет с жесткими дисками и 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). Макет четности может использовать более крупные размеры групп и повысить эффективность хранения в конфигурации all-flash.
Домены сбоя | Схема | Эффективность |
---|---|---|
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% |
Примеры
Если у вас не меньше двух серверов, мы рекомендуем использовать трехстороннее зеркальное отображение либо двойную четность, поскольку они обеспечивают более высокую отказоустойчивость. В частности, они гарантируют, что все данные остаются безопасными и постоянно доступными, даже если два домена сбоя — с Storage Spaces Direct, это означает, что два сервера пострадали от одновременных сбоев.
Примеры, где все остается в сети
В этих шести примерах показано, какие трехмерные зеркальные и/или двойные четности могут терпеть.
- 1. один диск потерян (включает диски кэша)
- 2. один сервер потерян
- 3. один сервер и один диск потеряны
- 4. два диска, потерянные на разных серверах
- 5. Потеряно более двух дисков при условии, что затронуто не более двух серверов.
- 6. Два сервера потеряны
... В каждом случае все тома остаются в сети. (Убедитесь, что кластер поддерживает кворум.)
Примеры, в которых все идет в автономном режиме
На протяжении всего срока службы пулы хранения могут терпеть любое количество сбоев, так как они восстанавливаются до полной устойчивости после каждого из них, при условии наличия достаточного времени. Однако в любой момент может быть безопасно затронуто максимум два домена отказа. Ниже приведены примеры того, что трехстороннее зеркалирование и/или двойная избыточность не может терпеть.
- 7. Диски, утерянные на трех или более серверах одновременно
- 8. три или более серверов, потерянных одновременно
Употребление
Ознакомьтесь с Создайте тома.
Дальнейшие действия
Дополнительные сведения о темах, упомянутых в этой статье, см. в следующих статьях:
- Кодирование стиранием в Azure от Microsoft Research
- Локальные коды реконструкции и ускорение обработки томов четности
- тома в API управления хранилищами