Can I use consumer hard drives, that do not support TLER / ERC / CCTL, with ZFS (software RAID), without getting in trouble later on or do i need to go with enterprise hard drives that supports TLER / ERC / CCTL?
Imagine que cada um de seus drives é uma caixa preta com determinados recursos, vida útil etc. Todos eles trabalham independentemente dentro de seu storage array. Portanto, você deve olhar para cada um deles independentemente para ver o que aconteceria em diferentes casos.
Exemplo
Para essa pergunta, digamos que você tenha um conjunto composto por duas unidades espelhadas A e B. As combinações possíveis são:
- A e B têm TLER
- A tem, B não
- A não tem, mas B faz
- A e B não tem
Se tudo funcionar bem em todos os discos, não há problema.
Um erro:
Se o disco A apresentar um erro ao tentar ler um bloco, é essa a situação para cada caso possível:
- O sistema solicita o disco para o bloco. O disco tenta encontrá-lo novamente e, após cerca de 7 a 9 segundos (seja qual for o tempo limite do TLER), o controlador solta o disco da matriz. O sistema percebe que um disco está ausente e faz o que você provisionou (acesse um alerta de e-mail, inicie o resilver de um hotspare, não faça nada e continue degradado, ...)
- O mesmo que 1.
- O sistema solicita o disco para o bloco. O disco tenta encontrá-lo de novo e de novo, até que seu tempo limite seja atingido ou até que o bloco seja encontrado. Esse tempo limite pode ser vários minutos e pode ser diferente para cada modelo e fabricante diferente. Se o bloco puder ser recuperado, ele será lido normalmente; se falhar, será retornada uma mensagem de erro para o próprio bloco.
- O mesmo que 3.
Dois erros (um em cada disco):
Este caso é muito raro, mas teoricamente possível. Os dois discos apresentam um erro exatamente no mesmo bloco:
- Os dois discos serão descartados e seu pool ficará indisponível.
- O mesmo que 3 de cima.
- O mesmo que 3 de cima.
- O mesmo que 3 de cima.
Desempenho vs confiabilidade
Como você viu acima, você tem que fazer uma escolha dependendo do seu objetivo e do layout do pool.
- Use discos TLER se você sempre precisar de tempo de resposta mínimo e não puder aceitar o atraso de bloqueio longo. A desvantagem é que você deve provisionar discos adicionais (Z2 em vez de Z1, Z3 em vez de Z2, 3-espelhos em vez de 2-espelhos) ou hotspares para obter a mesma integridade média do pool no final. Além disso, você deve provisionar tempos de reconstrução potencialmente longos, o que pode afetar negativamente seu desempenho geral.
- Use discos não-TLER se o orçamento ou o espaço for restrito e o atraso for aceitável se os discos forem preservados. Como o ZFS já o ajuda na autocorreção de blocos afetados, você não precisa do que o TLER foi originalmente previsto (o controlador deve descartar discos para que a autorrecuperação possa ser iniciada)
- Defina o tempo limite do disco para um valor que seu aplicativo / arquitetura possa manipular confortavelmente. Desta forma, você pode ter discos corporativos sem deixar cair ou discos do consumidor com queda como você preferir. Nem todos os discos são modificáveis, portanto verifique primeiro on-line antes de comprar.