Averiguando qué está girando el disco duro

10

Soy el dueño de un NAS, ejecutando alguna distribución de Linux. Viene con una interfaz de administración web, donde puedo administrar varios servicios, derechos de usuario y también cuándo debería irse a dormir. Mi problema es, por alguna razón, cuando el NAS se ha ido a dormir, el disco duro se enciende nuevamente después de un par de minutos. Luego girará durante un tiempo y luego volverá a dormir. Esto continúa indefinidamente.

¿Cómo puedo tratar de determinar la causa de esto? Soy muy nuevo en Linux, pero logré obtener acceso de root y ahora tengo una conexión SSH.

Andreas
fuente
Esto es muy antiguo, pero aún puede tener consejos relevantes.
Gilles 'SO- deja de ser malvado'
¿Tiene algún complemento analítico / similar con la interfaz web / frontend para NAS box? ¿Cuáles son los detalles de la caja NAS? Me pregunto si se pueden emplear algunas herramientas de systemtap para verificar la actividad del disco. systemtap solo está disponible para versiones posteriores del kernel de Linux.
Nikhil Mulley
El NAS es un Lacie d2 Network 2. No hay opciones de complementos, pero supongo que podría cargar cualquier cosa en él. Ejecuta un servidor web Green Unicorn. El núcleo es 2.6.31.14-svn6790.
Andreas

Respuestas:

6

inotify-tools es una forma simple de hacer esto. Hay varios ejemplos en su sitio que podrían hacer lo que desea (vea el ejemplo de inotifywatch para obtener uno realmente básico).

Patricio
fuente
Actualmente estoy investigando esto. Primero, necesito compilar la fuente para una CPU ARMv5TE. Eso podría resultar bastante difícil :)
Andreas
6

Intenta correr iotoptal vez? Lo he encontrado útil en el pasado.

Faheem Mitha
fuente
2

Otro consejo: use Systemtap, hay un montón de scripts de sonda en el sitio de systemtap lo suficientemente útiles como para encontrar al culpable.

En otro caso por completo,

Si desea averiguar qué proceso causó que el disco girara, puede recopilar información configurando el indicador /proc/sys/vm/block_dump. Cuando se establece este indicador, Linux informa todas las operaciones de lectura y escritura del disco que tienen lugar, y todos los bloqueos sucios realizados en los archivos. Esto permite depurar por qué un disco necesita girar y aumentar aún más la duración de la batería. La salida de block_dump se escribe en la salida del kernel, y se puede recuperar usando "dmesg" o mire su instalación de kernel syslog para el destino de los mensajes de depuración. En general, debería ser /var/log/debug. Cuando usa block_dump y su nivel de registro del kernel también incluye mensajes de depuración del kernel, probablemente desee desactivar klogd, de lo contrario, se registrará la salida de block_dump, lo que provocará una actividad del disco que normalmente no está allí.

Nikhil Mulley
fuente
2

Debe decirle al núcleo que le informe de todas las lecturas / escrituras en los discos, luego debe mirar esa información.

Entonces:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

syncvacía todas las escrituras pendientes en los discos, de modo que solo verá nuevas lecturas o escrituras.
dmesg -cle muestra los mensajes del kernel y los borra (de lo contrario, también verá los antiguos cada vez que ejecute dmesg). grepfiltra la salida de dmesg para la actividad del disco que le interesa. Reemplace / dev / sda con su dispositivo real.

Usualmente uso algo como esto para hacer girar el disco, luego verifico cuándo vuelve a girar:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

El whilebucle comprueba el estado activo / inactivo del disco cada 10 minutos. Cuando lo veas encendido, pasa la dmesglínea de arriba para ver quién lo hace.

Greg Bell
fuente