A podridão por bits nos discos rígidos é um problema real? O que pode ser feito sobre isso?


32

Um amigo está conversando comigo sobre o problema de apodrecer bits em unidades que lançam aleatoriamente, corrompendo dados. Incrivelmente raro, mas com tempo suficiente, isso pode ser um problema e é impossível detectá-lo.

A unidade não consideraria um setor ruim e os backups apenas pensariam que o arquivo foi alterado. Não há soma de verificação envolvida para validar a integridade. Mesmo em uma configuração de RAID, a diferença seria detectada, mas não havia como saber qual cópia espelhada está correta.

Isso é um problema real? E se sim, o que pode ser feito sobre isso? Meu amigo está recomendando o zfs como uma solução, mas não consigo imaginar aplanar nossos servidores de arquivos no trabalho, colocando Solaris e zfs.



Acabei de ter um bom erro SMART em um disco antigo da Seagate de 200 GB. Os bits, eles estão apodrecidas muito :-( É seis meses aquém da garantia de 5 anos, então eu provavelmente vou conseguir um substituto sem muito barulho.
ThatGraemeGuy

Respostas:


24

Primeiro: o seu sistema de arquivos pode não ter somas de verificação, mas o próprio disco rígido as possui. Há o SMART, por exemplo. Uma vez que um pouco demais foi invertido, o erro não pode ser corrigido, é claro. E se você for realmente azarado, os bits podem mudar de forma que a soma de verificação não se torne inválida; o erro nem será detectado. Então, coisas desagradáveis podem acontecer; mas a alegação de que uma inversão aleatória de bits corromperá instantaneamente seus dados é falsa.

No entanto, sim, quando você coloca trilhões de bits no disco rígido, eles não ficam assim para sempre; isso é um problema real! O ZFS pode verificar a integridade toda vez que os dados são lidos; isso é semelhante ao que seu disco rígido já faz, mas é outra salvaguarda para a qual você está sacrificando algum espaço, aumentando a resiliência contra a corrupção de dados.

Quando o seu sistema de arquivos é bom o suficiente, a probabilidade de ocorrer um erro sem ser detectado se torna tão baixa que você não precisa mais se preocupar com isso e pode decidir que as somas de verificação incorporadas ao formato de armazenamento de dados que você está usando são menores. desnecessário.

De qualquer maneira: não, não é impossível detectar .

Mas um sistema de arquivos, por si só, nunca pode garantir que todas as falhas possam ser recuperadas; não é uma bala de prata. Você ainda deve ter backups e um plano / algoritmo para o que fazer quando um erro for detectado.


Ok, de acordo com a wikipedia ( en.wikipedia.org/wiki/Error_detection_and_correction ) os discos rígidos modernos usam CRCs para detectar erros e tentar se recuperar usando a recuperação de erros no estilo de CD. Isso é bom o suficiente para mim.
scobi 23/10/09

1
Mas se o CRC estiver armazenado no mesmo local (setor) dos dados, isso não ajudará em todos os casos de erro. Por exemplo, se houver um erro de posicionamento da cabeça, os dados poderão ser gravados em um setor errado - mas com uma soma de verificação correta => você não poderá detectar o problema. É por isso que as somas de verificação no ZFS são armazenadas separadamente dos dados que protegem.
knweiss

O ZFS tem uma manutenção como o Windows agora? Isso basicamente reescreve os dados regularmente para atualizar a codificação magnética.
TomTom

Os discos rígidos modernos não usam CRCs, eles usam o código Hamming, que é muito diferente. É a mesma coisa que a memória ECC usa. Erros de inversão de um bit podem ser corrigidos, erros de inversão de dois bits podem ser detectados, mas não corrigidos, inversão de três ou mais bits e os dados são realmente danificados. De qualquer forma, não há substituto para backups de dados. O ZFS e outros sistemas de arquivos não oferecem proteção melhor do que o código Hamming nos pratos de uma unidade. Se os dados estiverem danificados, o ZFS não salvará você.
Jody Lee Bruchon

@JodyLeeBruchon Você tem uma fonte no código Hamming sendo usada predominantemente agora? A coleta de informações que venho fazendo ultimamente indicou que os fabricantes de unidades ainda estão usando o CRC-RS. 1 2
Ian Schoonover

16

Sim, é um problema, principalmente porque os tamanhos das unidades aumentam. A maioria das unidades SATA possui uma taxa de URE (erro incorreto de leitura) de 10 ^ 14. Ou para cada 12 TB de dados lidos estatisticamente, o fornecedor da unidade diz que a unidade retornará uma falha de leitura (normalmente você pode consultá-los nas folhas de especificações da unidade). A unidade continuará funcionando bem em todas as outras partes da unidade. As unidades Enterprise FC e SCSI geralmente têm uma taxa de URE de 10 ^ 15 (120 TB) junto com um pequeno número de unidades SATA, o que ajuda a reduzi-la.

Eu nunca vi discos pararem de girar exatamente ao mesmo tempo, mas tive um volume raid5 que atingiu esse problema (há 5 anos, com unidades PATA de consumidor de 5400 RPM). A unidade falha, é marcada como morta e ocorre uma reconstrução na unidade sobressalente. O problema é que, durante a reconstrução, uma segunda unidade não consegue ler esse pequeno bloco de dados. Dependendo de quem está realizando a invasão, todo o volume pode estar morto ou apenas esse pequeno bloco pode estar morto. Supondo que apenas um bloco esteja morto, se você tentar lê-lo, receberá um erro, mas se escrever nele, a unidade o remapeará para outro local.

Existem vários métodos para se proteger: o raid6 (ou equivalente) que protege contra falhas duplas no disco é o melhor; outros são um sistema de arquivos com reconhecimento de URE, como o ZFS, usando grupos de raides menores, para que, estatisticamente, você tenha uma chance menor de atingir a unidade URE limites (unidades grandes espelhadas ou unidades menores raid5), a limpeza de disco e o SMART também ajudam, mas não são realmente uma proteção em si, mas são usados ​​além de um dos métodos acima.

Eu gerencio quase 3000 eixos em matrizes, e as matrizes estão constantemente limpando as unidades à procura de UREs latentes. E recebo um fluxo razoavelmente constante deles (toda vez que encontra um, o corrige antes da falha da unidade e me alerta), se eu estivesse usando o raid5 em vez do raid6 e uma das unidades estivesse completamente morta ... estar com problemas se atingir determinados locais.


2
Em que unidades você está falando? "10 ^ 14" não é uma "taxa".
Jay Sullivan

2
A unidade seria, por exemplo, "10 ^ 14 bits lidos por erro", que é igual a 12 TB lidos por erro.
Jo Liss

2
E, claro, tendo em mente que a taxa de erro é normalmente citada em termos de erros completos do setor por bits lidos. Portanto, quando um fabricante indica taxas de URE em 10 ^ -14, o que realmente significa é que a probabilidade de qualquer setor aleatório ler um URE é de 10 ^ -14 e, se o fizer, o setor inteiro volta como ilegível. Isso e o fato de que isso é estatística; no mundo real, os UREs tendem a aparecer em lotes.
um CVn

9

Geralmente, os discos rígidos não codificam os bits de dados como domínios magnéticos únicos - os fabricantes de discos rígidos sempre souberam que os domínios magnéticos poderiam inverter e criar detecção e correção de erros nas unidades.

Se um pouco for invertido, a unidade contém dados redundantes suficientes para que possam e serão corrigidos na próxima vez que o setor for lido. Você pode ver isso se verificar as estatísticas SMART na unidade, como a 'Taxa de erro corrigível'.

Dependendo dos detalhes da unidade, ela deve conseguir se recuperar de mais de um bit invertido em um setor. Haverá um limite para o número de bits invertidos que podem ser corrigidos silenciosamente, e provavelmente outro limite para o número de bits invertidos que podem ser detectados como um erro (mesmo que não haja mais dados confiáveis ​​suficientes para corrigi-los)

Isso tudo se soma ao fato de que os discos rígidos podem corrigir automaticamente a maioria dos erros à medida que ocorrem e podem detectar com segurança a maior parte do restante. Você precisaria ter um grande número de erros de bits em um único setor, tudo isso ocorrendo antes que o setor fosse lido novamente e os erros teriam que ser tais que os códigos internos de detecção de erros os vejam como dados válidos novamente, antes de você jamais teria um fracasso silencioso. Não é impossível, e tenho certeza que as empresas que operam datacenters muito grandes veem isso acontecer (ou melhor, ocorre e não veem isso acontecer), mas certamente não é um problema tão grande quanto você imagina.


2
Na verdade, eu regularmente tenho erros de rotação de bits (em partes que não leio muito), dos quais o sistema se recupera silenciosamente (incorretamente). Se pelo menos me notificasse que havia podridão por bits, eu poderia reler os dados para recuperá-los antes que se tornassem irrecuperáveis; e se irrecuperável, eu seria capaz de compará-lo com o outro disco rígido.
26414 Alex

Alex, verifique seus dados do HDD SMART e a RAM do sistema para verificar se não há outro problema causando a corrupção. A podridão por bits / corrupção aleatória é extremamente rara, portanto pode haver algo mais acontecendo com sua máquina.
Brian D.

@BrianD. Um problema era que eu mantinha os discos rígidos dentro do material de embalagem (isolado); isso fazia com que os discos rígidos esquentassem mais de 60 ° C durante o trabalho, por dias a fio. Isso soa como uma razão legítima pela qual a podridão por bits pode ter ocorrido?
31416 Alex

Definitivamente, não é recomendado, pois a maioria dos HDDs possui pequenos orifícios de ar que não devem ser cobertos para funcionar corretamente. Independentemente de o seu problema ter sido pouco rotativo ou qualquer outra coisa, eu executaria um diagnóstico completo no PC para verificar se tudo está funcionando corretamente.
Brian D.

4

Os discos rígidos modernos (desde 199x) não têm apenas somas de verificação, mas também ECC, que podem detectar e corrigir uma podridão de bits "aleatória". Veja: http://en.wikipedia.org/wiki/SMART .

Por outro lado, certos erros no firmware e nos drivers de dispositivos também podem corromper dados em raras ocasiões (caso contrário, o controle de qualidade detectaria os erros) que seriam difíceis de detectar se você não tiver somas de verificação de nível superior. Os primeiros drivers de dispositivo para SATA e NICs haviam corrompido os dados no Linux e no Solaris.

As somas de verificação do ZFS visam principalmente os erros no software de nível inferior. Um sistema mais recente de armazenamento / banco de dados como o Hypertable também possui somas de verificação para cada atualização para evitar bugs nos sistemas de arquivos :)


3

Teoricamente, isso é motivo de preocupação. Na prática, isso é parte do motivo pelo qual mantemos backups filhos / pais / avós. Os backups anuais precisam ser mantidos por pelo menos 5 anos, IMO, e se você tiver um caso disso voltando além disso, obviamente o arquivo não é tão importante.

A menos que você esteja lidando com bits que possam potencialmente liquefazer o cérebro de alguém , não tenho certeza se o risco versus a recompensa está no ponto de alterar os sistemas de arquivos.


1
Não vejo como os backups filho / pai / avó ajudam. Não há como saber com esse sistema se um pouco é invertido porque um usuário pretendia alterá-lo ou se a unidade o fez por conta própria. Não sem uma soma de verificação de algum tipo.
scobi 23/10/09

Ter vários backups não ajudará se você não souber que os dados estão bons. Você pode verificar manualmente seus arquivos, mas o ZFS faz muito mais automaticamente e facilita o gerenciamento do sistema de arquivos.
23409 Amok

1
Ter backups com mais de uma semana / mês aumenta sua chance de ter uma boa cópia do arquivo. Eu provavelmente poderia ter sido mais claro sobre isso.
23415 Kara Marfia

1
O problema é: como você sabe que tem uma cópia incorreta? E como você sabe qual cópia copiada é a melhor? De maneira automatizada.
scobi 23/10/09

Eu vi talvez um arquivo a cada poucos anos caia em corrupção que pode ser resultado de apodrecimento de bits, mas eu posso estar sofrendo da Síndrome dos Pequenos Peixes. Eu pude entender as conversas sobre backups serem inúteis, e vou excluir se for ofensivo. Era tempo bem gasto lendo as outras respostas, independentemente. ;)
Kara Marfia 23/10/09

2

Sim, é um problema.

Essa é uma das razões pelas quais o RAID6 está em voga (assim como o aumento do tamanho do HD aumenta o tempo para reconstruir uma matriz). Ter dois blocos de paridade permite um backup adicional.

Os sistemas RAID agora também fazem a limpeza por RAID que lê periodicamente os blocos de disco, verifica as paridades e o substitui se achar que um bloco está ruim.


Cuidado, a integridade dos dados não é um recurso de todos os sistemas RAID.
Duffbeer703 23/10/09

1
Com unidades de terabyte, existem tantos bits que compartilham o destino, e a área de armazenamento físico de um bit é tão pequena que esse problema se torna mais importante. Ao mesmo tempo, a probabilidade de falha aumenta tanto com as unidades de terabyte que o RAID6 não é suficiente, a menos que você esteja colocando muitas unidades no pool, digamos 8 ou mais. Com um número menor de unidades, é melhor usar uma faixa de espelhos, também conhecida como RAID 10. Tanto o RAID 6 (raidz2) quanto o RAID 10 (zpool criam espelho mypool c0t1d0 c0t2d0 espelho c0t3d0 c0t4d0) são possíveis no ZFS.
22411 Michael Dillon

O RAID não pode dizer quais dados são bons e quais não são, portanto, não podem corrigir erros, apenas podem detectá-los.
Amok

Amuck: Não como parte do "RAID Standard", per se, mas avançados sistemas RAID (firmwares, etc.) fazer isso
Matt Rogish

@ Michael Dillion - A confiabilidade do RAID6 não aumenta à medida que você aumenta o número de unidades. Para todos os dados, há apenas os dados originais + 2 paridade. Aumentar o número de unidades é pior para a confiabilidade, pois aumenta a possível taxa de falhas da unidade sem aumentar a redundância de nenhum dado. O único motivo para aumentar o número de unidades é aumentar o tamanho do armazenamento disponível.
Brian D.

1

Em relação à declaração do OP sobre o RAID, não entendo quais dados são bons ou ruins.

Os controladores RAID usam no mínimo bits de paridade (ímpares / pares) em cada faixa de dados. Isto é para tudo; as faixas de dados em disco e as faixas de dados de paridade (backup).

Isso significa que, para qualquer tipo de RAID que possui distribuição por redundância (RAID 5/6), o controlador pode determinar com precisão se a faixa de dados original foi alterada e se a faixa de dados de redundância foi alterada.

Se você introduzir uma segunda faixa redundante como o RAID6, precisará ter três faixas de dados, em três unidades diferentes, corrompidas, que correspondem aos mesmos dados reais do arquivo. Lembre-se de que a maioria dos sistemas RAID usa faixas de dados relativamente pequenas (128kb ou menos), de modo que as chances de a "podridão de bits" alinhada com os mesmos 128kb, do mesmo arquivo, são praticamente impossíveis.


0

É um problema do mundo real, sim, mas a questão é se você deve se preocupar com isso ou não.

Se você tiver apenas um disco rígido cheio de fotos, pode não valer a pena. Está cheio de dados científicos importantes, pode ser outro tipo de história, você entendeu.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.