2011/12/28

Mettre ses disques durs en veille

Quand on a plusieurs disques durs dans son ordinateurs, on peut se sentir embêté quand on sait que certains ne servent principalement que pour de la sauvegarde et tournent toujours même si on ne les utilisent que rarement.

Laisser ses disques durs tourner pour rien crée deux problèmes :
  1. Un gaspillage d'énergie.
  2. Une usure inutile des pièces mécaniques des disques durs.
Cependant, ralentir et repartir des disques durs trop souvent peux aussi créer plus d'usure sur ces derniers. Il faut donc bien y penser avant de créer des règles de mises en veilles qui pourraient être plus néfastes que bénéfiques.

Sous Linux, quelques bons outils sont à notre disposition pour régler ces deux problèmes. Ils permettent de mettre les disques durs inutilisés pendant un certain nombre de temps en veille. Les plateaux arrêtent de tourner ce qui diminue l'usure des moteurs ainsi que la chaleur produite par ceux-ci.

La première étape est de déterminer quels disques durs on veut mettre en veille. Pour avoir une liste complète des disques durs installés dans son ordinateur, il suffit d'utiliser la commande sudo fdisk -l. Cette commande crée une liste de tous les disques durs vus par l'OS.

Pour dire à Linux quels disques on veut arrêter il faudra noter leur chemin d'accès. Typiquement ce chemin est de cette forme : /dev/sda où la partie « sda » peut varier. Les disques durs sous Linux sont nommés par une variation de la dernière lettre de cette partie (sda, sdb, ... sdz pour 26 disques durs par exmple).

Dans mon cas, les disques durs que je veux mettre en veille sont les disques durs /dev/sda, /dev/sdb et /dev/sdc. Mon OS est sur le dernier disque soit /dev/sdd, c'est le seul pour lequel je ne créerai pas de règle de mise en veille.

Ensuite, il suffit d'inscire notre règle de mise en veille d'une des deux manières suivantes pour qu'elle prenne effet au redémarrage du système :
  1. Modification du fichier /etc/hdparm.conf :
    On ajoute une petite section par disque dur pour spécifier les paramètres de mises en veille. Par exemple,
    /dev/sda {
       spindown_time = 60
    }
    /dev/sdb {
       spindown_time = 120
    }
    /dev/sdc{
       spindown_time = 10
    }

    (Tiré du site externe en anglais : http://www.spencerstirling.com/computergeek/powersaving.html)
    L'avantage du fichier hdparm.conf est qu'il permet de spécifier plus que des politiques de mise en veille pour chacun de nos disques durs. Il permet de fixer d'autres paramètres qui sont décrit dans le manuel du programme hdparm et dans l'entête du fichier hdparm.conf. Si on ne veut pas jouer avec toute la puissance de hdparm, on est aussi bien avec la méthode suivante.
  2. Modification du fichier /etc/init.d/rc.local :
    Sous la section nommée « start », on écrit les lignes nécessaires, soit, dans mon cas,
    ...
    case "$1" in
       start)
          ...
          /sbin/hdparm -S60 /dev/sda
          /sbin/hdparm -S120 /dev/sdb
          /sbin/hdparm -S10 /dev/sdc

          ...
          do_start
    ...
    Les lignes en gras sont celles que j'ai ajoutées. Il faut faire bien attention de mettre un -S majuscule et non pas -s minuscule ces deux options ne sont pas du tout les mêmes.

Bien sûr, il faut éditer l'un ou l'autre de ces fichiers en tant qu'administrateur. Les commandes sudo nano chemin/nomDeFichier ou sudo vim chemin/nomDeFichier feront l'affaire.



À noter, j'utilise un temps de 5 minutes (-S60 équivaut à 60 * 5 secondes) pour mon disque sda qui est utilisé que pour quelques vidéos et surtout des fichiers de sauvegarde, un temps de 10 minutes pour mon disque sdb qui est utilisé pour de la musique et quelques fichiers de sauvegarde et un temps de 50 secondes pour mon disque sdc qui est en fait un SSD. Pour un disque dur mécanique, le temps recommandé minimal avant extinction pour ne pas mettre trop de stress sur les moteurs des plateaux est de 3 à 5 minutes.


Il est possible que la dernière commande liée au disque SSD soit inutile puisqu'un disque SSD n'a aucune pièce mécanique, mais je ne l'utilise jamais sous Linux (il ne contient que mon très lourd Windows 7 avec mes jeux PC). La commande ne cause aucun problème à mon SSD donc je la laisse des fois que le SSD interprète le signal et entre dans un mode d'économie ou quelque chose comme ça.

Avec ça, vous devriez pouvoir bien vous débrouillez pour créer des politiques d'économies d'énergie pour vos disques durs.

Notes sur la commande « hdparm » :
Ce programme permet en autre d'arrêter les disques durs après un certain temps d'inactivité avec la commande sudo hdparm -SXX /dev/sdZ. XX peut avoir une valeur entre 1 et 240 pour un groupement indiquer un nombre de groupements de 5 secondes ou une valeur entre 241 et 251 pour un nombre de groupements de 30 minutes. Les valeurs entre 252 et 255 peuvent aussi être utilisés, mais peuvent être imprévisibles selon le disque dur (voir man hdparm). Z doit être remplacé par la lettre de son disque dur. Le temps XX détermine le temps à attendre après un accès pour mettre le disque dur en veille.

Aucun commentaire:

Publier un commentaire