Découvrir ce qui fait tourner le disque dur

10

Je suis propriétaire d'un NAS, exécutant une distribution Linux. Il est livré avec une interface d'administration Web, où je peux gérer plusieurs services, droits d'utilisateur et également quand il doit s'endormir. Mon problème est que, pour une raison quelconque, lorsque le NAS s'est endormi, le disque dur se rallume après quelques minutes. Ensuite, il tournera pendant un certain temps, puis dormira à nouveau. Cela continue indéfiniment.

Comment puis-je essayer de déterminer la cause de cela? Je suis très nouveau sur Linux, mais j'ai réussi à obtenir un accès root et j'ai maintenant une connexion SSH.

Andreas
la source
Ceci est très ancien, mais peut encore contenir des conseils pertinents.
Gilles 'SO- arrête d'être méchant'
Avez-vous des plugins analytiques / similaires avec l'interface web / frontend vers la boîte NAS? quels sont les détails de la boîte NAS? Je me demande si certains outils SystemTap peuvent être utilisés pour vérifier l'activité du disque. systemtap n'est disponible que pour les versions ultérieures du noyau Linux.
Nikhil Mulley
Le NAS est un Lacie d2 Network 2. Il n'y a pas d'options de plugin, mais je suppose que je pourrais y charger n'importe quoi. Il exécute un serveur Web Green Unicorn. Le noyau est 2.6.31.14-svn6790.
Andreas

Réponses:

6

inotify-tools est un moyen simple de le faire. Il y a plusieurs exemples sur leur site qui pourraient faire ce que vous voulez (voir l'exemple inotifywatch pour un exemple vraiment basique).

Patrick
la source
J'étudie actuellement la question. Tout d'abord, je dois compiler la source d'un processeur ARMv5TE. Cela pourrait s'avérer assez difficile :)
Andreas
6

Essayez de courir iotoppeut-être? Je l'ai trouvé utile dans le passé.

Faheem Mitha
la source
2

Un autre conseil: utilisez Systemtap, il y a un tas de scripts de sonde sur le site de systemtap assez utiles pour trouver le coupable.

Dans un autre cas tout à fait,

Si vous souhaitez savoir quel processus a provoqué la rotation du disque, vous pouvez collecter des informations en définissant l'indicateur /proc/sys/vm/block_dump. Lorsque cet indicateur est défini, Linux signale toutes les opérations de lecture et d'écriture sur disque qui ont lieu et tous les salissures de bloc effectuées sur les fichiers. Cela permet de déboguer la raison pour laquelle un disque doit tourner et d'augmenter encore la durée de vie de la batterie. La sortie de block_dump est écrite dans la sortie du noyau, et elle peut être récupérée à l'aide de "dmesg" ou consultez votre installation de kern syslog pour la destination des messages de débogage. En général, ça devrait l'être /var/log/debug. Lorsque vous utilisez block_dump et que votre niveau de journalisation du noyau inclut également des messages de débogage du noyau, vous souhaiterez probablement désactiver klogd, sinon la sortie de block_dump sera journalisée, ce qui entraînera une activité du disque qui n'est pas normalement présente.

Nikhil Mulley
la source
2

Vous devez dire au noyau de vous informer de toutes les lectures / écritures sur les disques, puis vous devez regarder ces informations.

Donc:

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

syncvide toutes les écritures en attente sur les disques, de sorte que vous ne voyez que les nouvelles lectures ou écritures.
dmesg -cvous montre les messages du noyau et les efface (sinon vous voyez les anciens aussi, chaque fois que vous exécutez dmesg). grepfiltre la sortie de dmesg pour l'activité du disque qui vous intéresse. Remplacez / dev / sda par votre périphérique réel.

J'utilise habituellement quelque chose comme ça pour faire tourner le disque, puis vérifie quand il tourne à nouveau:

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

La whileboucle vérifie l'état actif / inactif du disque toutes les 10 minutes. Lorsque vous le voyez s'allumer, exécutez la dmesgligne ci-dessus pour voir Whununnit.

Greg Bell
la source