Fórmula para calcular la probabilidad de error de lectura irrecuperable durante la reconstrucción RAID

12

Quiero comparar la confiabilidad de diferentes sistemas RAID con unidades de consumo (URE / bit = 1e-14) o empresariales (URE / bit = 1e-15). La fórmula para tener la probabilidad de éxito de una reconstrucción (ignorando los problemas mecánicos, que tendré en cuenta más adelante) es simple:

error_probability = 1 - (1-per_bit_error_rate) ^ bit_read

Es importante recordar que esta es la probabilidad de obtener AL MENOS una URE, no necesariamente solo una.

Supongamos que queremos un espacio útil de 6 TB. Podemos conseguirlo con:

  • RAID1 con discos 1 + 1 de 6 TB cada uno. Durante la reconstrucción, leemos 1 disco de 6TB y el riesgo es: 1- (1-1e-14) ^ (6e12 * 8) = 38% para unidades de consumo o 4.7% para unidades empresariales.

  • RAID10 con 2 + 2 discos de 3 TB cada uno. Durante la reconstrucción, volvemos a leer solo 1 disco de 3 TB (¡el que está emparejado con el que falló!) Y el riesgo es menor: 1- (1-1e-14) ^ (3e12 * 8) = 21% para el consumidor o 2.4% para Unidades empresariales.

  • RAID5 / RAID Z1 con 2 + 1 discos de 3TB cada uno. Durante la reconstrucción, leemos 2 discos de 3 TB cada uno y el riesgo es: 1- (1-1e-14) ^ (2 * 3e12 * 8) = 38% para unidades de consumo o 4.7% o empresariales.

  • RAID5 / RAID Z1 con 3 + 1 discos de 2 TB cada uno (a menudo utilizado por usuarios de productos SOHO como Synologys). Durante la reconstrucción, leemos 3 discos de 2TB cada uno y el riesgo es: 1- (1-1e-14) ^ (3 * 2e12 * 8) = 38% para el consumidor o 4.7% o unidades empresariales.

Calcular el error para la tolerancia de disco único es fácil, más difícil es calcular la probabilidad con sistemas tolerantes a fallas de discos múltiples (RAID6 / Z2, RAIDZ3).

Si solo se usa el primer disco para la reconstrucción y el segundo se vuelve a leer desde el principio en el caso de una URE, entonces la probabilidad de error es la calculada por encima de la raíz cuadrada (14.5% para el consumidor RAID5 2 + 1, 4.5% para el consumidor RAID1 1 + 2). Sin embargo, supongo (¡al menos en ZFS que tiene sumas de comprobación completas!) Que la segunda paridad / disco disponible se lee solo donde es necesario, lo que significa que solo se necesitan pocos sectores: ¿cuántas URE pueden suceder en el primer disco? no muchos, de lo contrario la probabilidad de error para los sistemas de tolerancia de disco único se dispararía aún más de lo que calculé.

Si estoy en lo correcto, un segundo disco de paridad prácticamente reduciría el riesgo a valores extremadamente bajos.

Dejando a un lado la pregunta, es importante tener en cuenta que los fabricantes aumentan la probabilidad de URE para unidades de clase de consumidor por razones de marketing (venden más unidades de clase empresarial), por lo tanto, se espera que incluso los HDD de clase de consumidor logren 1E-15 URE / bit de lectura .

Algunos datos: http://www.high-rely.com/hr_66/blog/why-raid-5-stops-working-in-2009-not/

Por lo tanto, los valores que proporcioné entre paréntesis (unidades empresariales) también se aplican de manera realista a las unidades de consumo. Y las unidades empresariales reales tienen una fiabilidad aún mayor (URE / bit = 1e-16).

En cuanto a la probabilidad de fallas mecánicas, son proporcionales al número de discos y proporcionales al tiempo requerido para la reconstrucción.

Faraón
fuente
1
Hola olaf En lo que a mí respecta, esta pregunta parece demasiado específica para el hardware de la computadora como para ser una buena opción para las Matemáticas , pero podría preguntar en su meta sitio si les gustaría tener su pregunta. Si ese es el caso, marque nuevamente y estaremos encantados de migrarlo por usted.
slhck
2
¿Cómo se llega exactamente al 38% de probabilidad de URE para RAID5 con 3 unidades? Usando URE = 10 ^ 14, HDD = 3.5 * 1024 ^ 4 bytes obtengo 3.8% URE por unidad y 11.1% para URE durante la reconstrucción. Es decir: 100 * (1- (1- (hdd / ure)) ^ 3). Creo que sus números están un poco apagados (aunque la tasa práctica de fallas es más alta de lo que dicen los fabricantes). Dado que las tasas de error se dan por bits leídos por unidad y no por bits leídos, creo que la parte donde usa ^ bit_read es incorrecta. ¿Quizás dar más detalles sobre cómo calculó esas probabilidades? +1 por pregunta interesante. cs.cmu.edu/~bianca/fast07.pdf
Ярослав Рахматуллин
Información agregada y cálculos verificados.
FarO

Respuestas:

2

Hay varios sitios y artículos que intentan abordar esta pregunta.

Este sitio tiene calculadoras para niveles RAID 0, 5, 10/50/60.

El artículo de Wikipedia sobre los niveles RAID tiene secciones sobre las tasas de falla RAID 0 y RAID 1.

RAID 0 :

La confiabilidad de un conjunto RAID 0 dado es igual a la confiabilidad promedio de cada disco dividido por el número de discos en el conjunto:

Es decir, la confiabilidad (medida por el tiempo medio de falla (MTTF) o el tiempo medio entre fallas (MTBF)) es aproximadamente inversamente proporcional al número de miembros, por lo que un conjunto de dos discos es aproximadamente la mitad de confiable que un solo disco. Si hubiera una probabilidad del 5% de que el disco fallara dentro de tres años, en una matriz de dos discos, esa probabilidad aumentaría a {P} (al menos uno falla) = 1 - {P} (ninguno falla) = 1 - (1 - 0.05) ^ 2 = 0.0975 = 9.75%.

RAID 1 :

Como ejemplo simplificado, considere un RAID 1 con dos modelos idénticos de una unidad de disco, cada uno con un 5% de probabilidad de que el disco falle dentro de tres años. Siempre que las fallas sean estadísticamente independientes, la probabilidad de que ambos discos fallen durante la vida útil de tres años es 0.25%. Por lo tanto, la probabilidad de perder todos los datos es 0.25% durante un período de tres años si no se hace nada en la matriz.



También he encontrado varios artículos de blog sobre este tema, incluido este que nos recuerda que las unidades independientes en un sistema (el I en RAID) pueden no ser tan independientes después de todo:

La teoría ingenua es que si el disco duro 1 tiene una probabilidad de falla de 1/1000 y también el disco 2, entonces la probabilidad de que ambos fallen es 1 / 1,000,000. Eso supone que las fallas son estadísticamente independientes, pero no lo son. No puede simplemente multiplicar probabilidades como esa a menos que las fallas no estén correlacionadas. Asumir erróneamente la independencia es un error común al aplicar la probabilidad, tal vez el error más común.

Joel Spolsky comentó sobre este problema en el último podcast de StackOverflow. Cuando una empresa construye un RAID, pueden tomar cuatro o cinco discos que salieron de la línea de ensamblaje. Si uno de estos discos tiene un pequeño defecto que hace que falle después de aproximadamente 10,000 horas de uso, es probable que todos lo hagan. Esto no es solo una posibilidad teórica. Las empresas han observado lotes de discos que fallan al mismo tiempo.

Brad Patton
fuente