Scopri cosa sta facendo girare l'hard disk


10

Sono il proprietario di un NAS che esegue una distribuzione Linux. Viene fornito con un frontend di amministrazione web, in cui posso gestire diversi servizi, diritti utente e anche quando dovrebbe andare in modalità di sospensione. Il mio problema è, per qualche motivo, quando il NAS si è spento, il disco rigido si riaccende dopo un paio di minuti. Quindi girerà per qualche tempo, quindi dormirà di nuovo. Questo continua all'infinito.

Come posso provare a determinare la causa di questo? Sono molto nuovo di Linux, ma sono riuscito a ottenere l'accesso come root e ora ho una connessione SSH.


Questo è molto vecchio, ma potrebbe avere ancora suggerimenti pertinenti.
Gilles 'SO- smetti di essere malvagio' il

Hai qualche plug-in analitico / simile con l'interfaccia web / frontend sul NAS box? quali sono i dettagli della scatola NAS? Mi chiedo se alcuni strumenti di systemtap possano essere impiegati lì per verificare l'attività del disco. systemtap è disponibile solo per le versioni successive del kernel Linux.
Nikhil Mulley,

Il NAS è una rete Lacie d2 2. Non ci sono opzioni di plug-in, ma immagino di poter caricare qualcosa al suo interno. Gestisce un server web Green Unicorn. Il kernel è 2.6.31.14-svn6790.
Andreas,

Risposte:


6

inotify-tools è un modo semplice per farlo. Ci sono diversi esempi sul loro sito che sarebbero in grado di fare ciò che vuoi (vedi l'esempio di inotifywatch per uno davvero di base).


Attualmente sto esaminando questo. Innanzitutto, devo compilare il sorgente per una CPU ARMv5TE. Ciò potrebbe rivelarsi abbastanza difficile :)
Andreas,


2

Un altro consiglio: usa Systemtap, sul sito di systemtap ci sono un sacco di script di sondaggi abbastanza utili da trovare il colpevole.

In un altro caso del tutto,

Se vuoi scoprire quale processo ha causato la rotazione del disco, puoi raccogliere informazioni impostando il flag /proc/sys/vm/block_dump. Quando questo flag è impostato, Linux riporta tutte le operazioni di lettura e scrittura del disco che avvengono e tutti gli sporchi di blocco fatti sui file. Ciò consente di eseguire il debug del motivo per cui un disco deve essere ruotato e di aumentare ulteriormente la durata della batteria. L'output di block_dump è scritto nell'output del kernel e può essere recuperato usando "dmesg" o guardare la struttura del kernel syslog per la destinazione dei messaggi di debug. In generale, dovrebbe essere /var/log/debug. Quando usi block_dump e il tuo livello di registrazione del kernel include anche messaggi di debug del kernel, probabilmente vorrai disattivare klogd, altrimenti verrà registrato l'output di block_dump, causando un'attività del disco che normalmente non è presente.


2

Devi dire al kernel di informarti di tutte le letture / scritture sui dischi, quindi devi guardare quelle informazioni.

Così:

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

syncscarica tutte le scritture in sospeso su dischi, in modo da vedere solo nuove letture o scritture.
dmesg -cti mostra i messaggi del kernel e li cancella (altrimenti vedi anche quelli vecchi, ogni volta che esegui dmesg). grepfiltra l'output di dmesg per l'attività per il disco che ti interessa. Sostituisci / dev / sda con il tuo dispositivo reale.

Di solito uso qualcosa del genere per girare il disco, quindi controllare quando si gira di nuovo:

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

Il whileloop controlla lo stato attivo / inattivo del disco ogni 10 minuti. Quando lo vedi accendersi, esegui la dmesglinea sopra per vedere whodunnit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.