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


Отказоустойчивость и эффективность хранения в кластерах Azure Stack HCI и Windows Server

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

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

Overview

Технология Storage Spaces Direct обеспечивает отказоустойчивость данных, часто называемую "резильентностью". Его реализация аналогична RAID, но распределена по серверам и выполнена в программном обеспечении.

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

Mirroring

Зеркальное отображение обеспечивает отказоустойчивость, сохраняя несколько копий всех данных. Это больше всего напоминает RAID-1. How that data is striped and placed is non-trivial (see this blog to learn more), but it's absolutely true to say that any data stored using mirroring is written, in its entirety, multiple times. Каждая копия записывается на другое физическое оборудование (разные диски на разных серверах), и предполагается, что они могут выходить из строя независимо.

Вы можете выбрать один из двух вариантов зеркального отображения — "двусторонний" и "трехсторонний".

Two-way mirror

Двунаправленное зеркальное отображение записывает две копии всего. Его эффективность хранилища составляет 50 процентов — для записи 1 ТБ данных требуется не менее 2 ТБ физической емкости хранилища. Аналогичным образом, вам потребуется как минимум два аппаратных домена отказа — с технологией Storage Spaces Direct, это означает два сервера.

two-way-mirror

Warning

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

Three-way mirror

Трехкратное зеркалирование создает три копии всего. Его эффективность хранения составляет 33,3 процента— для записи 1 ТБ данных требуется не менее 3 ТБ физической емкости хранилища. Аналогично, вам потребуется не менее трех доменов отказоустойчивости оборудования — с использованием Storage Spaces Direct, это означает необходимость в трех серверах.

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

three-way-mirror

Parity

Parity encoding, often called "erasure coding," provides fault tolerance using bitwise arithmetic, which can get remarkably complicated. То, как это работает, менее очевидно, чем зеркальное отображение, и есть много отличных онлайн-ресурсов (например, этот сторонний Руководство для чайников по кодированию с устранением ошибок), которые могут помочь вам получить представление. Достаточно сказать, что это обеспечивает лучшую эффективность хранения без ущерба для отказоустойчивости.

Хранилище данных предлагает две версии четности — "одинарный" и "двойной" паритет, второй использует усовершенствованный метод, называемый "локальными кодами реконструкции" на больших масштабах.

Important

Рекомендуется использовать зеркальное отображение для большинства рабочих нагрузок с учетом производительности. To learn more about how to balance performance and capacity depending on your workload, see Plan volumes.

Single parity

Единая четность сохраняет только один битовый символ четности, который обеспечивает отказоустойчивость только к одному сбою за раз. Он больше всего похож на RAID-5. Чтобы использовать единичную четность, вам потребуется не менее трех доменов сбоя оборудования — с Storage Spaces Direct, это означает три сервера. Так как трехкратное зеркалирование обеспечивает большую отказоустойчивость в том же масштабе, мы не рекомендуем использовать одиночную четность. Но, если вы настаиваете на его использовании, и он полностью поддерживается.

Warning

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

Dual parity

Двойная четность реализует Reed-Solomon коды исправления ошибок для поддержания двух битовых символов четности, тем самым обеспечивая ту же отказоустойчивость, что и трехстороннее зеркалирование (т. е. до двух сбоев одновременно), но с более эффективным использованием хранилища. Он больше всего похож на RAID-6. Чтобы использовать двойную четность, вам потребуется по крайней мере четыре домена сбоя оборудования — с использованием Storage Spaces Direct, это означает четыре сервера. В этом масштабе эффективность хранения составляет 50% — для хранения 2 ТБ данных требуется 4 ТБ физической емкости хранилища.

dual-parity

Эффективность хранилища с двойной четностью увеличивается с увеличением числа доменов сбоя оборудования, достигая от 50 до 80 процентов. Например, при семи (с использованием Storage Spaces Direct, это означает семь серверов) эффективность резко возрастает до 66,7 процента: для хранения 4 ТБ данных требуется всего 6 ТБ физической емкости хранилища.

dual-parity-wide

See the Summary section for the efficiency of dual party and local reconstruction codes at every scale.

Локальные коды реконструкции

В пространствах хранения внедрён продвинутый метод, разработанный Microsoft Research и называемый "локальные коды реконструкции" или LRC. В крупномасштабных системах двойная четность использует LRC для разделения кодирования и декодирования на несколько меньших групп, чтобы уменьшить издержки, необходимые для записи или восстановления после сбоев.

При использовании жестких дисков (HDD) размер группы составляет четыре символа; с твердотельными дисками (SSD) размер группы составляет шесть символов. Например, вот как выглядит макет с жесткими дисками и 12 доменами сбоя оборудования (то есть 12 серверов) — есть две группы из четырех символов данных. Она достигает 72,7 процента эффективности хранения.

local-reconstruction-codes

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

Mirror-accelerated parity

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

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

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

Important

Рекомендуется использовать зеркальное отображение для большинства рабочих нагрузок с учетом производительности. To learn more about how to balance performance and capacity depending on your workload, see Plan volumes.

Summary

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

Resiliency types

Resiliency Failure tolerance Storage efficiency
Two-way mirror 1 50.0%
Three-way mirror 2 33.3%
Dual parity 2 50,0% - 80,0%
Mixed 2 33,3% - 80,0%

Минимальные требования к масштабированию

Resiliency Минимальные обязательные домены сбоя
Two-way mirror 2
Three-way mirror 3
Dual parity 4
Mixed 4

Tip

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

Эффективность двойного четности для гибридных развертываний

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

Fault domains Layout Efficiency
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 ЦУР (8, 2, 1) 72.7%
13 ЦУР (8, 2, 1) 72.7%
14 ЦУР (8, 2, 1) 72.7%
15 ЦУР (8, 2, 1) 72.7%
16 ЦУР (8, 2, 1) 72.7%

Эффективность двойной четности для всефлешевых развертываний

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

Fault domains Layout Efficiency
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 ЦУР (12, 2, 1) 80.0%

Examples

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

Примеры, где все остается в сети

These six examples show what three-way mirroring and/or dual parity can tolerate.

  • 1. One drive lost (includes cache drives)
  • 2. One server lost

fault-tolerance-examples-1-and-2

  • 3. One server and one drive lost
  • 4. Two drives lost in different servers

fault-tolerance-examples-3-and-4

  • 5. More than two drives lost, so long as at most two servers are affected
  • 6. Two servers lost

fault-tolerance-examples-5-and-6

... В каждом случае все тома остаются в сети. (Убедитесь, что кластер поддерживает кворум.)

Примеры, в которых все идет в автономном режиме

На протяжении всего срока службы пулы хранения могут терпеть любое количество сбоев, так как они восстанавливаются до полной устойчивости после каждого из них, при условии наличия достаточного времени. Однако в любой момент может быть безопасно затронуто максимум два домена отказа. The following are therefore examples of what three-way mirroring and/or dual parity cannot tolerate.

  • 7. Drives lost in three or more servers at once
  • 8. Three or more servers lost at once

fault-tolerance-examples-7-and-8

Usage

Check out Create volumes.

Next steps

Дополнительные сведения о темах, упомянутых в этой статье, см. в следующих статьях: