Finden Sie heraus, was die Festplatte dreht

10

Ich bin der Besitzer eines NAS und verwende eine Linux-Distribution. Es wird mit einem Webadministrations-Frontend geliefert, in dem ich verschiedene Dienste, Benutzerrechte und auch den Zeitpunkt für den Ruhezustand verwalten kann. Mein Problem ist aus irgendeinem Grund, dass sich die Festplatte nach einigen Minuten wieder einschaltet, wenn der NAS in den Ruhezustand versetzt wurde. Dann dreht es sich einige Zeit und schläft dann wieder. Dies geht auf unbestimmte Zeit weiter.

Wie kann ich versuchen, die Ursache dafür zu ermitteln? Ich bin sehr neu in Linux, aber ich habe Root-Zugriff erhalten und habe jetzt eine SSH-Verbindung.

Andreas
quelle
Dies ist sehr alt, kann aber noch relevante Tipps haben.
Gilles 'SO - hör auf böse zu sein'
Haben Sie ein Analytics / Like-Plugin mit der Web- / Frontend-Schnittstelle zur NAS-Box? Was sind die NAS-Box-Details? Ich frage mich, ob dort einige Systemtap-Tools verwendet werden können, um die Festplattenaktivität zu überprüfen. systemtap ist nur für spätere Versionen des Linux-Kernels verfügbar.
Nikhil Mulley
Das NAS ist ein Lacie d2 Network 2. Es gibt keine Plugin-Optionen, aber ich denke, ich könnte alles darin laden. Es läuft ein Green Unicorn Webserver. Der Kernel ist 2.6.31.14-svn6790.
Andreas

Antworten:

6

Inotify-Tools ist eine einfache Möglichkeit, dies zu tun. Es gibt mehrere Beispiele auf ihrer Website, die in der Lage sind, das zu tun, was Sie wollen (siehe das inotifywatch-Beispiel für ein wirklich einfaches Beispiel).

Patrick
quelle
Ich prüfe dies derzeit. Zuerst muss ich die Quelle für eine ARMv5TE-CPU kompilieren. Das könnte sich als schwierig genug erweisen :)
Andreas
6

Versuchen Sie iotopvielleicht zu laufen ? Ich habe es in der Vergangenheit nützlich gefunden.

Faheem Mitha
quelle
2

Ein weiterer Tipp: Verwenden Sie Systemtap. Auf der Website von systemtap gibt es eine Reihe von Prüfskripten, die nützlich genug sind, um den Schuldigen zu finden.

In einem anderen Fall insgesamt

Wenn Sie herausfinden möchten, durch welchen Prozess die Festplatte hochgefahren wurde, können Sie Informationen sammeln, indem Sie das Flag setzen /proc/sys/vm/block_dump. Wenn dieses Flag gesetzt ist, meldet Linux alle Lese- und Schreibvorgänge auf der Festplatte und alle Blockverschmutzungen an Dateien. Auf diese Weise können Sie debuggen, warum eine Festplatte hochgefahren werden muss, und die Akkulaufzeit noch weiter verlängern. Die Ausgabe von block_dump wird in die Kernelausgabe geschrieben und kann mit "dmesg" abgerufen werden oder in Ihrer Syslog-Kernfunktion nach dem Ziel der Debug-Nachrichten suchen. Im Allgemeinen sollte es sein /var/log/debug. Wenn Sie block_dump verwenden und Ihre Kernel-Protokollierungsstufe auch Kernel-Debugging-Meldungen enthält, möchten Sie wahrscheinlich klogd deaktivieren. Andernfalls wird die Ausgabe von block_dump protokolliert, was zu Festplattenaktivitäten führt, die normalerweise nicht vorhanden sind.

Nikhil Mulley
quelle
2

Sie müssen den Kernel anweisen, Sie über alle Lese- / Schreibvorgänge auf Datenträgern zu informieren. Anschließend müssen Sie sich diese Informationen ansehen.

So:

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

syncLeert alle ausstehenden Schreibvorgänge auf Datenträger, sodass nur neue Lese- oder Schreibvorgänge angezeigt werden.
dmesg -czeigt Ihnen die Kernel-Nachrichten und löscht sie (andernfalls sehen Sie bei jedem Ausführen von dmesg auch die alten). grepfiltert die Ausgabe von dmesg nach Aktivität für die Festplatte, an der Sie interessiert sind. Ersetzen Sie / dev / sda durch Ihr tatsächliches Gerät.

Normalerweise verwende ich so etwas, um die Festplatte herunterzufahren, und überprüfe dann, ob sie sich wieder dreht:

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

Die whileSchleife überprüft alle 10 Minuten den Aktiv / Leerlauf-Status der Festplatte. Wenn Sie sehen, dass es sich einschaltet, führen Sie die dmesgobige Linie aus, um zu sehen, wer nicht.

Greg Bell
quelle