¿Por qué ZFS no informa que el disco está degradado?

¿Por qué ZFS no informa que el disco está degradado?

SMART ha encontrado un error de lectura irrecuperable en uno de mis discos, pero zpool statusenumera todos los discos como EN LÍNEA (ES decir, no DEGRADADOS).

  1. ¿Sabes por qué podría ser eso? Pensé que ZFS sabría de cualquier error tan pronto como alguien...
  2. ¿Necesito ejecutar una limpieza para volver a verificar el estado de todos los discos?
  3. ¿Puedo hacer que SMART informe automáticamente a ZFS de alguna manera?

Respuesta1

  1. ¿Sabes por qué podría ser eso? Pensé que ZFS sabría de cualquier error tan pronto como alguien...
  2. ¿Necesito ejecutar una limpieza para volver a verificar el estado de todos los discos?
  3. ¿Puedo hacer que SMART informe automáticamente a ZFS de alguna manera?
  1. No, no verifica todos los bloques todo el tiempo, solo se asegura de que cada bloque escrito pueda contabilizarse (y restaurarse, si hay redundancia disponible) tan pronto como se necesite o se acceda a él. El espacio vacío no se verifica en absoluto (porque no tiene datos valiosos allí, por lo que sería una pérdida de tiempo), y los datos normales solo se verifican cuando se leen (ya que la escritura es solo para agregar). Como dijo correctamente mmusante, solo recibirá mensajes de error si el error es crítico y no se puede recuperar automáticamente (de lo contrario, solo verá un aviso y el error cuenta zpool status).
  2. Sí.
  3. Puede ser más fácil limpiar la piscina con regularidad (mediante cronjob). Los tiempos recomendados habituales son aproximadamente una vez al mes para discos de calidad empresarial y una vez a la semana para discos de nivel de consumidor. De lo contrario, podría iniciar un fregado manual con unscript de smartmontools:

    La mayoría de las veces, sólo necesita colocar un script en /etc/smartmontools/run.d/. Siempre que smartd quiera enviar un informe, ejecutará smart-runner y este último ejecutará su script.

    Tiene varias variables disponibles para su script (nuevamente, consulte la página de manual de smartd). Estos provienen de una ejecución de prueba:

    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
    

    Su secuencia de comandos también tiene una copia temporal del informe disponible como "$1". Se eliminará una vez que termine, pero el mismo contenido se escribirá en /var/log/syslog.

    Luego solo necesita asignar el nombre del dispositivo a su grupo (puede analizarlo zpool status).

información relacionada