Acho que foi um mal-entendido no antigo segmento. Eu estava comparando a chance de falha de dois discos seguidos ao usar raid de paridade Z1 ou sem RAID (como você declarou nos comentários do outro thread). Aos meus olhos, nunca foi sobre Z1 vs. pool listrado de vdevs básicos, porque esse jogo está essencialmente acabado após a primeira falha, então Z1 é melhor.
Mas se você apenas comparar vários pools independentes contra um único pool com um único Z1 vdev, o problema de aumento de carga enquanto recalcula as informações de paridade persiste.
Na comparação de Z1 vs Z2, sobre a qual a resposta de Michael era principalmente, os outros dois pontos se aplicam. Eu deveria ter sido mais claramente nos comentários, mas eles são limitados no espaço, infelizmente. Espero que esta resposta limpe um pouco disso.
I thought the same thing, but I didn't realize that a URE isn't just a bit flip, it spoils the entire pool.
Se simplificarmos tudo, você terá seu disco com o chip controlador na parte inferior e seu hardware (controlador RAID) ou software (por exemplo, ZFS) na parte superior.
Se algum erro ocorrer no hardware e um setor não puder ser lido, o chip primeiro tentará corrigi-lo sozinho, se possível (por exemplo, lendo o setor do problema várias vezes). Se ainda assim não conseguir fazer nada, desistirá (em discos normais, isso pode levar minutos e parar o sistema completo que aguarda a mensagem "bem-sucedida" ou "falha" em relação à operação de E / S que está pendente).
Alguns discos têm um recurso chamado TLER (time-limit-error recovery), que é um tempo limite que limita esse tempo de correção de erros a 6-9 segundos, porque tradicionalmente, a maioria dos controladores RAID de hardware deixavam o disco inteiro após 9 segundos. um único setor defeituoso não deve deixar todo o disco indisponível, mas ser corrigido por um setor "bom" nos outros discos (um recurso em que um único disco em um sistema de desktop não poderia depender, portanto, um tempo limite seria preferível).
Agora, vamos ver o lado do software: se você configurar seu controlador RAID ou sistema de arquivos ZFS com redundância, por exemplo, usando discos espelhados ou um espelho vdev como base para seu pool, seu URE poderá ser corrigido. Se você não usar redundância, os dados nesse setor desaparecerão, o que pode ser um dado de seu interesse ou apenas dados temporais antigos aleatórios ou nada, dependendo da sua sorte. O mesmo se aplica ao bit flips, embora a chance de eles acontecerem pareça ser mais dependente de efeitos externos (como a radiação cósmica).
Since RAID0 is not subject to UREs, the question is "what is more likely, a URE in RAIDZ or a disk failure in RAID0?"
Eu não aceitei esta resposta porque eu não acho que ela explica adequadamente os pontos relevantes, mas eu estava planejando criar minha própria resposta assim que eu entendi porque os UREs destroem toda a piscina, se ninguém mais chegar a ela primeiro .
Sugiro que você leia uma explicação básica do layout do pool do ZFS. Para resumir os bits mais importantes:
- Você pode criar dispositivos virtuais (vdevs) a partir de discos, partições ou arquivos. Cada vdev pode ser criado com redundância diferente: básico (sem redundância), espelhado (1 a N discos podem falhar), paridade RAID Z1 / Z2 / Z3 (1/2/3 discos podem falhar). Toda a redundância funciona no nível vdev.
- Você cria pools de armazenamento a partir de um ou mais vdevs. Eles são sempre distribuídos, portanto, a perda de um único vdev significa a perda de todo o conjunto.
- Você pode ter qualquer número de pools, que são independentes. Se um pool for perdido, os outros pools continuarão funcionando.
Portanto, você pode raciocinar o seguinte:
- Se possível, prefira Z2 em vez de Z1 devido ao aumento de carga e à grande janela de oportunidade (negativa) ao recriar unidades grandes (sendo que a grande é mais de 1 TB aproximadamente)
- Se tiver que escolher entre Z1 e vários vdevs básicos, prefira Z1 devido à correção de erro de bit que não é possível com vdevs básicos
- Se você puder aceitar a perda parcial do pool, segmente seu pool em vários pools menores respaldados por um único vdev cada, para obter informações de soma de verificação e tempos de reconstrução mais rápidos em falhas fatais
Em qualquer um dos casos acima, você precisa ter um backup. Se você não pode ou não quer ter nenhum backup, é sobre o que você está mais confortável para perder - algumas partes do pool com maior probabilidade ou tudo com menor probabilidade. Eu pessoalmente escolheria a primeira opção, mas você pode decidir o contrário.