Por que o ZFS não relata o disco como degradado?

Por que o ZFS não relata o disco como degradado?

A SMART encontrou um erro de leitura irrecuperável em um dos meus discos, mas zpool statuslista todos os discos como ONLINE (ou seja, não DEGRADADOS).

  1. Você sabe por que isso pode acontecer? Achei que o ZFS saberia de qualquer erro assim que alguém ...
  2. Preciso executar uma limpeza para verificar novamente o status de todos os discos?
  3. Posso fazer com que o SMART reporte automaticamente ao ZFS de alguma forma?

Responder1

  1. Você sabe por que isso pode acontecer? Achei que o ZFS saberia de qualquer erro assim que alguém ...
  2. Preciso executar uma limpeza para verificar novamente o status de todos os discos?
  3. Posso fazer com que o SMART reporte automaticamente ao ZFS de alguma forma?
  1. 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).
  2. Sim.
  3. 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).

informação relacionada