Obviamente, se a unidade inteira morrer, o RAID-Z em um único disco não ajudará. Mas e os outros tipos de erros?
Pela minha experiência, às vezes tenho um arquivo que não consigo ler. No Mac OS X, o sistema trava por um período de tempo e depois volta com um erro. Movo o arquivo para algum lugar fora do caminho e presumo que esse arquivo tenha um setor ou um bloco defeituoso ou talvez até uma faixa inteira incorreta.
Eu datava dos dias dos disquetes em que gerenciar manualmente as falhas de disco era apenas uma atividade comum. É claro que você substituiria o disquete com defeito o mais rápido possível, mas às vezes não era possível fazê-lo imediatamente, portanto a prática era encontrar a área defeituosa, alocá-la em um arquivo e nunca excluir esse arquivo.
A primeira pergunta é como os discos rígidos falham? Minhas suposições acima são válidas? É verdade que um bloco com defeito fica ruim, mas a unidade inteira ainda é utilizável? Se for esse o caso, parece que o RAID-Z poderia reparar o bloco defeituoso ou a área defeituosa do disco usando a paridade dos outros blocos (áreas).
O caso de uso é para backup. Se eu transferir os dados para uma unidade de 8 TB uma vez por semana, faria sentido considerá-la uma unidade de dados de 7 TB mais 1 TB de paridade, na esperança de que a paridade extra me ajude a me recuperar de podridão de bit, setores defeituosos ou outras falhas localizadas na unidade?
Se a teoria não é tecnicamente falha, o ZFS pode ser configurado para fazer isso?
Editar: eu vi a outra pergunta antes de postar esta pergunta. Dividir em partições separadas onde cada partição é agrupada é uma opção. Mas, em conceito, seria possível ter o mapa de blocos para as partições N entrelaçadas entre si, de modo que uma faixa, enquanto logicamente estivesse entre as partições N, estivesse fisicamente muito próximas. Esta foi a essência da minha pergunta "o ZFS pode ser configurado para fazer isso?" ou seja, apenas ZFS ... não ZFS com truques de partições.
copies=2
, mas terá uma penalidade de armazenamento de 50% fazendo isso. Além disso, não sou especialista em ZFS, mas minha intuição (que pode estar errada) me diz que o ZFS não ficaria satisfeito com a solução proposta. PAR2 é uma tecnologia madura e flexível. O uso não apenas atenderia aos seus requisitos de paridade, mas também permitiria definir a quantidade de paridade por arquivo, se desejado.Respostas:
Como a paridade RAID-Z funciona com o bloco de paridade em outro dispositivo no pool, você precisa particionar seu dispositivo em partições de tamanho igual N + 1, N + 2 ou N + 3, em que N partições contêm os dados e 1/2 conter os bits de paridade.
No topo dessas partições, você criaria um zpool, com o RAID-Z selecionado, e criaria um sistema de arquivos no zpool.
Então, em teoria, isso funciona. Na prática, isso tornaria péssimo o desempenho do sistema de arquivos, pois os blocos consequentes nos arquivos estariam localizados em diferentes dispositivos ZPool, que estão em diferentes partições. Portanto, depois de ler um bloco, o HDD deve se mover para uma área diferente dos pratos, ler o próximo bloco, etc.
A resposta é: Sim, seria estúpido.
fonte