跳转至主要内容
  • 快速、轻松地下订单
  • 查看订单并跟踪您的发货状态
  • 创建并访问您的产品列表
  • 使用“Company Administration”(公司管理),管理Dell EMC站点、产品和产品级联系人。

Falhas duplas e perfurações em arrays RAID

摘要: Os arrays RAID não estão imunes aos erros de dados. Este artigo fornece recomendações para evitar e atenuar esses problemas.

本文可能已自动翻译。如果您对其质量有任何反馈,请使用此页面底部的表单告知我们。

文章内容


症状

Este artigo fornece informações sobre erros de dados, falhas duplas e perfurações em um array RAID. Além disso, existem recomendações para evitar/atenuar esses problemas e de como solucioná-los depois de sua ocorrência.

Sumário
  1. Erros de dados e falhas duplas
  2. Perfurações: O que são e como são causadas?
  3. Evitar problemas antes que eles ocorram e solucionar perfurações depois de sua ocorrência

     

Capítulo 1: Erros de dados e falhas duplas

Os arrays RAID não estão imunes aos erros de dados.  O controlador RAID e o firmware do disco rígido contêm funcionalidades para detectar e corrigir muitos tipos de erros de dados antes que eles sejam gravados em um array/disco.  Usar firmware desatualizado pode fazer com que dados incorretos sejam gravados em um array/disco porque ele pode não ter os recursos de manuseio/correção de erros disponíveis em versões mais recentes de firmware.


Erros de dados também podem ser causados por blocos físicos defeituosos.  Por exemplo, isso pode ocorrer quando a cabeça de leitura/gravação bate no prato giratório (conhecido como "Head Crash").  Os blocos também podem apresentar defeitos com o passar do tempo devido à degradação da capacidade do prato de armazenar bits magneticamente em um local específico.  Em geral, os blocos defeituosos devido à degradação do prato podem ser lidos com sucesso.  Esse bloco defeituoso pode ser detectado apenas de forma intermitente ou com um diagnóstico estendido dos discos.  


Um bloco defeituoso, também conhecido como um Endereço de Bloco Lógico (LBA) defeituoso, também pode ser causado por erros de dados lógicos.  Isso ocorre quando os dados são gravados incorretamente em um disco, mesmo que a gravação seja relatada como bem-sucedida.  Além disso, dados em bom estado armazenados em um disco podem ser alterados acidentalmente.  Um exemplo é um "bit flip", que pode ocorrer quando a cabeça de leitura/gravação passa ou grava em um local próximo e faz com que os dados na forma de zeros e uns mudem para um valor diferente.  Tal condição faz com que a consistência dos dados seja corrompida.  O valor dos dados em um bloco específico é diferente dos dados originais e pode não corresponder mais à soma de verificação (checksum) dos dados.  O LBA físico está em boas condições e pode ser gravado com sucesso, mas atualmente contém dados incorretos e pode ser interpretado como um bloco defeituoso.


Os LBAs defeituosos são comumente relatados como o Código de detecção 3/11/0. A chave de detecção 3 é um Erro médio.  O código de detecção adicional e o outro qualificador de detecção de 11/00 é definido como um Erro de leitura não recuperado.  Não há tentativa de correção do bloco e não há determinação feita sobre se o bloco defeituoso foi causado por um defeito no prato do disco ou por um erro de dados devido a outros fatores.  A existência de um Código de detecção 3/11/00 não significa automaticamente que a unidade física falhou ou que deve ser substituída.


Os controladores RAID de hardware da Dell oferecem recursos como Patrol Read e Verificação de consistência para corrigir diversas situações de erro de dados.  O Patrol Read opera por padrão como uma tarefa de segundo plano automatizada que verifica todos os blocos individuais em um disco rígido para garantir que os dados possam ser lidos corretamente.  O Patrol Read tentará corrigir os blocos defeituosos ou remapear os blocos incorrigíveis para blocos reservados.  A Verificação de consistência é uma função ativada manualmente (que também pode ser agendada) que compara todos os discos em um array para garantir que os dados e a redundância correspondam corretamente.  Por exemplo, três discos em um array RAID 5 serão comparados para garantir que os dados e a paridade estejam usando os valores corretos.  Se for detectado um erro único, os dados restantes e/ou a paridade serão usados para regravar e corrigir o valor inválido.  Da mesma forma, em um array RAID 1, os dados em uma unidade serão comparados com a outra unidade para garantir que os dados sejam espelhados corretamente.


Qualquer erro único em um array RAID que não for corrigido poderá causar erros mais graves no array, especialmente quando ocorre um segundo erro.  Um ou mais erros únicos não causarão a perda de dados, desde que o array permaneça em um estado ideal.  Ainda há dados suficientes e redundância para operar normalmente enquanto o array estiver em um estado ideal.


Devido à possibilidade de o controlador corrigir erros durante as operações normais, nem sempre é fácil detectar quando há problemas subjacentes nos dados.  Raramente existem erros ou alertas no registro do controlador, nos registros de hardware ou nos registros de eventos do sistema operacional quando existem uma ou mais condições de erros únicos.  Por esse motivo, um array pode parecer que está funcionando normalmente por muito tempo, apesar da presença de erros de consistência e/ou erros únicos.



SLN111497_en_US__11
Figura 1: Várias falhas únicas em um array RAID 5 - array ideal


Conforme mostrado na Figura 1, o array tem vários erros.  No entanto, visto que há apenas um erro único em qualquer faixa, o controlador ainda pode acessar todos os dados devido à redundância do RAID 5.  Se o erro ocorrer no segmento de paridade, todos os dados ficarão intactos e o erro não terá impacto sobre as operações de leitura.  Se o erro ocorrer em um segmento de dados, uma comparação de XOR deverá ocorrer entre os dados em boas condições e os pedaços de paridade em boas condições para recalcular o segmento de dados ausente/inválido.  Em ambos os casos, como há apenas um erro único em qualquer faixa, há redundância suficiente disponível para acessar todos os dados com sucesso.

Quando uma ou mais unidades em um array RAID têm erros de dados e outra unidade no array não é mais um membro ativo no array devido a uma falha na unidade, configuração externa, remoção de unidade ou qualquer outro motivo, isso cria uma condição conhecida como "Falha dupla".  Uma condição de falha dupla causa a imediata perda de dados de qualquer informação nas faixas afetadas.



SLN111497_en_US__22
Figura 2: Falha dupla com uma unidade com falha (dados nas faixas 1 e 2 perdidos) - array degradado


É possível que uma condição de falha dupla ocorra com o array permanecendo em um estado ideal.  Isso ocorre em LBAs idênticos defeituosos em vários discos rígidos.  Essa condição é extremamente rara devido ao grande número de LBAs nos discos rígidos maiores atuais.  É muito improvável que o mesmo LBA em vários discos rígidos apresente defeitos ao mesmo tempo.

A execução periódica das operações de Verificação de consistência corrigirá falhas únicas, seja um bloco físico defeituoso ou um erro lógico dos dados. A Verificação de consistência também mitigará o risco de uma condição de falha dupla em caso de erros adicionais.  Quando não há mais de um erro único em qualquer faixa, uma Verificação de consistência pode quase sempre eliminar o erro.

Voltar ao início
 
 

Capítulo 2: Perfurações: O que são e como são causadas?


Uma perfuração é um recurso dos controladores PERC da Dell projetado para permitir que o controlador restaure a redundância do array, apesar da perda de dados causada por uma condição de falha dupla.  Outro nome para uma perfuração é "reconstrução com erros".  O controlador RAID detectará uma falha dupla e, devido à insuficiência de redundância para recuperar os dados na faixa afetada, o controlador criará uma perfuração nessa faixa e permitirá que a reconstrução continue.

 
  • Qualquer condição que faça com que os dados fiquem inacessíveis na mesma faixa em mais de um disco é uma falha dupla
  • Falhas duplas causam a perda de todos os dados dentro da faixa afetada
  • Todas as perfurações são falhas duplas, mas nem todas as falhas duplas são perfurações


SLN111497_en_US__33
Figura 3: Faixas perfuradas (os dados nas faixas 1 e 2 foram perdidos devido à condição de falha dupla) - array ideal


Sem o recurso de perfuração, a restauração do array falharia e deixaria o array em um estado degradado.  Em alguns casos, as falhas podem fazer outros discos falharem e fazer com que o array entre em um estado de não funcionamento off-line.  A perfuração de um array não afeta a capacidade de boot ou de acessar qualquer dado no array.  Qualquer dano ou perda de dados devido a uma condição de falha dupla já ocorreu. 



As perfurações podem ocorrer em uma destas duas situações:
 
  • A falha dupla já existe (dados já perdidos)
    • Um erro de dados em um disco on-line é propagado (copiado) para um disco de reconstrução
 
  • A falha dupla não existe (os dados são perdidos quando ocorre o segundo erro)
    • Enquanto estiver em um estado degradado, se um bloco defeituoso ocorrer em um disco on-line, esse LBA está perfurado


A vantagem de perfurar um array é manter o sistema disponível na produção e a redundância do array ser restaurada.  Os dados na faixa perfuradas foram perdidos, independentemente de ocorrer ou não a perfuração.  A principal desvantagem do método de LSI é que, mesmo que o array tenha uma perfuração, erros incorrigíveis continuarão a ser encontrados sempre que os dados afetados (se houver) forem acessados. 


A perfuração pode ocorrer em três locais.  Primeiro, uma perfuração pode ocorrer em um espaço em branco sem dados.  Essa faixa ficará inacessível, mas já que não há dados nesse local, não haverá impacto significativo.  Qualquer tentativa de um SO de gravar em uma faixa perfurada falhará e os dados serão gravados em um local diferente. 


Segundo, uma perfuração pode ocorrer em uma faixa que contenha dados que não sejam essenciais, como um arquivo LEIAME.TXT.  Se os dados afetados não forem acessados, nenhum erro será gerado durante uma E/S normal.  Tentativas de executar um backup de sistema de arquivos falharão em arquivos afetados por uma perfuração.  A realização de operações de Verificação de consistência ou de Patrol Read gerará o Código de detecção:  3/11/00 para o LBA e/ou faixas aplicáveis.


Terceiro, uma perfuração pode ocorrer em um espaço de dados acessado.  Nesse caso, a perda de dados pode causar inúmeros erros.  Os erros podem ser pequenos erros espelhados que não prejudicam o ambiente de produção.  Também podem ser mais graves e impedir o sistema de inicializar para um sistema operacional ou fazer com que aplicativos falhem.


 Um array perfurado deverá ser excluído e recriado para eliminar a perfuração em algum momento.  Esse procedimento faz com que todos os dados sejam apagados. Os dados deverão ser recriados ou restaurados do backup depois de eliminada a perfuração.  A resolução para uma perfuração pode ser agendada para um horário que seja mais vantajoso para as necessidades da empresa.


Se os dados da faixa perfurada forem acessados, erros continuarão sendo relatados pelos LBAs defeituosos afetados sem correção possível disponível. Por fim (isso pode levar minutos, dias, semanas, meses etc.), a tabela de Gerenciamento de Bloco Defeituoso (BBM) será preenchida, fazendo com que um ou mais discos sejam indicados como "falha preditiva". De acordo com a Figura 3, o disco 0 provavelmente será aquele que será marcado como falha preditiva devido aos erros do disco 1 e do disco 2 serem propagados para ele. A unidade 0 pode estar funcionando normalmente, e substituir a unidade 0 apenas fará com que a unidade substituta também seja marcada como falha preditiva posteriormente.


Uma Verificação de consistência realizada após uma perfuração ser induzida não resolverá o problema.  É por isso que é muito importante fazer uma Verificação de consistência regularmente. É especialmente importante realizá-la sempre que possível antes de substituir os discos. O array deve estar em um estado ideal para realizar a Verificação de consistência.


Um array RAID que contém um erro de dados único em conjunto com um evento de erro adicional (por exemplo, uma falha de disco rígido) causa uma perfuração quando a unidade com falha ou a unidade substituta é reconstruída no array. Por exemplo, um array RAID 5 em estado ideal inclui três membros: disco 0, disco 1 e disco 2. Se o disco 0 falhar (Figura 2) e for substituído, os dados e a paridade restantes nos discos 1 e 2 serão usados para reconstruir as informações ausentes de volta no disco substituto 0. No entanto, se houver um erro de dados no disco 1, quando a operação de reconstrução chegar a esse erro, não haverá informações suficientes dentro da faixa para reconstruir os dados perdidos nessa faixa. O disco 0 não tem dados, o disco 1 tem dados inválidos e o disco 2 tem dados em bom estado enquanto é reconstruído. Existem vários erros dentro dessa faixa. O disco 0 e o disco 1 não contêm dados válidos, portanto, os dados nessa faixa não podem ser recuperados e foram perdidos.  O resultado, como mostrado na Figura 3, é que perfurações (nas faixas 1 e 2) são criadas durante a reconstrução. Os erros são propagados para o disco 0. 


As perfurações no array restauram a redundância e o deixam novamente em um estado ideal.  Isso deixa o array protegido contra perdas de dados adicionais caso ocorram mais erros ou falhas de discos.
 
Voltar ao início
 

Capítulo 3: Evitar problemas antes que eles ocorram e solucionar perfurações depois de sua ocorrência


Pode ser tentador operar sob a premissa de que "em time que está ganhando não se mexe". Isso pode ser válido em várias áreas, mas, para melhor proteger e gerenciar subsistemas de armazenamento, é altamente recomendável fazer a manutenção de rotina regularmente. A manutenção proativa pode corrigir erros existentes e impedir a ocorrência de alguns erros. Não é possível evitar totalmente a ocorrência de erros, mas a maioria dos erros graves pode ser mitigada significativamente com a manutenção proativa. Para subsistemas de armazenamento e RAID, essas etapas são:

 
  • Atualizar os drivers e o firmware em controladores, discos rígidos, backplanes e outros dispositivos
  • Executar as operações de Verificação de consistência regularmente
  • Analisar os registros e procurar indicações de problemas

Essa análise não precisa ser altamente técnica. Uma simples revisão superficial dos registros em busca de indicações extremamente óbvias de possíveis problemas pode ajudar
Entre em contato com o suporte técnico da Dell se tiver dúvidas


É muito importante garantir que o firmware está atualizado. O firmware é o local em que fica toda a lógica para a operação de um dispositivo. Ele fornece a funcionalidade e os recursos do dispositivo, juntamente com uma variedade de funções de manuseio e correção de erros. Manter o firmware atualizado pode garantir melhor desempenho e menos erros. A atualização do firmware também pode adicionar novos recursos e melhorias.


O firmware pode ficar em vários locais. Os controladores RAID contêm firmware, bem como todos os discos rígidos instalados em um sistema ou array. Backplanes e compartimentos externos também contêm firmware que pode afetar a operação de unidades e arrays contidos nele.


Outra recomendação de manutenção proativa é executar uma "Verificação de consistência".  A Verificação de consistência é uma operação manual porque consome uma parte da largura de banda total disponível do controlador RAID. No entanto, a Verificação de consistência pode ser programada para um momento em que o desempenho será menos afetado.


A Verificação de consistência procurará blocos defeituosos nas unidades, mas o mais importante é que ela comparará os dados no array para garantir que todas as partes correspondem corretamente. Quando encontrar um problema, ela determinará quais dados devem ser semelhantes e irá corrigi-los, verificando os dados em outros discos no array. A correção de erros de dados quando eles são relativamente pequenos é a melhor forma de atenuar o risco de perfurações causadas por erros de dados existentes em conjunto com um segundo erro ou uma segunda falha. A existência de falhas duplas e perfurações pode causar a perda de produtividade durante o tempo necessário para restaurar os arrays e os dados para um estado de funcionamento ou até mesmo a perda completa de todos os dados.


Quando uma falha dupla ou uma condição de perfuração existir, geralmente haverá perda de dados. Se o local desses erros for um espaço em branco ou um espaço de dados não essenciais, o impacto imediato sobre a entrada de dados em um ambiente de produção será relativamente pequeno. No entanto, a presença desses erros pode significar que um problema mais sério pode existir. Erros de hardware e firmware desatualizado podem precisar de atenção imediata.


Se houver uma condição conhecida ou suspeita de falha dupla ou perfuração, siga estas etapas para minimizar o risco de problemas mais graves:

 
  • Faça uma Verificação de consistência (o array dever estar no estado ideal)
  • Determine se há problemas de hardware
  • Verifique o registro do controlador
  • Execute o diagnóstico de hardware
  • Entre em contato com o suporte técnico da Dell, conforme necessário

Se essas etapas já tiverem sido realizadas, há outros problemas. As perfurações podem fazer com que os discos rígidos passem para um status de falha preditiva ao longo do tempo. Erros de dados propagados para um disco serão reportados como erros de mídia no disco, mesmo que não existam problemas de hardware reais. Cada vez que o LBA é acessado, um erro é relatado. Depois que o registro de erros estiver cheio, a unidade se reportará como falha preditiva.


Um único LBA perfurado em uma unidade pode ser relatado muitas vezes. Dependendo do número de perfurações, é possível que vários discos em um array sejam relatados como falha preditiva. Substituir o disco com falha preditiva fará com que as perfurações existentes sejam propagadas novamente para o disco substituto, o que acabará fazendo com que o disco substituto também seja sinalizado como falha preditiva. Nesse caso, a única ação corretiva é resolver a condição de perfuração.


Olhando a Figura 3, podemos ver que há uma perfuração nas faixas 1 e 2. Substituir os discos rígidos não resolverá esse problema, pois não há redundância de dados suficiente para reconstruir os dados originais. Todos os dados contidos nas faixas perfuradas são perdidos (a menos que sejam mantidos em um backup anterior). Lembre-se de que uma perfuração não causa a perda de dados, uma condição de falha dupla causa a perda de dados. Uma perfuração é o meio de restaurar a redundância para um array que contenha uma falha dupla.
 

 

Nota: Este é o processo usado para resolver a maioria das perfurações. Talvez não seja necessário executar todas essas etapas para resolver o problema. Se a execução dessas etapas não solucionar um problema, entre em contato com o Suporte técnico da Dell para obter assistência adicional.

 

 

Advertência: A execução destas etapas resultará na perda de todos os dados do array. Certifique-se de estar preparado para fazer a restauração do backup ou por outro meio antes de executar estas etapas. Tenha cuidado para que a execução destas etapas não afete outros arrays.
  1. Descartar o cache preservado (se existir)
  2. Limpar configurações externas (se houver)
  3. Excluir o array
  4. Deslocar os discos em uma posição (usando a Figura 1, mover o disco 0 para o slot 1, o disco 1 para o slot 2 e o disco 2 para o slot 0)
  5. Recriar o array conforme desejado
  6. Executar uma inicialização completa do array (não uma inicialização rápida)
  7. Executar uma operação de Verificar consistência no array

Se a operação de verificar consistência for concluída sem erros, você poderá afirmar com certeza que o array agora está íntegro e a perfuração foi removida. Os dados podem agora ser restaurados para o array íntegro.


Em casos mais graves, o problema não pode ser solucionado e os erros podem persistir, apesar da execução dessas etapas. Se a execução dessas etapas não solucionar um problema, entre em contato com o Suporte técnico da Dell para obter assistência adicional.


Pode ser necessário analisar as perfurações mais detalhadamente para determinar quais são as unidades em comum. Por exemplo, na Figura 3, o registro do controlador indica uma perfuração entre os discos 0 e 1 e uma perfuração entre os discos 0 e 2. O disco 0 é o disco em comum. Siga as mesmas etapas acima, mas antes remova completamente os discos em comum. Usando o exemplo da Figura 1, remova o disco 0 e, em seguida, siga as etapas descritas. Crie o array usando os discos restantes (1 e 2). Quando terminar e depois de a Verificação de consistência determinar a integridade do array, recoloque o disco 0 e repita as etapas com todas as unidades ou, usando os recursos de RLM (Migração do Nível de RAID) e/ou OCE (Expansão da Capacidade On-line), recoloque os discos restantes no array.


As unidades sinalizadas como falha preditiva devem ser removidas e não incluídas no processo de recuperação. Novamente, usando a Figura 3 como exemplo, se o disco 0 estiver como falha preditiva, remova-o. Em seguida, realize as etapas descritas acima. Como há apenas 2 unidades restantes, o array RAID criado é um RAID 1 em vez de um RAID 5. Depois de obter um disco substituto 0 (devido à falha preditiva), execute as etapas novamente, incluindo todas os 3 unidades, ou adicione o disco 0 no array existente usando o RLM e altere-o de um RAID 1 com 2 unidades para um RAID 5 com 3 unidades.


O processo pode ser assustador, especialmente considerando a possibilidade de perda de dados. Mas o velho ditado, "mais vale prevenir do que remediar", com certeza é válido nesse caso. A experiência tem mostrado que praticamente todas as condições de falha dupla e perfuração poderiam ter sido evitadas pela realização de manutenção proativa em hardware e arrays RAID.
 

 

Nota: O monitoramento eficiente do sistema permite que os problemas sejam detectados e corrigidos em tempo hábil, o que também reduz o risco de problemas mais graves.


 

Artigo relacionado
PERC - Como corrigir uma perfuração no RAID

 

Voltar ao início

 

原因

-

解决方案

-

文章属性


受影响的产品

Servers

上次发布日期

25 3月 2022

版本

6

文章类型

Solution