A SMART encontrou um erro de leitura irrecuperável em um dos meus discos, mas zpool status
lista todos os discos como ONLINE (ou seja, não DEGRADADOS).
- Você sabe por que isso pode acontecer? Achei que o ZFS saberia de qualquer erro assim que alguém ...
- Preciso executar uma limpeza para verificar novamente o status de todos os discos?
- Posso fazer com que o SMART reporte automaticamente ao ZFS de alguma forma?
Responder1
- Você sabe por que isso pode acontecer? Achei que o ZFS saberia de qualquer erro assim que alguém ...
- Preciso executar uma limpeza para verificar novamente o status de todos os discos?
- Posso fazer com que o SMART reporte automaticamente ao ZFS de alguma forma?
- Não, ele não verifica todos os blocos o tempo todo, apenas garante que cada bloco escrito possa ser contabilizado (e restaurado, se houver redundância disponível) assim que for necessário/acessado. O espaço vazio não é verificado (porque você não possui dados valiosos lá, então seria uma perda de tempo) e os dados normais só são verificados quando são lidos (já que a gravação é apenas anexada). Como mmusante disse corretamente, você só receberá mensagens de erro se o erro for crítico e não puder ser recuperado automaticamente (caso contrário, você apenas verá um aviso e a contagem de erros em
zpool status
). - Sim.
Pode ser mais fácil apenas limpar regularmente (via cronjob) o pool. Os tempos recomendados comuns são cerca de uma vez por mês para discos de qualidade empresarial e uma vez por semana para discos de nível consumidor. Caso contrário, você poderá iniciar uma lavagem manual com umscript do smartmontools:
Na maioria das vezes, você só precisa colocar um script em /etc/smartmontools/run.d/. Sempre que o smartd quiser enviar um relatório, ele executará o smart-runner e este executará o seu script.
Você tem diversas variáveis disponíveis para o seu script (novamente, consulte a página de manual do smartd). Eles vêm de um teste:
SMARTD_MAILER=/usr/share/smartmontools/smartd-runner SMARTD_SUBJECT=SMART error (EmailTest) detected on host: XXXXX SMARTD_ADDRESS=root SMARTD_TFIRSTEPOCH=1267409738 SMARTD_FAILTYPE=EmailTest SMARTD_TFIRST=Sun Feb 28 21:45:38 2010 VET SMARTD_DEVICE=/dev/sda SMARTD_DEVICETYPE=sat SMARTD_DEVICESTRING=/dev/sda SMARTD_FULLMESSAGE=This email was generated by the smartd daemon running on: SMARTD_MESSAGE=TEST EMAIL from smartd for device: /dev/sda
Seu script também possui uma cópia temporária do relatório disponível como "$1". Ele será excluído após você terminar, mas o mesmo conteúdo será gravado em/var/log/syslog.
Você só precisa mapear o nome do dispositivo para o seu pool (você pode analisar
zpool status
).