Après quelques calculs sur ma consommation d'électricité avec 10 HDD 7200RPM qui tournent en idle les 9/10ème du temps H24, j'ai très vite cherché à optimiser les coûts.. En effet après différentes lectures sur plusieurs sites et wattmètre j'ai pu constater qu'en moyenne un seul de mes disques consommait en Idle 8 Watt, fois 10 ça commence à revenir cher, d'autant que ce ne sont que les disques, il y a le reste à alimenter aussi, bref j'ai du prendre des mesures drastiques !
Dans la configuration de base on peut voir qu'on a un dossier par type de média, pour optimiser on peut donc utiliser un volume par type de média et donc un point de montage par type média.
Résultat si le montage music est en cours de lecture, les autres volumes ne sont pas impacté et donc pas lu.
Et c'est là que LVM va bien nous aidé car on va pouvoir créer un volume logique par type de média et rajouté des partitions physique dans ces volumes logiques !
Si on reprend l'arborescence :
data
└───media
│ └───movies | lv-movies vg-movies /dev/sdb1 # LV lv-movies VG vg-movies utilisant la partition /dev/sdb1
│ └───music | lv-music vg-media1 /dev/sdc1 # LV lv-music VG vg-media1 utilisant la partition /dev/sdc1
│ └───tv | lv-tv vg-tv /dev/sdd1 /dev/sde1 # LV lv-tv VG vg-tv utilisant la partition /dev/sdd1 et /dev/sde1
└───torrents | lv-torrents vg-media1 /dev/sdc1 # LV lv-torrents VG vg-media1 utilisant la partition /dev/sdc1
└───movies
└───music
└───tv
Inconvénient, on utilise des disques entiers et c'est pas une ressource illimité. Avec ce système, le jour où un volume est rempli il faudra rajouter un disque entier pour l'étendre alors qu'il restera peut-être des la place sur une partition. Mais c'est un bon compromis surtout lorsqu'il s'agit de mettre en veille les disques.
Un sujet qui m'a donné un peu de fil à retordre c'est la gestion des disques en mode spin down.
C'est quoi le spin down : c'est demander au disque d'arrêter de tourner tout simplement, avantage consommation électrique réduit au strict minimum (on passe de 8Watte en idle à moins de 0.5Watt), inconvénient le disque n'est plus accessible en lecteur/écriture et si le disque tourne et arrête de tourner trop souvent cela peut l'user, même si l'info n'est pas certaine cependant, j'ai pu lire que sur les disques dur moderne c'était beaucoup moins voir pas du tout le cas.
Pour réussir à automatiser la gestion des disques j'utilise 2 programmes :
Pour faire simple, j'ai créé un service qui lance un script au démarrage de la machine afin de configurer tout mes disques comme étant autorisé à utiliser le spindown, hdparm permet aussi de spin down les disques après un certain temps d'inactivité mais je n'ai jamais réussi à faire fonctionner la commande.
Ici le script lancé par le service, la commande est lancé pour chaque disque
#!/bin/sh
/usr/sbin/hdparm -B 127 /dev/disk/by-path/pci-0000:00:17.0-ata-2
/usr/sbin/hdparm -B 127 /dev/disk/by-path/pci-0000:00:17.0-ata-3
/usr/sbin/hdparm -B 127 /dev/disk/by-path/pci-0000:00:17.0-ata-4
/usr/sbin/hdparm -B 127 /dev/disk/by-path/pci-0000:00:17.0-ata-5
/usr/sbin/hdparm -B 127 /dev/disk/by-path/pci-0000:00:17.0-ata-6
Ici la création du service (ne pas oublier de faire un systemctl enable le service créé afin qu'il soit lancé au démarrage)
[Unit]
Description=conf_hdd.service
After=default.target
[Service]
ExecStart=/var/script/conf_hdd.sh
[Install]
WantedBy=default.target
Ici c'est la gestion du spindown, j'ai mis le spindown sur 10 minutes d'inactivité disque, c'est totalement arbitraire.
-i 0 c'est pour indiquer au système de ne pas faire de spindown par défaut -a on indique le disque et -i on indique au bout de combien de temps d'inactivité on demande au disque d'arrêter de tourner -l on log la reprise d'activité des disques
HD_IDLE_OPTS="-i 0 -a /dev/disk/by-path/pci-0000:00:17.0-ata-2 -i 600 \
-a /dev/disk/by-path/pci-0000:00:17.0-ata-3 -i 600 \
-a /dev/disk/by-path/pci-0000:00:17.0-ata-4 -i 600 \
-a /dev/disk/by-path/pci-0000:00:17.0-ata-5 -i 600 \
-a /dev/disk/by-path/pci-0000:00:17.0-ata-6 -i 600 \
-l /var/log/hd-idle/idle.log"