====== Agepolix (ou comment économiser de l'énergie, du temps, et de l'effort) ======
//Laurent Fasnacht - GNU Generation//
On parle actuellement beaucoup de développement durable, et en particulier d'économie d'énergie.
Si l'informatique a fait d'énormes progrès, un PC de bureau consomme toujours environ 100W (sans écran). Pour économiser, il est clair que nous pouvons choisir des ordinateurs consommant moins, et éteindre les machines lorsqu'elles ne sont pas utilisées.
Si ces solutions sont simples théoriquement parlant, il s'avère qu'elles ne satisfont pas toujours les utilisateurs. En effet, beaucoup veulent avoir la machine "directement prête" lorsqu'ils arrivent, et ne souhaitent pas devoir patienter le temps du démarrage.
Une solutions plus innovante consiste à mettre en place un système de clients légers. Le concept est simple: les ordinateurs sont remplacés par des petites boîtes, économes en énergie, et reliés par le réseau à un serveur, qui héberge les applications et les données de tous les utilisateurs. Les clients légers ne sont responsable que des interactions avec l'utilisateurs, tous les calculs étant effectués sur le serveur.
Nous avons monté un tel système pour l'Agépoly, car il fallait 10 postes de travail supplémentaires pour les commissions, et nous estimions qu'il était important de proposer un système innovant.
S'il existe plusieurs solutions commerciales (notamment proposée par Sun ou NoMachines), nous avons décidé de mettre en place une solution basée uniquement sur des logiciels non commerciaux, et du matériel facilement disponible.
==== Matériel ====
Concernant le serveur, nous avons du matériel tout à fait standard (DELL PowerEdge). De fait, il est particulièrement important d'avoir une machine correctement dimensionnée en mémoire vive, car elle aura beaucoup d'applications à exécuter simultanément. Il est probablement raisonnable de compter au minimum 200Mo de RAM par client léger. Dans notre cas toutefois, nous avons 4Go de RAM sur le serveur, car cela laisse une certaine marge
Pour les clients légers, nous avons opté pour des ALIX 3c3, fabriqués par PC Engines ((http://pcengines.ch/alix3c3.htm)). Ils présentent l'avantage d'être de véritables ordinateurs, tout en ne consommant que 5W. De plus, ils ne coûtent pas cher (environ 150CHF).
Les ALIX sont très performants, également comme machine "indépendante", en leur ajoutant une carte Compact Flash (qui sert de disque dur).
| {{http://gnugen.epfl.ch/~fasnacht/img_fi_perennit1.jpg}} | Le serveur et un ALIX (posé dessus) |
==== Logiciel ====
Nous avons choisi d'utiliser LTSP((http://www.ltsp.org/)) pour les clients légers. L'idée de base de projet consiste à préparer une image de démarrage des clients légers à partir de la distribution installée sur le serveur.
LTSP est intégrée dans plusieurs distributions((http://wiki.ltsp.org/twiki/bin/view/Ltsp/Ltsp5Status)), et le choix s'est porté sur Ubuntu, car les utilisateurs y sont habitués.
L'installation est vraiment facile. Il suffit de choisir à l'écran de démarrage que l'ont veut installer un serveur LTSP, et de suivre les instructions (il n'y a presque pas de différence avec une installation standard).
Il faut après configurer le DHCP. Le fichier se trouve dans un emplacement non standard (/etc/ltsp/dhcpd.conf). Sur le réseau de l'EPFL, il est **fortement conseillé** de spécifier explicitement les machines auxquelles le serveur DHCP répondra, afin d'éviter de "polluer" le réseau. Voici un exemple minimaliste de fichier dhcpd.conf, qui ne donne que les paramètres pour la machine yyy dans le subnet xxx:
max-lease-time 240;
default-lease-time 180;
subnet 128.178.xxx.0 netmask 255.255.255.0 {
option domain-name "epfl.ch";
option domain-name-servers 128.178.15.7,128.178.15.8;
option routers 128.178.xxx.1;
# LTSP
option root-path "/opt/ltsp/i386";
use-host-decl-names on;
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "/ltsp/i386/pxelinux.0";
} else {
filename "/ltsp/i386/nbi.img";
}
# Liste des hosts
host yyy.epfl.ch {
hardware ethernet 00:11:22:33:44:55;
fixed-address yyy.epfl.ch;
}
deny unknown-clients;
}
Il faudra ensuite construire l'image. En résumé, cela se limite aux commandes suivantes:
ltsp-build-client --arch i386
ltsp-update-image --arch i386
D'autres commandes utiles sont **ltsp-update-kernels** (mettre à jour le noyau pour les clients légers) et **ltsp-update-sshkeys** (mettre à jour les clés SSH, indispensable si l'IP du serveur a été modifiée, ou si les clés du serveur ont changé).
On peut également paramétrer précisément comment doivent se comporter les clients, dans le fichier /var/lib/tftpboot/ltsp/i386/lts.conf. Je recommande la configuration suivante: (LDM_DIRECTX fait que la connexion n'est pas chiffrée une fois que le login est établi. Cela rend le système un vulnérable au sniffing, mais nettement plus rapide et efficace)
[default]
LDM_DIRECTX=True
SCREEN_07=ldm
Voilà... après cela vous devriez avoir un système fonctionnel. Il reste bien sûr plein de petites modifications afin d'améliorer le système, mais l'essentiel est fait.
==== Utilisation des ressources ====
N'ayant pas encore fait le déploiement des 10 clients légers, il est difficile de savoir la charge exacte que cela représentera au niveau du serveur, et du réseau.
Nous avons toutefois installé l'un d'eux, afin de pouvoir tester en circonstances réelles. Après un peu plus d'un mois d'utilisation par les membres de la GNU Generation (et quelques invités), il s'avère que la charge au niveau serveur est négligeable (presque indétectable). Par contre le réseau est assez fortement sollicité (environ 20Mbps pour un utilisateur d'internet, X11 ne faisant pas de compression).
La bande passante varie assez fortement selon le type d'utilisation. Pour la bureautique et le dessin vectoriel, celle-ci est de l'ordre de 1 à 10Mbps. À l'autre extrême, regarder une vidéo sur Youtube consomme dans les 70Mbps.
Il faudra donc veiller à assurer une connexion satisfaisante du serveur.
==== Avantages et inconvénients ====
L'avantage direct de cette infrastructure, par rapport à 10 ordinateurs normaux, est clairement le coût, non seulement d'acquisition, mais également de gestion. En effet il n'y a qu'une seule machine à gérer, le serveur. On économise également beaucoup en terme d'électricité consommée.
D'un point de vue plus pratique, les ALIX sont totalement silencieux (n'ayant aucune pièce mobile), et il semblerait que nos utilisateurs en soient très contents. De plus, LTSP fonctionne bien. Il permet notamment d'accéder à une clé USB branchée sur le client léger, et le son fonctionne correctement.
Concernant les désavantages et difficultés que nous avons rencontré... nous avons d'abord eu des problèmes pour le démarrage depuis le réseau à cause d'un serveur DHCP un peu trop "généreux" (il donnait ses paramètres aux ALIX, ce qui empêchait leur démarrage).
Du point de vue utilisation, on notera que les ALIX ne sont pas efficace pour la 3D, car ils n'ont pas d'accélération graphique. De plus, certaines applications particulièrement lourdes peuvent être lentes, en particulier si la bande passante est limitée.
En résumé, ce système convient parfaitement pour de la bureautique.
==== Autres sources intéressantes ====
Le guide d'installation rapide de LTSP sur Ubuntu ((https://help.ubuntu.com/community/UbuntuLTSP/LTSPQuickInstall)) résume les étapes pour l'installation. Il y a également le Linux Magazine France de février 2008 qui a un article sur le sujet.
Jeter un coup d'oeil au site officiel de LTSP n'est pas sans intérêt non plus.
N'hésitez pas non plus à me contacter tous renseignements et conseils sur le sujet, ou si vous souhaitez tester le système.