Вопрос или проблема
Я хочу сравнить надежность различных систем RAID с использованием либо потребительских (URE/бит = 1e-14), либо корпоративных (URE/бит = 1e-15) дисков. Формула для определения вероятности успешного восстановления (игнорируя механические проблемы, которые я учту позже) проста:
вероятность_ошибки = 1 – (1-скорость_ошибки_на_бит)^бит_чтения
Важно помнить, что это вероятность получить ПОМИМО хотя бы одной URE, а не только одной.
Предположим, мы хотим 6 ТБ полезного пространства. Мы можем получить его с помощью:
-
RAID1 с 1+1 дисками по 6 ТБ каждый. Во время восстановления мы читаем 1 диск по 6 ТБ, и риск составляет: 1-(1-1e-14)^(6e12*8)=38% для потребительских или 4.7% для корпоративных дисков.
-
RAID10 с 2+2 дисками по 3 ТБ каждый. Во время восстановления мы читаем только 1 диск по 3 ТБ (тот, что в паре с вышедшим из строя!) и риск ниже: 1-(1-1e-14)^(3e12*8)=21% для потребительских или 2.4% для корпоративных дисков.
-
RAID5/RAID Z1 с 2+1 дисками по 3 ТБ каждый. Во время восстановления мы читаем 2 диска по 3 ТБ каждый, и риск составляет: 1-(1-1e-14)^(2*3e12*8)=38% для потребительских или 4.7% для корпоративных дисков.
-
RAID5/RAID Z1 с 3+1 дисками по 2 ТБ каждый (часто используется пользователями продуктов SOHO, таких как Synologys). Во время восстановления мы читаем 3 диска по 2 ТБ каждый, и риск составляет: 1-(1-1e-14)^(3*2e12*8)=38% для потребительских или 4.7% для корпоративных дисков.
Расчитать ошибку для одно-дисковой надежности легко, гораздо сложнее рассчитать вероятность в системах, устойчивых к отказам нескольких дисков (RAID6/Z2, RAIDZ3).
Если только первый диск используется для восстановления, а второй читается заново с начала в случае URE, то вероятность ошибки будет равна той, что рассчитана выше, взятой в квадратный корень (14.5% для потребительского RAID5 2+1, 4.5% для потребительского RAID1 1+2). Однако, я предполагаю (по крайней мере в ZFS, где есть полные контрольные суммы!), что второй диск четности/доступный диск читается только когда это необходимо, что означает, что требуется лишь несколько секторов: сколько URE может произойти на первом диске? не много, иначе вероятность ошибки для систем с одно-дисковой надежностью была бы гораздо выше, чем я рассчитал.
Если я прав, второй диск четности практически снизит риск до чрезвычайно низких значений.
Вопрос в сторону, важно помнить, что производители повышают вероятность URE для потребительских дисков по маркетинговым причинам (чтобы продать больше корпоративных дисков), поэтому даже от потребительских HDD ожидается достижение 1E-15 URE/бит чтения.
Некоторые данные: http://www.high-rely.com/hr_66/blog/why-raid-5-stops-working-in-2009-not/
Значения, которые я привел в скобках (корпоративные диски), на самом деле применимы и к потребительским дискам. А реальные корпоративные диски имеют еще большую надежность (URE/бит=1e-16).
Что касается вероятности механических отказов, они пропорциональны количеству дисков и времени, необходимому для восстановления.
Это лучший ответ, с теорией вероятностей тоже:
Вероятность отказа RAID 0, 5 и 6 легко рассчитывается с использованием
биномиального распределения вероятностей. Обратите внимание, что поскольку URE во время
восстановления может восприниматься как отказ диска некоторыми аппаратными/программными
RAID, вероятность отказа массива еще выше. Поэтому
следующие вероятности предполагают отсутствие URE, что означает, что это
наименьшие возможные вероятности отказа для данного массива.Если вероятность отказа любого отдельного диска = p, размер массива (т.е. количество дисков) = n, и число дисков, которые выходят из строя одновременно = X,
тогда:Pr(X) = (n “КOMBINATION” X) * (p)^X * (1-p)^(n-X)
Для p=0.03, n=4 мы имеем
Pr(X) = (4 “КOMBINATION” X) * 0.03^X * 0.97^(4-X)
Итак: X 0 1 2 3 4 Pr(X) 0.88529281 0.10952076 0.00508086 0.00010476
0.00000081Для RAID 0, массив выходит из строя, когда X>=1, поэтому Pr(отказ RAID0) =
0.10952076 + 0.00508086 + 0.00010476 + 0.00000081 = 0.11470719 ~ 1 из 9.Для RAID 5, массив выходит из строя, когда X>=2, поэтому Pr(отказ RAID5) =
0.00508086 + 0.00010476 + 0.00000081 = 0.00518643 ~ 1 из 193.Для RAID 6, массив выходит из строя, когда X>=3, поэтому Pr(отказ RAID6) =
0.00010476 + 0.00000081 = 0.00010557 ~ 1 из 9472.Таким образом, для массива из 4 дисков 1/9 массивов RAID 0 выходит из строя, 1/193 массивов RAID 5
выходит из строя, и 1/9472 массивов RAID 6 выходит из строя.Аналогично, для массива из 6 дисков 1/6 массивов RAID 0 выходит из строя, 1/80
массивов RAID 5 выходит из строя, и 1/1982 массивов RAID 6 выходит из строя.Также, для массива из 24 дисков 1/2 массивов RAID 0 выходит из строя, 1/6 массивов
RAID 5 выходит из строя, и 1/29 массивов RAID 6 выходит из строя.
…
эти вероятности основаны на среднем количестве вероятности отказа одного диска, равном 0.03, что, в свою очередь, основано на выборках, взятых из дата-центров.…
Таким образом, средняя вероятность отказа одного диска в потребительском ПК будет ниже 0.03 (возможно, на порядки меньше)
Существует множество сайтов и статей, которые пытаются ответить на этот вопрос.
Этот сайт имеет калькуляторы для уровней RAID 0, 5, 10/50/60.
Статья в Википедии о уровнях RAID имеет разделы о вероятностях отказа RAID 0 и RAID 1.
Надежность данного массива RAID 0 равна средней надежности
каждого диска, деленной на количество дисков в массиве:То есть, надежность (как измеряемая средним временем до отказа (MTTF) или
средним временем между отказами (MTBF)) примерно обратно пропорциональна
количеству членов – то есть массив из двух дисков примерно в два раза менее
надежен, чем один диск. Если вероятность отказа диска составляет 5% в течение трех лет, то
в массиве из двух дисков эта вероятность увеличивается до {P}(по крайней мере один отказ) = 1 – {P}(оба не отказывают) = 1 – (1 – 0.05)^2 = 0.0975 = 9.75%.
В качестве упрощенного примера, рассмотрим RAID 1 с двумя идентичными моделями
дискового устройства, каждая из которых имеет 5% вероятность отказа
в течение трех лет. При условии, что отказы статистически
независимы, то вероятность отказа обоих дисков в течение
трехлетнего срока службы составляет 0.25%. Таким образом, вероятность потери всех данных
составляет 0.25% за трехлетний период, если с массивом ничего не делать.
Также я нашел несколько статей в блогах на эту тему, включая эту, которая напоминает нам, что независимые диски в системе (I в RAID) могут быть не такими независимыми, как нам кажется:
Наивная теория заключается в том, что если жесткий диск 1 имеет вероятность отказа
1/1000, и диск 2 тоже, то вероятность отказа обоих составляет
1/1,000,000. Это предполагает, что отказы статистически независимы, но это не так. Вы не можете просто умножать вероятности таким образом, если
отказы не коррелируют. Неправильное предположение независимости — это
распространенная ошибка в применении вероятностей, возможно, самая распространенная ошибка.Джоэл Спольский прокомментировал эту проблему в последнем подкасте StackOverflow. Когда компания строит RAID, они могут взять четыре или пять дисков, которые сошли с конвейера вместе. Если один из этих дисков имеет небольшую ошибку, которая заставляет его выйти из строя после, скажем, 10,000 часов использования, вероятно, что и все остальные тоже выйдут из строя. Это не просто теоретическая возможность. Компании наблюдали за партиями дисков, которые все выходили из строя примерно в одно и то же время.
Ответ или решение
Чтобы оценить надежность различных RAID-систем в контексте вероятности возникновения нерегулируемой ошибки чтения (URE) во время восстановления, необходимо рассмотреть несколько ключевых аспектов. Данный ответ содержит формулы, теоретические расчеты и практические примеры для наглядной демонстрации расчетов.
Формула вероятности ошибки чтения
Формула, которую вы привели, позволяет нам оценить вероятность получения хотя бы одной URE во время операции чтения:
[
\text{error_probability} = 1 – (1 – \text{per_bit_error_rate})^{\text{bit_read}}
]
Где:
- (\text{per_bit_error_rate}) — вероятность ошибки чтения для данного типа диска (для потребительских дисков это (1 \times 10^{-14}), для корпоративных — (1 \times 10^{-15})).
- (\text{bit_read}) — общее количество бит, которые необходимо прочитать для восстановления данных.
Применение формулы к различным конфигурациям RAID
Рассмотрим ваши примеры. Затем проанализируем, как различные уровни RAID повлияют на вероятность возникновения URE.
-
RAID 1 (1+1, 6TB каждое):
- Общий поток данных: (6 \times 10^{12} \text{ байт} \times 8 = 48 \times 10^{12} \text{ бит})
- Вероятность ошибки чтения для потребительских дисков:
[
\text{error_probability} = 1 – (1 – 1 \times 10^{-14})^{48 \times 10^{12}} \approx 38\%
] - Для корпоративных дисков:
[
\text{error_probability} \approx 4.7\%
]
-
RAID 10 (2+2, 3TB каждая):
- Прочитываемый объем: (3 \times 10^{12} \text{ байт} \times 8 = 24 \times 10^{12} \text{ бит})
- Вероятность ошибки чтения:
[
\text{error_probability} \approx 21\% \text{ (для потребительских)} \text{ и } 2.4\% \text{ (для корпоративных)}
]
-
RAID 5 (2+1, 3TB каждая):
- Читаемые диски: 2 диска по 3TB.
- Вероятность ошибки:
[
\text{error_probability} \approx 38\% \text{ (для потребительских)} \text{ и } 4.7\% \text{ (для корпоративных)}
]
-
RAID 5 (3+1, 2TB каждая):
- Читаемые диски: 3 диска по 2TB.
- Вероятность ошибки:
[
\text{error_probability} \approx 38\%
]
Сложности с многими отключениями дисков
В RAID-системах, устойчивых к отказам нескольких дисков (например, RAID 6), расчет становится более сложным. Как вы правильно заметили, вероятность URE снижается, если не все данные читаются с диска во время восстановления. Если во время проверки в случае ошибки читается второй диск, то вероятность ошибок может уменьшиться.
Для многопарных систем (как с двумя паритетными дисками в RAID 6) можно использовать корень квадратный от вероятности URE по одному диску для оценки общей вероятности:
[
\text{adjusted_error_probability} \approx \sqrt{1 – \text{initial_error_probability}}
]
Заключение
Несмотря на то что вероятность URE в потребительских дисках может быть завышена для маркетинга, реальная вероятность может соответствовать корпоративным спецификациям в зависимости от качества и условий использования дисков. Ваши расчеты предоставляют полезное понимание того, как разные RAID-конфигурации влияют на вероятность ошибок чтения и тем самым, на общую надежность системы.
Для создания надежных систем хранения данных важно учитывать как URE, так и вероятность механических отказов, поскольку они пропорциональны количеству дисков и времени, необходимому для восстановления.