
Tengo un disco duro, que debería pasar al modo de espera automáticamente después de 30 o 60 minutos.
Lo intenté (3 minutos para probar):
# hdparm -S 36 /dev/sda
/dev/sda:
setting standby to 36 (3 minutes)
Y no funcionó, incluso cuando no hubo acceso durante más de 5 minutos. Ahora pensé en algún proceso para acceder a los datos, así que probé
# hdparm -y /dev/sda
/dev/sda:
issuing standby command
Drive pasó al modo de espera y siguió durmiendo, como puedes buscar con
# hdparm -C /dev/sda;date
/dev/sda:
drive state is: standby
Al tocar algún archivo en el punto de montaje, se despertó como era de esperar.
¿Por qué no funciona la suspensión automática? Según tengo entendido, incluso debería apagar el disco duro independientemente del sistema operativo, siempre que no haya acceso.
Respuesta1
Estoy ejecutando ubuntu 18.04 y tuve el mismo problema. Gracias a la respuesta de @allo, descubrí que smartd
efectivamente es la causa.
por defecto /etc/smartd.conf
está configurado así:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner
que escaneará automáticamente todas las unidades y las sondeará (esta operación hace girar el disco) periódicamente (predeterminado 30 minutos, modificable). aunque con la -n standby
parte smartd omitirá los discos inactivos, el problema es: si el intervalo de sondeo de smartd es más corto que el tiempo de "inactividad después del disco", entonces smartd siempre sondeará el disco ANTES de que tenga la oportunidad de girar. apagado, por lo que el disco nunca entrará en modo de espera.
Si el "tiempo de espera de giro" del disco es más corto que el intervalo de sondeo de smartd, entonces el disco parará antes del sondeo de smartd, después de lo cual smartd omitirá este disco y no lo acelerará. Si el disco se desactiva (manualmente) mediante otras herramientas como hd-idle
, smartd también lo omitirá.
Una forma de prolongar el intervalo de sondeo inteligente es editar esta línea en /etc/default/smartmontools
:
smartd_opts="--interval=1800"
1800 mide 30 min, que sea 10800 (3 horas) es suficiente, por ejemplo. y no olvides reiniciarlos:
systemctl restart smartd smartmontools
Respuesta2
El verdadero problema era smartd
, que comprobaba periódicamente los valores del dispositivo, incluso cuando estaba en modo de espera.
Lo resolví deshabilitando smartd
y ejecutando pruebas de smartctl
vez en cuando.
Respuesta3
Tenga en cuenta que algunas unidades no implementan esta función, incluso si se aprueba el comando. También es posible que deba reducir elGestión de energía avanzadanivel a 127 o menos con hdparm -B 127 /dev/sda
. Desde la página de manual:
-B Obtener/establecer la función de administración avanzada de energía... valores del 1 al 127 (que permiten la reducción de velocidad) y los valores del 128 al 254 (que no permiten la reducción de velocidad).
Si todo falla, puede escribir un pequeño script que sondee /proc/diskstats
el /sys/block/sda/stat
número de lecturas/escrituras en el dispositivo y ponga explícitamente la unidad en modo de espera si no cambian en varios minutos. Ver elhd-inactivoutilidad.