# [Hdparm] Un HDD s'endort pas

## puck.fr

Bonjour,

J'ai actuellement un système gentoo installé sur une CF et disque dur (en sata) dans le même boitier

le tout est un système qui as pour objectif de me servir se serveur et tourne h24.

Mon problème est le suivant:

comme je ne me sers pas quotidiennement de mon disque dur je souhaite qu'il se mette en veille (spindown)

J'ai donc configuré hdparm pour qu'il exécute au démarrage la commande "hdparm -S 60 /dev/sda"

bien entendu 60 est une valeur de test je l'augmenterais par la suite.

et là pas de problème le disque se mets en veille au bout de 5 minutes d'inactivité.

ensuite quand j'y accède il se rallume mais il ne se remet jamais en veille.

quelques information sur le disque:

```

 hdparm -i /dev/sda

/dev/sda:

 Model=SAMSUNG HD753LJ                         , FwRev=1AA01107, SerialNo=XXXXXXXX

 Config={ Fixed }

 RawCHS=16383/16/63, TrkSize=34902, SectSize=554, ECCbytes=4

 BuffType=DualPortCache, BuffSize=32767kB, MaxMultSect=16, MultSect=?16?

 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1465149168

 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

 PIO modes:  pio0 pio1 pio2 pio3 pio4

 DMA modes:  mdma0 mdma1 mdma2

 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

 AdvancedPM=yes: unknown setting WriteCache=enabled

 Drive conforms to: unknown:  ATA/ATAPI-3,4,5,6,7

 * signifies the current active mode

```

quelqu'un a déjà eu ce genre de problème ?

ou est ce moi qui fait pas les choses correctement ?

----------

## yoyo

Tu as peut-être un process qui ne lâche pas la main de ton disque dur et empêche sa mise en sommeil ...

J'avais vu passer une news la dessus il y a peu de temps mais je n'arrive pas à remettre la main dessus. Il y était question entre autre du paquet "iotop" qui fonctionne sur le même principe que "top" mais pour les entrées/sorties de données. Il pourra peut-être t'indiquer le fautif (si cette piste est la bonne).

Enjoy !

----------

## puck.fr

C'est bizarre je ne pense pas que ce soi lié à un problème de processus 

j'ai vu passer aucun accès avec inotifywatch

et lsof n'affiche aucune entrée sur ce dique (sur lequel j'ai pour l'instant que les ebuild gentoo et le dossier temporaire de ccache et portage)

et cela ce produit à chaque fois après une sortie de veille 

J'ai trouvé une solution dont je ne suis pas fier (de plus je l'ai pas encore testé sur une longue durée) et j'aurais souhaité savoir si il existait autre chose de plus "propre".

J'exécute une script chaque heure avec cron qui vérifie si le disque tourne ci c'est le cas il lance la commande hdparm -S 240 /dev/sda

script ci dessous.

```

#!/bin/bash

test=`hdparm -C /dev/sda |grep idle`

comp=' drive state is:  active/idle'

if [ "$test" = "$comp" ]; then

        hdparm -S 240 /dev/sda

fi

```

reste à voir si cette méthode fonctionne bien et si il existe pas autre chose de "mieux".

----------

## ghoti

Pas (encore) d'explication mais la curiosité m'a poussé à faire quelques tests avec deux disques contenant uniquement des données d'archives et qui ne devraient donc en principe pas être sollicités en dehors de ma volonté.

Si j'endors un disque après 5 secondes (-S1), il s'arrête effectivement mais se remet en marche environ une minute plus tard pour s'arrêter à nouveau après 5 secondes (et le cycle recommence...)

Si j'augmente la période aux alentours d'une minute (-S11), il s'arrête effectivement au bout d'une minute mais redémarre presqu'aussitôt.

Avec 2 disques, c'est encore plus curieux : ils s'arrêtent à quelques secondes d'intervalle (le temps de taper la commande  :Wink: ) mais redémarrent une minute plus tard en même temps !

Avec (-S13), les disques ne s'arrêtent que parfois, après plusieurs minutes !!!   :Shocked: 

Ici, le redémarrage a lieu tout aussitôt, avant que le spindown ne soit terminé.

Il n'y aurait pas du HAL la-dessous ?

----------

## Enlight

purée tu nous fait du paranormal ces temps-ci! La dernière fois j'ai séché total alors ce coup-ci je tente : smartctl maybe?

----------

## ghoti

 :Laughing: 

En fait, je n'ai fait que compléter les constations de puck.fr : plus on a d'indices et plus on a de chances de trouver la soluce.

Toutefois, il semble se confirmer que "quelque-chose" sollicite le disque à intervalles réguliers.

Bonne idée la piste du smartctl : je commence les fouilles !  :Smile: 

----------

## Enlight

 *Quote:*   

> le daemon : smartd
> 
> Pour exécuter sa tâche, smartmontools se divise en deux : un daemon, smartd, analyse périodiquement, toutes les 30 minutes par défaut, les paramètres fournis par le disque dur,

 

je viens de trouver ça sur le net... caramba, encore raté!

Sinon en posant ton oeil de lynx devant un htop qui classerait par IO, tu devrais chopper le coupable, non?

----------

## ghoti

Bingo ! 

Chez moi, c'est la faute à gkrellm et hddtemp !

Merci Enlight : il y avait donc bel et bien du SMART sous roche !  :Smile: 

Dans hddtemp.conf, j'ai déclaré tous mes disques mais dans gkrellm, je ne surveille que mes disques "système" et pas les deux disques d'archives.

Pourtant, il semblerait qu'une interrogation de hddtemp par gkrellm provoque d'office un accès à tous les disques hddtemp, même s'ils ne sont pas cochés dans la config de gkrellm.

En espérant que ça pourra donner des idées à puck.fr !  :Smile: 

----------

## puck.fr

merci pour vos recherche mais de mon coté je pencherais plutôt pour un pb matériel comme si le disque "oubliait" qu'il as un délai de spindown lorsque il redémarre. de plus il interprète bizarrement certaines valeurs de hdparm ainsi si je fait "hdparm -S 240 /dev/sda" il s'arrète au bout de quelques secondes.

ce qui me surprends c'est que je doit pas être se seul à souhaiter utiliser ces fonctions de ce disque dur et si c'estait vraiment un souci de firmare je pense que j'en aurais trouvé des traces sur le net donc pour l'instant je suis dans le brouillard le plus complet.

de plus je n'utilise pas les outils smart en démon

sinon mon script avec cron fonctionne bien

----------

## El_Goretto

 *puck.fr wrote:*   

> sinon mon script avec cron fonctionne bien

 

Un script qui va au final augmenter le nombre de cycles arrêt/démarrage?   :Confused: 

----------

## ghoti

 *puck.fr wrote:*   

> merci pour vos recherche mais de mon coté je pencherais plutôt pour un pb matériel comme si le disque "oubliait" qu'il as un délai de spindown lorsque il redémarre.

 

C'est justement pour essayer de mettre cela en évidence que j'ai essayé des délais spindown très courts (-S1)

J'ai pu ainsi découvrir que le disque n'oubliait pas son délai mais que le compteur spindown était chaque fois remis à zéro à cause d'un accès disque régulier généré par un autre processus, qui empêche ainsi le disque de s'arrêter.

As-tu essayé avec -S1 ?

 *Quote:*   

> de plus il interprète bizarrement certaines valeurs de hdparm ainsi si je fait "hdparm -S 240 /dev/sda" il s'arrète au bout de quelques secondes.

 

En effet, cela ne correspond pas à la norme. Mais ce ne serait pas la première fois qu'un constructeur appliquerait une norme avec "flexibilité"  :Wink: 

Il est frappant de constater qu'il s'agit de la dernière valeur de la plage "normale"!

D'ailleurs le man hdparm fait remarquer :

 *Quote:*   

> Note that some older drives may have  very  different interpretations of these values

 

As-tu essayé d'autres valeurs (200, 220, 239 par ex?) ?

 *Quote:*   

> si c'estait vraiment un souci de firmare je pense que j'en aurais trouvé des traces sur le net

 

+1

D'où l'intérêt de confirmer le phénomène avec un autre disque ...

 *Quote:*   

> de plus je n'utilise pas les outils smart en démon

 

Je n'utilise pas smartd non plus. Il n'est pas nécessaire pour accéder aux fonctions SMART!

Comme je l'ai dit, il s'agit dans mon cas du couple hddtemp/gkrellm (hddtemp lit directement la température SMART).

A noter que inotify ne me renvoie rien non plus.

Mais tout processus qui accéderait régulièrement aux paramètres SMART pourrait générer le phénomène.

Essaye peut-être de voir ce qui se passe en désactivant le plus de services possibles. Un bon début serait de passer en mode "single" (init s), en console et d'utiliser de très faibles valeurs pour hdparm -Sx

----------

## boozo

[OT] Ahàa cro*** ! Y nous fait rechute !  :Mr. Green:  [/OT]

oui oui, je sais, je sais ----------------><-)))°>---------> [ ] 

----------

## ghoti

Oups, pas vu !  :Embarassed: 

En fait, en voulant éditer mon post, j'ai clické sur le bouton "citer" et plutôt que de revenir en arrière, j'ai simplement enlevé les balises "quote".

Mais voilà : j'ai complètement perdu de vue que je générais ainsi un nouveau post ...

Ô rage! Ô désespoir! ... comme dirait l'autre  :Sad: 

----------

## geekounet

Voilà, j'ai corrigé l'erreur du papy  :Wink: 

@puck.fr : je sais pas si c'est à toi que j'avais causé sur IRC sur ce sujet de mise en veille, mais j'insiste sur le fait qu'avec des mises en veille toutes les 5 minutes tu vas cramer ton hdd en quelques semaines, réfléchis-y bien...

----------

## ghoti

Merci m'gamin !  :Very Happy: 

----------

## puck.fr

@geekounet: en effet c'est bien avec moi que tu avait eu une conversation en irc mais ici je ne l'ai pas encore développé mais de part son utilisation ce disque seras amené à démarrer une ou deux fois par jour et encore pas tous les jour.

mais je tiens beaucoup à cette mise en veille car tout est dans un boîtier fanless et le disque dur et ma principale nuisance sonore et plus il chauffe voilà prk je souhaite qu'il ne tourne pas en permanence même si sa n'augmente pas sa durée de vie.

Pour mon script en fait il n'augmente pas le nombre de  démarrage et d'arrêt mais simplement si il constate que le disque tourne toujours il lui "rappelle" qu'il y as un délai de spindown.

si le disque ne tourne pas le script ne fait pas de commande.

j'ai fait ça car j'ai constaté que un hdparm -S XX réveillais un disque endormi

je fais le teste demain avec un délai de spindown à 1 voir ce que ça donne.

----------

## ghoti

On sort peut-être un peu du sujet mais si c'est le bruit qui te dérange, as-tu essayé d'isoler le disque acoustiquement ?

En fait, le bruit du disque provient des vibrations qu'il communique au berceau dans lequel il est fixé et qui joue le rôle d'amplificateur.

Le berceau propage à son tour les vibrations au boîtier et le transforme en véritable enceinte sonore.

Il existe bien sûr des berceaux spéciaux avec fixations en silicone, mais il y a plus simple et moins cher !

En piochant sur les sites du style "tout pour le pc silencieux", j'ai découvert une technique radicale : il suffit de suspendre et coincer le disque entre des élastiques à l'intérieur de baies 5"1/4.

J'ai donc sacrifié quelques petites culottes de ma femme pour en récupérer les précieux élastoches et le résultat est époustouflant : les disques sont inaudibles au delà de 20 cm !  :Smile: 

J'ai pour l'instant 4 disques et à 1 mètre de distance, la seule partie légèrement audible est le ventilo de l'alim qui est pourtant considérée comme un modèle de silence (Corsair HX620W)

Par ailleurs, tu auras aussi sans doute remarqué que c'est au démarrage (spinup) que le disque est le plus bruyant.

Ce n'est qu'un avis très personnel, mais en ce qui me concerne, je préfère encore un léger ronron régulier au démarrage d'une turbine d'avion !  :Smile: 

----------

## puck.fr

C'est une histoire de bruit en effet mais également de chaleur et de consommation électrique donc je tiens vraiment à cette mise en veille.

De plus pour l'histoire des élastiques c'est pas une solution que j'apprécie car à chaque déplacement du boitier il faut penser à attacher ses disques et de toute façon je n'ai pas la place car c'est un petit boitier que j'ai plus d'info ICI ou ICI

Ce matin j'ai fait le test avec un hdparm -S1 et en fait c'est bien ce que j'avais émis comme hypothèse au début qui se révèle être juste.

5 secondes après avoir fait le hdparm il s'arrête bien je fait ensuite un accès au disque: il redémarre mais ne s'arrête pas tandis que si je refait un hdparm -S5 il s'arrête.

bizarre non ? 

comment l'expliquez vous?

----------

## ghoti

 *puck.fr wrote:*   

> de toute façon je n'ai pas la place car c'est un petit boitier que j'ai plus d'info ICI ou ICI

 

Oui, évidemment, c'est un peu juste !  :Very Happy: 

 *Quote:*   

> Ce matin j'ai fait le test avec un hdparm -S1 et en fait c'est bien ce que j'avais émis comme hypothèse au début qui se révèle être juste.
> 
> 5 secondes après avoir fait le hdparm il s'arrête bien je fait ensuite un accès au disque: il redémarre mais ne s'arrête pas tandis que si je refait un hdparm -S5 il s'arrête.

 

A priori, je ne l'explique pas vu que chez moi il s'arrête chaque fois automatiquement comme prévu   :Confused: 

As-tu la possibilité de brancher et tester un second disque, histoire de mettre en évidence une éventuelle cause "hardware" ?

----------

