Fórmula para calcular a probabilidade de erro de leitura irrecuperável durante a reconstrução do RAID

12

Desejo comparar a confiabilidade de diferentes sistemas RAID com unidades consumidoras (URE / bit = 1e-14) ou empresariais (URE / bit = 1e-15). A fórmula para ter a probabilidade de êxito de uma reconstrução (ignorando problemas mecânicos, que levarei em consideração mais adiante) é simples:

error_probability = 1 - (1-per_bit_error_rate) ^ bit_read

É importante lembrar que esta é a probabilidade de obter pelo menos um URE, não necessariamente apenas um.

Vamos supor que queremos um espaço útil de 6 TB. Podemos obtê-lo com:

  • RAID1 com 1 + 1 discos de 6 TB cada. Durante a reconstrução, lemos novamente 1 disco de 6 TB e o risco é: 1- (1-1e-14) ^ (6e12 * 8) = 38% para consumidor ou 4,7% para unidades empresariais.

  • RAID10 com 2 + 2 discos de 3 TB cada. Durante a reconstrução, lemos apenas 1 disco de 3 TB (aquele emparelhado com o que falhou!) E o risco é menor: 1- (1-1e-14) ^ (3e12 * 8) = 21% para o consumidor ou 2,4% para unidades corporativas.

  • RAID5 / RAID Z1 com 2 + 1 discos de 3 TB cada. Durante a reconstrução, lemos novamente 2 discos de 3 TB cada e o risco é: 1- (1-1e-14) ^ (2 * 3e12 * 8) = 38% para consumidor ou 4,7% ou unidades corporativas.

  • RAID5 / RAID Z1 com 3 + 1 discos de 2 TB cada (geralmente usado por usuários de produtos SOHO como Synologys). Durante a reconstrução, lemos novamente três discos de 2 TB cada e o risco é: 1- (1-1e-14) ^ (3 * 2e12 * 8) = 38% para consumidor ou 4,7% ou unidades corporativas.

Calcular o erro para tolerância em disco único é fácil, mais difícil é calcular a probabilidade com sistemas tolerantes a falhas em vários discos (RAID6 / Z2, RAIDZ3).

Se apenas o primeiro disco for usado para reconstrução e o segundo for lido novamente desde o início no caso ou em um URE, a probabilidade de erro será calculada acima da raiz quadrada (14,5% para o consumidor RAID5 2 + 1, 4,5% para o consumidor RAID1 1 + 2). No entanto, suponho (pelo menos no ZFS que possui somas de verificação completas!) Que o segundo disco de paridade / disponível seja lido somente onde for necessário, o que significa que são necessários apenas alguns setores: quantos UREs podem acontecer no primeiro disco? poucas, caso contrário, a probabilidade de erro para sistemas de tolerância de disco único dispararia ainda mais do que eu calculei.

Se eu estiver correto, um segundo disco de paridade praticamente reduziria o risco a valores extremamente baixos.

Pergunta à parte, é importante ter em mente que os fabricantes aumentam a probabilidade de URE para unidades de classe de consumidor por razões de marketing (vendem mais unidades de classe empresarial); portanto, espera-se que até os HDDs de classe de consumidor atinjam 1E-15 URE / bit de leitura .

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

Os valores que eu forneci entre parênteses (unidades corporativas), portanto, também se aplicam realisticamente às unidades consumidoras. E as unidades empresariais reais têm uma confiabilidade ainda mais alta (URE / bit = 1e-16).

Em relação à probabilidade de falhas mecânicas, elas são proporcionais ao número de discos e proporcional ao tempo necessário para a reconstrução.

FarO
fonte
1
Oi Olaf! Para mim, essa pergunta parece um pouco específica demais para o hardware do computador para ser uma boa opção para a Matemática , mas você pode perguntar no meta site se eles gostariam de ter sua pergunta. Se for esse o caso, sinalize novamente e teremos o prazer de migrá-lo para você!
slhck
2
Como exatamente você alcança 38% de probabilidade de URE para RAID5 com 3 unidades? Usando URE = 10 ^ 14, HDD = 3,5 * 1024 ^ 4 bytes, recebo 3,8% de URE por unidade e 11,1% para URE durante a reconstrução. Ou seja: 100 * (1- (1- (hdd / ure)) ^ 3). Acho que seus números estão um pouco fora do normal (embora a taxa de falhas práticas seja maior do que a declarada pelos fabricantes). Como as taxas de erro são dadas por bits lidos por unidade e não por bits lidos, acho que a parte em que você usa ^ bit_read está errada. Talvez dê mais detalhes sobre como você calculou essas probabilidades? +1 para uma pergunta interessante. cs.cmu.edu/~bianca/fast07.pdf
Ярослав Рахматуллин
Informação adicionada e cálculos verificados.
FarO

Respostas:

2

Existem vários sites e artigos que tentam abordar esta questão.

Este site possui calculadoras para os níveis de RAID 0, 5, 10/50/60.

O artigo da wikipedia sobre os níveis de RAID possui seções sobre as taxas de falha de RAID 0 e RAID 1.

RAID 0 :

A confiabilidade de um determinado conjunto RAID 0 é igual à confiabilidade média de cada disco dividido pelo número de discos no conjunto:

Ou seja, a confiabilidade (medida pelo tempo médio de falha (MTTF) ou tempo médio entre falhas (MTBF)) é aproximadamente inversamente proporcional ao número de membros - portanto, um conjunto de dois discos é aproximadamente a metade da confiabilidade de um único disco. Se houvesse uma probabilidade de 5% de falha do disco dentro de três anos, em uma matriz de dois discos, essa probabilidade aumentaria para {P} (pelo menos uma falha) = 1 - {P} (nenhuma falha) = 1 - (1 - 0,05) ^ 2 = 0,0975 = 9,75%.

RAID 1 :

Como um exemplo simplificado, considere um RAID 1 com dois modelos idênticos de uma unidade de disco, cada um com uma probabilidade de 5% de que o disco falhe dentro de três anos. Desde que as falhas sejam estatisticamente independentes, a probabilidade de ambos os discos falharem durante o período de três anos é de 0,25%. Assim, a probabilidade de perder todos os dados é de 0,25% durante um período de três anos, se nada for feito na matriz.



Também encontrei vários artigos de blog sobre esse assunto, incluindo este que nos lembra as unidades independentes em um sistema (o I no RAID) pode não ser tão independente, afinal:

A teoria ingênua é que, se o disco rígido 1 tem probabilidade de falha 1/1000 e o mesmo ocorre com o disco 2, a probabilidade de ambas as falhas é de 1 / 1.000.000. Isso pressupõe que as falhas sejam estatisticamente independentes, mas não são. Você não pode simplesmente multiplicar probabilidades assim, a menos que as falhas não sejam correlacionadas. Assumir erroneamente a independência é um erro comum na aplicação de probabilidade, talvez o erro mais comum.

Joel Spolsky comentou sobre esse problema no podcast StackOverflow mais recente. Quando uma empresa cria um RAID, eles podem pegar quatro ou cinco discos que saíram da linha de montagem juntos. Se um desses discos apresentar uma falha leve que o fará falhar após, digamos, 10.000 horas de uso, é provável que todos o façam. Esta não é apenas uma possibilidade teórica. As empresas observaram lotes de discos falhando ao mesmo tempo.

Brad Patton
fonte