Erro de bit único no dispositivo RAID?

6

Pela primeira vez desde que eu possuí um PC (30 anos), experimentei um erro de disco de um bit não detectado e não corrigido. Em uma matriz RAID. A sequência de eventos foi

  1. Carregue uma coleção de imagens digitais (arquivos do Camera Raw) de um cartão CF
  2. Faça algumas edições no Lightroom (que não atualiza o arquivo original)
  3. Fazer backup de tudo em um disco de arquivamento externo (usando o Retrospect)
    ... o tempo passa (cerca de 1 semana) ...
  4. Abra o arquivo novamente no Lightroom - ele está corrompido (uma grande mancha magenta quadrada)
  5. Restaurar uma cópia do disco de arquivamento - a cópia restaurada NÃO está corrompida
  6. Compare os dois arquivos. Há apenas uma diferença de bit ... um byte que era originalmente 0x34 agora é 0xB4

O dispositivo on-line é um par de unidades de 2TB em RAID-1 em uma placa RAID hardware (3WARE 9560SE-4LPML).

Dada a sequência acima, o erro foi claramente introduzido após a etapa 3, pois a cópia arquivada não foi corrompida, portanto, não poderia ter ocorrido durante a gravação original. O arquivo é um arquivo raw da Canon CR2, e o Lightroom nunca atualiza arquivos RAW originais, eles são considerados "negativos digitais" e nunca são atualizados. Em vez disso, ele salva todas as edições como arquivos XMP secundários contendo a sequência de edições aplicadas. A data / hora do arquivo não foi modificada do original.

Claramente, de alguma forma, o erro de bit ocorreu e foi propagado pelo hardware RAID sem produzir um aviso. Verifiquei os logs de erros do RAID e não há nada digno de nota nos últimos 18 meses (desde a última vez que atualizei o software e o firmware).

Para resumir:

  1. Os dados foram originalmente escritos corretamente
  2. Foi lido corretamente quando foi copiado para o backup.
  3. Algum tempo depois, o bit foi invertido no disco (uma vez que nada reescreveu o arquivo).
  4. O hardware RAID está configurado para executar uma "verificação" uma vez por semana. Não detectou o erro.

Isso é simplesmente esquisito. Eu esperaria um erro de interpretação incorreta nos logs de hardware RAID.

Também posso descartar um disco com falha, pois os dados SMART em ambas as unidades mostram zero para todos os atributos de erro aplicáveis:

196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0

e tudo o mais é nominal também.

Alguém tem um cenário em que isso aconteceria sem ser detectado ?

    
por Ex Umbris 10.08.2014 / 06:21

2 respostas

2

Uma possibilidade é um flip aleatório de bit na RAM ou o controlador em leitura na etapa 4. Se os dados foram corrompidos em leitura, você os veria na etapa 4, então, se ainda estivesse em cache, você também os veria na etapa 6 ao comparar arquivos, uma vez que os dados corrompidos em cache ainda podem ser usados.

Para testar esse caso, ligue e desligue todo o hardware para garantir que os caches sejam limpos e tente abrir o arquivo (e executar a comparação com o backup) novamente. Se tudo estiver bem, então este foi o problema (não há como saber em que fase da leitura ocorreu o bit flip, então você terá que considerar isso como um mistério não resolvido).

Se isso falhar, uma segunda possibilidade, ainda mais desagradável, talvez seja uma RAM aleatória (ou, mais provavelmente, no controlador RAID, com base em sua descrição) bit flip on write no passo 1; mas você estava operando em uma boa cópia em cache nas etapas 2 e 3, apesar de uma cópia corrompida existente no disco. Uma semana depois, quando você acessou os dados novamente, é claro que você os leu novamente do disco e acabou com os dados corrompidos que haviam sido gravados originalmente. Isso faz muitas suposições e depende de um pouco de azar. Se este for o caso, você apenas terá que restaurar o arquivo de backup e seguir em frente.

Essas são as únicas duas coisas em que posso pensar, na verdade. Não parece um problema com as próprias unidades. De qualquer forma, já que não há como saber onde no hardware ocorreu o erro, eu recomendo executar um diagnóstico de memória completa apenas para ser seguro, embora a causa seja mais infeliz EMI ou raios cósmicos . Como o canadense Luke mencionou em sua resposta , a ECC RAM, se a sua placa-mãe suportar, protegerá contra esse tipo de evento, a menos no lado da RAM. Na verdade não é incomum a todos.

Este caso acabou sendo o problema do OP, e não a segunda possibilidade.

    
por 11.08.2014 / 05:01
3

Verifique seu carneiro. Sistemas de arquivos como o zfs recomendam memória ecc (verificação de erros e correção de memória) para evitar problemas como este.

Seu controlador de ataque simplesmente escreveu as informações que recebeu e assumiu que as informações eram corretas. Ele não verifica se as informações recebidas estão corretas, apenas que elas foram escritas corretamente.

Sua placa-mãe pode não suportar a memória ecc, mas isso deve corrigir este problema. Também é possível que tenha sido uma explosão solar que mudou esse byte em você, pois quanto mais ram você tiver, maior a chance de ocorrer uma anomalia.

Estou fora da cidade no meu celular, mas posso citar fontes na segunda-feira

    
por 10.08.2014 / 07:08