- Do you know why might that be? I though ZFS would know of any errors as soon as anyone...
- Do I need to run a scrub in order for it to recheck the status of all disks?
- Can I have S.M.A.R.T. automatically report to ZFS somehow?
- Não, ele não verifica todos os blocos o tempo todo, apenas certifica-se de que cada bloco escrito possa ser contabilizado (e restaurado, se a redundância estiver disponível) assim que for necessário / acessado. O espaço vazio não é verificado (porque você não tem dados valiosos, portanto, seria um desperdício de tempo), e os dados normais são verificados apenas quando são lidos (como escrever é apenas anexar). Como a 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ê verá uma contagem de avisos e erros em
zpool status
). - Sim.
-
Pode ser mais fácil apenas regularmente (via cronjob) limpar o pool. Os tempos recomendados comuns são cerca de uma vez por mês para discos com qualidade corporativa e uma vez por semana para discos no nível do consumidor. Caso contrário, você poderia iniciar uma depuração manual com um script da smartmontools :
Most of the time, you only need to place a script in /etc/smartmontools/run.d/. Whenever smartd wants to send a report, it will execute smart-runner and the latter will run your script.
You have several variables available to your script (again, see the smartd manpage). These come from a test run:
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
Your script also has a temporary copy of the report available as "$1". It will be deleted after you finish but the same content is written to /var/log/syslog.
Você só precisa mapear do nome do dispositivo para o seu pool (você pode analisar
zpool status
).