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

2

S.M.A.R.T. encontrou um erro de leitura irrecuperável em um dos meus discos, mas zpool status lista todos os discos como ONLINE (I.E. não DEGRADED).

  1. Você sabe por que isso pode acontecer? Eu achava que o ZFS saberia de erros assim que alguém ...
  2. Preciso executar um scrub para que ele verifique novamente o status de todos os discos?
  3. Posso ter S.M.A.R.T. reportar automaticamente ao ZFS de alguma forma?
por lindhe 28.11.2017 / 14:59

1 resposta

2
  1. Do you know why might that be? I though ZFS would know of any errors as soon as anyone...
  2. Do I need to run a scrub in order for it to recheck the status of all disks?
  3. Can I have S.M.A.R.T. automatically report to ZFS somehow?
  1. 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 ).
  2. Sim.
  3. 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 ).

por 29.11.2017 / 09:43