Ultimamente, tenho estudado RAID5 Vs RAID6 e continuo vendo que o RAID5 não é mais seguro o suficiente por causa das classificações de URE e do tamanho crescente das unidades. Basicamente, a maior parte do conteúdo encontrado diz que, no RAID5, se houver uma falha no disco, se o restante de sua matriz for de 12 TB, você terá quase 100% de chance de encontrar um URE e perder seus dados.
A figura de 12 TB vem do fato de os discos serem classificados em 10 ^ 14 bits lidos para atingir um URE.
Bem, há algo que eu não entendo aqui. Uma leitura é feita pelo chefe que está no setor, o que pode fazer a leitura falhar é o chefe que morre ou o setor morre. também pode ser que a leitura não funcione por algum outro motivo (não sei, como uma vibração que fez a cabeça pular ...). então, deixe-me abordar todas as três situações:
- a leitura não funciona: isso não é irrecuperável, certo? pode ser tentado novamente.
- a cabeça morre: isso com certeza seria irrecuperável, mas isso também significa que o prato cheio (ou pelo menos o lado) seria ilegível, seria mais alarmante, não?
- o setor morre: também totalmente irrecuperável, mas aqui não entendo por que o disco de 4 TB é classificado em 10 ^ 14 para o URE e o 8TB também é classificado em 10 ^ 14 para o URE, isso significaria os setores no 8TB (provavelmente nova tecnologia) são metade da confiabilidade dos 4TB, o que não faz sentido.
Como você vê, dos três pontos de falha identificados, nenhum faz sentido. Então, o que exatamente é um URE, quero dizer concretamente?
Existe alguém que possa me explicar isso?
Editar 1
Após a primeira onda de respostas, parece que o motivo está falhando. O bom é que o firmware, o controlador RAID e o sistema de arquivos OS + possuem procedimentos para detectar isso e realocar os setores mais cedo.
Bem, agora eu sei o que é um URE (na verdade, o nome é bastante auto-explicativo :)).
Ainda estou intrigado com as causas subjacentes e principalmente com a classificação estável que elas dão.
Alguns atribuíram o setor defeituoso a fontes externas (ondas cósmicas). Surpreende-me então que a taxa de URE seja então baseada na contagem de leituras e não na idade; as ondas cósmicas devem realmente impactar mais um disco mais antigo simplesmente porque foi exposto mais, acho que isso é mais uma fantasia, embora eu possa estar errado.
Agora vem a outra razão que se relaciona ao desgaste do disco e alguns apontam que densidades mais altas dão domínios magnéticos mais fracos, que fazem totalmente sentido e eu seguiria a explicação. Porém, como é bem explicado aqui , os discos mais novos tamanhos diferentes são obtidos principalmente pela colocação de mais ou menos do mesmo prato (e depois da mesma densidade) no chassi do disco rígido. Os setores são os mesmos e todos devem ter a mesma confiabilidade; portanto, os discos maiores devem ter uma classificação mais alta que os discos menores, com os setores sendo menos lidos; esse não é o caso, por que? Isso explicaria por que os discos mais novos com tecnologia mais recente não obtêm uma classificação melhor do que os antigos, simplesmente porque o melhor ganho em tecnologia é compensado pela perda devido à maior densidade.
fonte
Respostas:
Um URE é um erro de leitura irrecuperável. Aconteceu algo que causou uma falha na leitura de um setor que a unidade não pode corrigir. Os componentes eletrônicos da unidade são sofisticados; eles apenas transmitem os dados se tiverem conseguido lê-los corretamente no disco. O sistema eletrônico do inversor tentará várias vezes ler um setor defeituoso antes de declarar danificado.
O que causa o erro de leitura - eu não sou um especialista aqui (o movimento do braço se segue), mas impulsionar o envelhecimento pode fazer com que as tolerâncias de fabricação se tornem relevantes. Domínios magnéticos podem ficar enfraquecidos. Os raios cósmicos podem causar danos, etc. Essencialmente, é uma falha aleatória.
Como isso afeta o RAID 5?
Um RAID 5 consiste em distribuição de nível de bloco com paridade distribuída. Os blocos de paridade são calculados XORing os bits dos blocos de dados juntos. A função XOR basicamente diz que, se todos os bits forem iguais, o resultado será 0, caso contrário, será 1. Ao calcular a paridade, você pega os 2 primeiros bits e os XOR e, em seguida, XOR, em seguida, XOR o resultado com o próximo bit e assim por diante, por exemplo
A natureza da função XOR é tal que, se algum disco morre e é substituído, os dados que deveriam estar nele podem ser reconstruídos a partir dos discos restantes.
Como você pode ver, os dados danificados podem ser reconstruídos pelo XOR, com os dados e a paridade restantes.
Como um URE afeta isso?
Um URE é significativo apenas durante uma reconstrução do RAID 5.
Quando você reconstrói um RAID 5, há uma grande quantidade de leituras a serem feitas. Todo bloco de dados precisa ser lido para reconstruir os dados no novo disco. Se ocorrer um URE, os dados do bloco relevante não poderão ser recuperados, portanto seus dados serão inconsistentes. Para discos suficientemente grandes em um R5 suficientemente grande, o número de bits lidos para reconstruir o disco substituído excede o valor URE de, por exemplo, 1 bit em 10 ^ 14 lidos.
fonte
Os discos rígidos não armazenam simplesmente os dados solicitados. Devido ao tamanho cada vez menor do domínio magnético e ao fato de os discos rígidos armazenarem dados de maneira analógica e não binária (o firmware do disco rígido recebe um sinal analógico do prato, que é traduzido em um sinal binário, e essa tradução é parte do molho secreto do fabricante), existe quase sempre algum grau de erro em uma leitura, que deve ser compensado.
Para garantir que os dados possam ser lidos novamente, o disco rígido também armazena dados avançados de correção de erros junto com os dados que você pediu para armazenar.
Sob operações normais, os dados do FEC são suficientes para corrigir os erros no sinal que é lido novamente no prato. O firmware pode reconstruir os dados originais e está tudo bem. Esse é um erro de leitura recuperável exposto no SMART como atributo da taxa de erro de leitura (atributo SMART 0x01) e / ou ECC de hardware recuperado (atributo SMART 0xc3).
Se, por algum motivo, o sinal se degradar abaixo de um certo ponto, os dados do FEC não são mais suficientes para reconstruir os dados originais. Nesse ponto, continua a teoria, o firmware ainda será capaz de detectar que os dados não podem ser lidos de forma confiável, mas não podem fazer nada a respeito. Se várias dessas leituras falharem, o disco deverá informar de alguma forma o restante do computador que a leitura não pôde ser realizada com êxito. Isso é feito sinalizando um erro de leitura irrecuperável . Isso também aumenta o contador Erros incorrigíveis relatados (atributo SMART 0xbb).
Um erro de leitura irrecuperável, ou URE, é simplesmente um relatório que, por qualquer motivo, os dados da carga útil mais os dados do FEC eram insuficientes para reconstruir os dados armazenados originalmente.
Lembre-se de que as taxas de URE são estatísticas . Você não encontrará nenhum disco rígido onde possa ler exatamente 10 ^ 14 (ou 10 ^ 15) - 1 bits com sucesso e o próximo bit falhará. Em vez disso, é uma declaração do fabricante que, em média , se você ler (digamos) 10 ^ 14 bits, em algum momento durante esse processo, encontrará um setor ilegível.
Além disso, seguindo as últimas palavras acima, lembre-se de que as taxas de URE são fornecidas em termos de setores por bits lidos . Devido à maneira como os dados são armazenados nos pratos, o disco não pode dizer qual parte de um setor é ruim; portanto, se um setor falhar na verificação do FEC, todo o setor será considerado ruim.
fonte
A especificação geralmente é "em média 1 erro é detectado durante a leitura de n bits", portanto, o tamanho da unidade não importa. É importante se você calcular o risco de que ocorra um erro na unidade e na carga de trabalho, mas o fabricante afirma apenas que são necessários n bits de leitura para encontrar um erro (em média, não garantido).
Exemplo: se você comprar uma unidade de 1 TB, será necessário lê-la cerca de 12 vezes para encontrar um erro, enquanto uma unidade de 8 TB poderá experimentá-la na segunda leitura - mas o número de bits lidos é o mesmo nas duas vezes, portanto, a qualidade dos eixos magnéticos é aproximadamente o mesmo.
O que você paga com o aumento do preço são outros fatores, capacidade de colocar 8 TB no espaço físico de 1 TB, consumo de energia bastante reduzido, menos colisões de cabeça enquanto move o inversor, etc.
fonte
Acho que @Michael Kjörling respondeu claramente.
Quando o disco é lido, a cabeça detecta a direção do domínio magnético e envia algum sinal eletrônico, que é analógico. Assumimos que o firmware deve dar 1 quando receber uma tensão maior que 0,5V, mas o campo magnético é muito fraco, portanto a cabeça envia um sinal apenas com 0,499V, um erro encontrado. Precisamos do FEC para corrigir este erro.
Aqui está um exemplo: um dado do setor deve ser 0x0F23, nós o codificamos com 0 * 1 + F * 2 + 2 * 3 + 3 * 4 = 0x30. agora temos o FEC e escrevemos depois do setor. Quando lemos, lemos 0x0E23 e FEC 0x30, não coincidem. Após alguns cálculos, descobrimos que deveria ser 0x0F23. Mas se obtivemos 0x0E13 e 0x30, OU obtivemos 0x0E23 e 0x32, não podemos calcular o correto.
Essa classificação é tão baixa, talvez, a menos que o fabricante do HDD leia os PBs, os dados dos EBs possam obter um valor estável. Portanto, eles fornecem o valor da probabilidade: quando você lê dados de 10 ^ 14 bits, pode encontrar uma vez. Como é um valor de probabilidade, talvez você tenha se achado depois de ler apenas 1 dado do setor, talvez tenha encontrado até ler 50TB. E esse valor não teve nada com a capacidade do disco, apenas uma preocupação casual com o tamanho dos dados que você lê. Se você ler um disco de 4 TB cheio de dados 6 vezes, essa chance será igual a ler um disco de 6 TB 4 vezes ou ler um disco de 8 TB 3 vezes.
fonte