zfs scrub
é o "sistema que irá verificar erros de zfs". Ele levará o tempo necessário para ler todos os dados armazenados no volume (indo em ordem sequencial de txg, por isso, ele pode estar procurando muito, dependendo de como o pool está cheio e como os dados foram gravados). Uma vez iniciado, zfs status
mostrará alguma estimativa. Executar scrub pode ser interrompido.
Se você quiser que algo verifique periodicamente zpool status
, a maneira mais simples seria executar algo como zpool status | grep -C 100 Status
periodicamente (uma vez a cada 6 horas) e enviar a saída por e-mail, se houver. Você provavelmente poderia encontrar um plugin para o seu sistema de monitoramento favorito, como o nagios. Ou seria bastante simples escrever-se.
Apenas a troca a quente não acionará o resilver. Você terá que executar zfs replace
para que isso aconteça.
O erro de leitura que você está vendo também pode ser algum tipo de falha no controle. Mesmo sendo um hardware corporativo, esses controladores (HW RAID) às vezes se comportam de maneira estranha. E esses erros podem, por exemplo, ser o resultado de um comando que está demorando demais - o controlador está ocupado com o que quer que seja. É por isso que eu tento ficar longe deles, a menos que seja necessário.
Eu gostaria de verificar os dados SMART na unidade (consulte man smartctl
) e limpar o pool. Se ambos parecerem corretos, limpe os erros e não mexa no seu pool. Porque se o pool estiver quase cheio, todos os dados durante o resilver podem realmente acionar outro erro. Comece a montar uma vez que você veja os erros na mesma unidade novamente;).
entre. para um melhor desempenho, você deve usar n ^ 2 + 2 drives em RAIDZ2 vdevs.