FLASH INFORMATIQUE FI



Un, deux, trois... serveurs !


Comment multiplier le nombre de serveurs pour des services essentiels sans augmenter dramatiquement la charge d’administration système.



How to multiply the number of network services servers without overloading the tasks of system administration.


Richard TIMSIT


Comme annoncé dans le précédent article du FI 04, Des logiciels libres pour les services IP  ?, voici comment nous sommes sortis de notre préhistoire et avons suivi la montée en charge en assurant la haute disponibilité de nos services. Il est devenu évident qu’offrir l’accès aux ressources d’Internet est un impératif qu’il faudrait assurer 24 heures sur 24 et 7 jours sur 7. Il est non moins évident que le coût d’une telle prestation est encore bien loin d’être accepté par nos décideurs... Moralité, il y a une bonne décennie que nous nous sommes employés à consolider nos services par de la redondance en multipliant les serveurs. Au préalable, disons d’emblée que pour mettre en place de tels mécanismes, il faut soigner l’architecture en se débrouillant pour disposer de services sans état, par exemple des serveurs DNS Secondary qui restent esclaves d’un Master, ou des serveurs RADIUS accédant en lecture seule à la base de données des utilisateurs. Ainsi on peut multiplier les serveurs en fonction des besoins.
Cette stratégie a sa limite que tous les administrateurs de systèmes connaissent bien, celle de la charge que représente le déploiement. Nous avions parlé de notre choix de GNU-Linux pour héberger nos services réseau sans préciser le choix de la distribution. Et pour cause, nous n’avions pas de religion et notre seul critère était la facilité de maintenance dans notre contexte. Nous avons donc commencé par utiliser la distribution préconisée pour les serveurs par le DIT (RedHat) avant de nous orienter vers une tout autre architecture.
La première idée a consisté à séparer la notion de serveur de celle de service. Nous avons construit 4 serveurs pour rendre nos trois services DNS, DHCP et RADIUS, chaque serveur pouvant abriter n’importe lequel des services et tenir la charge en les assurant tous, il était simple d’automatiser la commutation en cas de panne ou de maintenance d’un serveur. Cette souplesse extrêmement triviale à mettre en œuvre nous a servi quelques années.

L’apport de Knoppix

Il nous fallait multiplier le nombre de serveurs avec l’accroissement du nombre de machines sur le campus et le nécessaire déploiement du WiFi sollicitant le service RADIUS pour l’authentification et l’acounting.
En 2003, Klaus Knopper a eu la bonne idée de concevoir une distribution pour un canalLiveCD. Fabriquer autant de LiveCD que de serveurs à instancier coulait alors de source. Il était aisé de mettre au point une petite fabrique de ces images ISO qu’il suffisait de graver et d’introduire dans la fente d’un hardware pour disposer d’un serveur dédié à un service. Cette notion de serveur minimal pour rendre le service était en fait une canalappliance un peu avant l’heure. Nous nous sommes éloignés de la solution Knoppix pour profiter du concept de Kickstart dont nous avions l’habitude dès qu’ il a été mis en œuvre dans le projet Fedora avec canalKadischi. Knoppix ayant été conçu pour montrer tout ce que pouvait contenir une distribution GNU-Linux, il fallait dégraisser le mammouth pour arriver à nos fins. Avec Kadischi et Kickstart on travaillait plus naturellement en ajoutant ce qu’il nous fallait à un noyau minimal.

Là encore, nous avons utilisé cette solution jusqu’à la banalisation de la virtualisation (cf. article du FI 04/2008) concomitante au déploiement du Server Load Balancing (cf.l’article du FI 06/2008).

La notion d’appliance

Plutôt que de graver des CD, il suffisait de propager les images ISO pour instancier autant de machines virtuelles que nous en avions besoin. Nous affinions les méthodes de production dans notre fabrique, mais nous n’étions pas encore entièrement satisfaits du modèle.
Le projet Thincrust, allait nous fournir les outils qui nous manquaient pour produire des appliances. Là encore si nous sommes restés attachés à Fedora, c’était juste pour profiter de notre acquis sur Kickstart. Toutes les distributions offrent une solution  JeOS (juste l’OS qu’il faut pour une application). Ces solutions répondent non seulement à l’économie du cloud où chaque byte et chaque cycle ont un coût, mais aussi à cette devise des pionniers des avionneurs : « Ce qui n’existe pas ne coûte rien, ne pèse pas, ne tombe pas en panne... [1] ».
Appliance-creator (fruit du projet ThinCrust) est un outil disponible dans les dernières versions de Fedora. Il nous permet à partir d’un fichier de description Kickstart, de fabriquer en quelques minutes l’image d’une machine capable de faire tourner l’application que l’on veut et de l’instancier sur n’importe quel système de virtualisation. Sur le campus, disposant de VMware c’est cette cible que nous visons, mais nous pourrions faire tourner nos images ailleurs...

Conclusion

Juste l’OS qu’il faut pour rendre un service réseau, générer l’image qui tournera n’importe où pour l’assurer, reproduire ces images sans le moindre effort à partir de leur fichier de description, confier la répartition de charge et la haute disponibilité à un automate intrinsèquement lié au réseau, tel est le point auquel nous sommes arrivés. Comment envisager l’avenir  ? L’infrastructure du réseau n’étant rien d’autre qu’un ensemble logiciel tournant sur du hardware de moins en moins spécifique il n’est pas étonnant qu’elle ait subi la même évolution que le reste de notre informatique. Faire tourner les services réseau sur les équipements réseau eux même n’est donc plus une utopie et déjà la réalité chez certains constructeurs qui ont choisi GNU-Linux comme OS d’accueil....


Article du FI-EPFL 2011 sous licence CC BY-SA 3.0 / R.Timsit



Glossaire

appliance :
application informatique qui combinée avec juste ce qu’il faut de système d’exploitation peut s’exécuter de façon optimale sur une machine physique ou virtuelle.
JeOS :
(Just Enough Operating System) : caractérise l’appliance pour un système minimum suffisant pour faire tourner une application spécifique.. W
Kadischi :
application dans Fedora qui permet de créer des Live CD.
liveCD :
autonome qui contient un système d’exploitation exécutable sans installation. W
W = tiré de Wikipédia

[1] Jean Délémontez (Concepteur des avions Jodel)



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.