Формула для расчета вероятности неустранимой ошибки чтения во время перестройки RAID

Вопрос или проблема

Я хочу сравнить надежность различных систем 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).

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

Это лучший ответ, с теорией вероятностей тоже:

http://evadman.blogspot.com/2010/08/raid-array-failure-probabilities.html?showComment=1337533818123#c7465506102422346169

Вероятность отказа 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:

Надежность данного массива RAID 0 равна средней надежности
каждого диска, деленной на количество дисков в массиве:

То есть, надежность (как измеряемая средним временем до отказа (MTTF) или
средним временем между отказами (MTBF)) примерно обратно пропорциональна
количеству членов – то есть массив из двух дисков примерно в два раза менее
надежен, чем один диск. Если вероятность отказа диска составляет 5% в течение трех лет, то
в массиве из двух дисков эта вероятность увеличивается до {P}(по крайней мере один отказ) = 1 – {P}(оба не отказывают) = 1 – (1 – 0.05)^2 = 0.0975 = 9.75%.

RAID 1:

В качестве упрощенного примера, рассмотрим 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.

  1. 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\%
      ]
  2. 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{ (для корпоративных)}
      ]
  3. RAID 5 (2+1, 3TB каждая):

    • Читаемые диски: 2 диска по 3TB.
    • Вероятность ошибки:
      [
      \text{error_probability} \approx 38\% \text{ (для потребительских)} \text{ и } 4.7\% \text{ (для корпоративных)}
      ]
  4. 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, так и вероятность механических отказов, поскольку они пропорциональны количеству дисков и времени, необходимому для восстановления.

Оцените материал
Добавить комментарий

Капча загружается...