J'exécute 12.04 sur un serveur domestique/HTPC et j'ai plusieurs lecteurs de stockage qui tournent vers le bas en utilisant les valeurs définies dans /etc/hdparm.conf
.
Parfois , la connexion via ssh
provoque le réveil de tout ou partie des disques. J'ai défini la règle udisks
recommandée dans this post, et la rotation est passée de tout le temps à une partie du temps.
J'ai défini des règles d'audit, auditctl -w /dev/sde -p rwa -k e
, par exemple, pour essayer de voir ce qui les réveillait. En vérifiant les résultats de l'audit avec ausearch
, je vois des entrées comme celle-ci lorsque je ssh
dans:
type=PATH msg=audit(04/16/2013 18:16:40.109:502) : item=0 name=/dev/sde inode=3010 dev=00:05 mode=block,660 ouid=root ogid=disk rdev=08:40
type=CWD msg=audit(04/16/2013 18:16:40.109:502) : cwd=/home/absqua
type=SYSCALL msg=audit(04/16/2013 18:16:40.109:502) : Arch=x86_64 syscall=open success=yes exit=3 a0=7fffcd697998 a1=800 a2=0 a3=0 items=1 ppid=14054 pid=14055 auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts0 ses=408 comm=hdparm exe=/sbin/hdparm key=e
Donc, mes disques sont réveillés par hdparm
lui-même? Comment puis-je comprendre ce qui l'appelle?
J'ai également eu du mal avec ce problème pendant un certain temps, après avoir essayé des audits, la règle des udisks mentionnée, etc. Mais finalement, ce sont blktrace
et blkparse
qui m'ont donné l'ultime indice du problème: mon les disques de couchage ont été accessibles par dumpe2fs
lors de la connexion ssh.
Apparemment, le script suivant était l'auteur de l'infraction, analysant tous les lecteurs pour afficher les lecteurs qui seront vérifiés lors du prochain redémarrage de votre motd lors de la connexion.
/ usr/lib/update-notifier/update-motd-fsck-at-reboot
Le script ne s'exécute qu'une fois toutes les heures maximum, ce qui explique pourquoi cela ne se produisait pas de manière cohérente. Voir lignes 21-24:
if [ $(($stampt + 3600)) -lt $now ] || [ $stampt -gt $now ]; then
#echo $stampt $now need update
NEEDS_FSCK_CHECK=yes
fi
J'ai décidé de désactiver la vérification automatique de mon système en remplaçant l'affectation de variable à :
(ne fais rien). Vous pouvez également augmenter le décalage horaire minimum de 3600
secondes à quelque chose comme un jour ou une semaine. Mais j'ai trouvé préférable d'exécuter le script avec --force
pendant la maintenance de minuit quand tous mes disques sont éveillés de toute façon. Comme ce script est purement informatif, il devrait être sûr de le remplacer simplement par return 0
si ces informations ne vous intéressent pas.
J'espère que cela aide toute personne ayant le même problème ou un problème similaire. Même si c'est un autre coupable sur votre système, j'ai trouvé blktrace
et blkparse
inestimable pour diagnostiquer le problème.