La déduplication extrême d'OS

Documentation détaillée de SIDUS sur le site du Centre Blaise Pascal

  • Offrir à un utilisateur un environnement complet en quelques secondes,
  • simplifier la gestion de centaines de noeuds de calcul, de postes mutualisés ou de stations de travail personnelles,
  • limiter l'empreinte du stockage de l'OS sur ses machines,
  • analyser des machines compromises sans démonter quoique ce soit,
  • tester de nouveaux équipements sans installer de système

Tel est l'objectif de SIDUS (pour Single Image Distributing Universal System). Initié au Centre Blaise Pascal (Université de Lyon) dès février 2010 pour factoriser le travail de son seul administrateur système (et 180 machines), il est maintenant utilisé par le centre de calcul (PSMN), des laboratoires de l'ENS-Lyon et l'UJF.

What SIDUS is not...

  • LTSP : LTSP propose une gestion simplifiée de terminaux légers en offrant un accès X11 ou RDP à un serveur : ce dernier supporte ainsi toute la charge de traitement. A contrario, SIDUS exploite entièrement (ou à discrétion de l'utilisateur) toute la machine qui s'y raccroche. Seul le stockage du système d'exploitation est déporté sur des machines tierces.
  • FAI : FAI ou Kickstart proposent une installation complète simplifiée permettant de limiter voire d'éliminer toute action de l'administrateur. A contrario, SIDUS propose un système unique dans un arbre intégrant à la fois le système de base et toutes les applications installées manuellement.
  • monolitique : dans le cadre de formations en informatique, trois solutions s'offrent aux utilisateurs : exploiter les machines mises à disposition, utiliser leur équipement personnel, installer un environnement virtuel complet figé au téléchargement et donc difficilement modifiable. A contrario, SIDUS offre le environnement unique aisément configurable.
  • "original" : SIDUS exploite des services disponibles sur n'importe quelle distribution. DHCP, PXE, TFTP, NFSroot, DebootStrap, AUFS : quelques mots clés permettant d'installer SIDUS. Il utilise en outre des astuces de distributions de LiveCD et fonctionne sur la distribution Debian depuis sa version Etch.
En définitive, SIDUS est :
  • universel : toutes les plates-formes, x86 ou x86_64, fonctionnent instantanément ;
  • efficace : installation en quelques minutes, démarrage en quelques secondes ;
  • économe : à l'origine, 1 coeur, 1Go de RAM, 40Go d'espace disque, et un réseau (GigaBit) Ethernet
  • scalable : testé sans difficulté avec une centaine de noeuds ;
  • polyvalent : avec la Debian et tout "science", toutes les sciences ont leur compte d'Open Source.

Comment installer le système ?

Le prérequis est réduit, à commencer par un réseau idéalement comparable au débit d'un disque dur. Côté services, sont nécessaires : serveurs DHCP, DNS, TFTP et NFS. Les deux derniers vont "porter" SIDUS. La version opérationnelle exploite en outre serveurs LDAP (identification/authentification) et NFSv4 (espaces utilisateurs). Côté client suffit un démarrage PXE (par la carte ou par GPXE sur CDROM ou clé USB).

L'installation comporte 5 phases :
  • installation de base (socle Debian)
  • installation des paquets complémentaires (TOUT Debian-Science)
  • purge de paquets non désirés
  • adaptation du système à l'environnement local (authentification et partages utilisateurs)
  • création de la séquence de démarrage

Durant l'installation, les phases coûteuses sont le téléchargement des paquets et le paramétrage de quelques composants (Perl et LaTeX). Elle dure au mieux 45 minutes pour un arbre complet de 32 Go. Quelques précautions sont cependant nécessaires, liées au montage de dossiers systèmes et l'inhibition du démarrage des services à leur installation dans SIDUS.

Comment maintenant l'offrir sans le dupliquer ? Une première approche a utilisé un cortège de montages volatiles (à base de TMPFS) : elle n'est pas viable. La préférence s'est portée sur mécanisme de LiveCD très répandu : la séquence de démarrage intégre ainsi la superposition de deux couches par le liant AUFS (évolution de UnionFS), l'une lecture seule (le CDROM pour le LiveCD et NFS chez nous), l'autre lecture/écriture (en TMPFS)

Mais comment bénéficier de SIDUS mais disposer d'un paramétrage conservé d'un démarrage à l'autre ? La première avec un montage NFS exclusif pour chaque noeud a été abandonnée, remplacée par un montage iSCSI associé à chaque noeud. Actuellement, au CBP, les machines SIDUS nécessitant une persistance (comme les noeuds Distonet) utilisent le mécanisme NFSroot+iSCSI=AUFS, les autres NFSroot+TMPFS=AUFS.

Quelques adaptations spécifiques

Les machines mises à disposition sont assez hétérogènes : les noeuds de clusters (disposant d'équipements réseau rapides), les stations de travail (embarquant des cartes graphiques) ou les machines virtuelles (exigeant un partage des données et une accélération graphique) demandent quelques adaptations. Une première solution serait la persistance, mais trop lourde pour les grands parcs de machines : seront préférées l'utilisation de scripts de démarrage, l'exploitation d'un arbre SIDUS séparé ou l'installation de composants tierces.

Comment administrer le système ?

Si l'administration est plus lourde que son installation, le bénéfice du premier efface la perte récurrente du second. Finalement, avec SIDUS, chaque phase d'administration intègre les mêmes mécanismes qu'à l'installation : protection contre le démarrage et montages de dossiers systèmes. Le reste est identique.

Où, ou quelles "success stories" ?

  • Les postes utilisateurs : machines mutualisées ou stations de travail individuelles ? Tout a commencé avec une douzaine de clients légers Neoware gonflés en mémoire et overclockés. Ces machines sont une vingtaine aujourd'hui.
  • Les noeuds de cluster, après un démonstrateur de 24 noeuds en mars 2010, SIDUS sert 88 noeuds permanents, sur 4 architectures matérielles différentes.
  • Les postes virtuels : depuis 2011, l'UJF organise chaque année une école d'été sur le calcul numérique. Au programme, 10 jours denses ponctués de travaux pratiques : offrir un environnement homogène quasi-instantanément est indispensable. Deux images virtuelles sont proposées : l'une persistante utilisable après l'école d'été, l'autre par SIDUS. Ainsi, les professeurs peuvent, quotidiennement, adapter leurs TPs. Cette version est aussi utilisée, depuis l'été 2012, par le laboratoire de chimie de l'ENS-Lyon.
  • Les machines suspectes : le démarrage par le réseau offre une investiguation de la mémoire de masse système éteint : inutile d'utiliser un LiveCD sur lequel manque toujours son outil "forensics" préféré.
  • Les machines de prêt : les fabricants de matériels proposent souvent des équipements d'évaluation. La phase d'installation peut être pénible sur des matériels récents. Avec SIDUS, le système démarre comme sur les autres équipements déjà en service : quelques minutes pour 20 noeuds.

Pour qui : Quels avantages ?

Côté utilisateur

La machine démarre avec seulement les ressources associées. La version VirtualBox fonctionne au moins sur Linux, Windows et MacOSX : accélération 3D et partage avec l'hôte sont disponibles. L'utilisateur retrouve exactement le même environnement que sur les noeuds : l'intégration des codes est donc grandement facilitée. Côté performances, les pertes liées à la virtualisation oscillent entre 10 et 20% (pour VirtualBox) et autour de 5% pour KVM.

Côté administrateur

Une opération impacte l'ensemble de l'infrastructure, de l'ordre du simple "sync" sur l'arbre SIDUS. L'installation se déroule en quelques dizaines de minutes pour un système complet. Si des différences entre les systèmes sont minimes, un usage simple de scripts ou de puppet suffit. Si la différence entre les systèmes est importante, un autre arbre SIDUS est construit, voire cloné instantanément avec des mécanismes de snapshot : LVM ou plutôt ZFSonLinux.

Côté expérimentateur

Ingénieur système ou scientifique, l'environnement SIDUS lui offre la reproductibilité. Deux noeuds démarrant sur le même socle SIDUS disposent exactement du même système. Cela permet ainsi, que les machines soient identiques ou pas, de mener des tests vraiment pertinents.

Combien : Quelles ressources ?

A titre d'exemple, le serveur des clusters du CBP, également passerelle, héberge les services DHCP, DNS, TFTP, NFS et le serveur de batch OAR. Au démarrage de toute l'infrastructure (88 noeuds), le serveur NFS encaisse sans broncher jusqu'à 900 Mb/s.

Conclusion

Quelque soit l'environnement (noeud HPC, poste de travail, machine virtuelle), SIDUS apporte une flexibilité inégalée, autant pour l'utilisateur que pour l'administrateur de ces ressources. Sa frugalité, sa rapidité de propagation en fait un outil d'une rare polyvalence. L'essayer, c'est l'adopter !