Вероятность отказа массивов RAID 10

Введение

В данной статье будут приведены рассчеты вероятности отказа массивов RAID 10 и RAID 0+1 и зависимости этоих величин от общего количества дисков в массиве. Массивы использующие четность (RAID 3, 4, 5, 6 и пр) не рассматриваются.

Структура массивов

Raid 0 (Stripe)

Данный массив позволяет распределить данные на несколько физических носителей и производить запись или чтение параллельно. Для этих целей данные делятся на блоки, и при операциях с массивом, разные блоки данных попадают на разные физические носители. Массив не обладает избыточностью, при выходе из строя любого диска, теряются данные всего массива. Его объем равен сумме объемов физических носителей (те контроллер объединяет их в один логический том-ленту (stripe)). Грубо можно сказать, что производительность тома, как на операциях чтения, так и записи равна сумме производительностей физических носителей.

Производительность чтения ~ N
Производительность записи ~ N
Надежность ~ 1/N
Емкость ~ N

Raid 1 (Mirror)

Данный массив обеспечивает дублирование (или зеркалирование - mirroring) информации. Таким образом, при выходе из строя одного диска, массив продолжает работать используя данные со второго диска. Автору не встречались упоминания о реальных системах, использующих более одного дубля данных (впрочем технически этому нет препятствий). При записи в массив реальная запись производится сразу на два физических носителя. Чтение, может производиться с любого физического носителя, что может обеспечить парралельность и повысить производительность (что и наблюдается в реализациях на большинстве современных контроллеров). Грубо говоря, производительность записи равна производительность одного носителя, а производительность чтения равна сумме производительностей носителей. Объем тома равен объему меньшего носителя (обычно используются одинаковые носители).

Производительность чтения ~ N
Производительность записи ~ 1
Надежность ~ ^N
Емкость ~ 1

Raid 0+1 (Mirror of Stripes)

Массив, объединяющий 2 массива Raid 0 (Stripe) в массив Raid 1 (Mirror), принято называть Raid 0+1 (фактически, цифры - это последовательность сборки тома из физических носителей). Такой массив обеспечивает как устойчивость (за счет зеркалирования), так и повышенную производительность всех операций (за счет распределения данных (striping)). Архитектура массива приводит к необходимости использования в нем не менее 4 физических носителей, причем общее число носителей должно быть четным. За счет зеркалирования емкость равна полвине общей емкости физических носителей (подразумевается одинаковый размер). Запись производится параллельно (аналогично Raid 0) на N/2 носитей (на другие N/2 носителей в тоже время параллельно пишется копия Raid 1). Грубо, можно сказать, что производительность записи равна сумме производительностей N/2 физических носителей. Чтение, потенциально, может осуществляться парраллельно с использованием всех N физических носителей, однако у автора нет точных данных о том, так ли это на самом деле. Как минимум, при чтении могут использоваться параллельные возможножности Raid 0 части. Грубо, можно сказать, что производительность чтения равна сумме производительностей N/2 физических носителей (или N в лучшем случае).

При выходе из строя одного диска массив проболжает работать за счет зеркалирования. Поскольку устойчивость достигается за счет Raid 1 части, то из этого логично вытекает, что массив будет продолжать работать при выходе из строя вплоть до N/2 дисков при условии, что все они будут находится в одном и томже массиве Raid 0 из двух используемых. Наиболее неприятным будет одновременный выход из строя сразу двух любых дисков в разных Raid 0 массивах, что приведет к отказу всего тома. Данный тип массива по возможности не следует использовать на практике, поскольку реализация Raid 10, описанная ниже, эквивалентна по используемым подходам и характеристикам, но статистически надежнее при множественных отказах носителей.

Производительность чтения ~ N/2...N
Производительность записи ~ N/2
Надежность ~ ^2
Емкость ~ N/2

Raid10 (Stripe of Mirrors)

Аналогично, массив, объединяющий набор массивов Raid 1 (Mirror) в общий массив Raid 0 (Stripe), принято называть Raid 10. Характеристики данного массива не отличаются от приведенных выше для Raid 0+1 - эти массивы используют общую технологию и различаются последовательностью сборки. Но есть одно важное отличие - статистически, массив Raid 0+1 менее надежен, чем массив Raid 10. Для Raid 10 наиболее неприятным будет одновременный отказ 2х носителей, находящихся в одном зеркале Raid 1 - эта ситуация менее вероятна, чем одновременный отказ носителей в разных страйпах Raid 0+1. Грубо говоря, разбить одно большое зеркало проще, чем одно из N/2 маленьких.

Вероятностные характеристики

Вероятность выхода из строя массива, при выходе из строя 2х произвольных дисков

C2 = (N!)/(2*(N-2)!) - число сочетаний из N по 2 (это просто число уникальных пар среди N дисков (x-y и y-x - одна и та же пара)).

P10 = (N/2)/C2 - вероятность, что массив Raid 10 выйдет из строя (все просто: "плохих" сочетаний - N/2, всего сочетаний C2 - отношение и есть вероятность).

C01 = (N/2)!/(2*(N/2-2)!) - число сочетаний из N/2 по 2 (для Raid 0+1 мы будем отталкиваться от "хороших" сочетаний, а это сочетания в отдельных страйпах из N/2 элементов - отсюда N/2)

P01 = 1 - (2*C01)/C2 - вероятность, что массив Raid 0+1 выйдет из строя (то же просто: мы посчитали количество "хороших" сочетаний - это сочетания C01 и, с учетом того, что в массиве 2 страйпа с C01 сочетаний в каждом, получили вероятность того, что массив не выйдет из строя в правой части, а затем вычли ее из 1 для получения вероятности выхода из строя). Автор позволит себе в данном месте бездоказательное утверждение, что предел данной формулы равен 0.5 при N стремящемся к бесконечности.

Итоговая зависимость вероятности от количества дисков

  4 6 8 10
Raid 10 0,333333333 0,2 0,142857143 0,111111111
Raid 0+1 0,666666667 0,6 0,571428571 0,555555556

 

Hosted by uCoz