Cours Linux Terminal Server Project paramétrage des clients légers, tutoriel & guide de travaux pratiques en pdf.
INTRODUCTION
Le Projet de Serveur de Terminaux Linux (LTSP) offre une solution simple pour utiliser des micro−ordinateurs peu coûteux (ou recyclés) comme des terminaux graphiques ou caractère d’un serveur GNU/Linux.
Dans un environnement classique, on trouve des micro−ordinateurs à base Intel sur chaque bureau, disposant de plusieurs giga−octets d’espace disque. Les utilisateurs y stockent leurs données respectives, mais rares sont les disques durs locaux effectivement sauvegardés.
Est−il vraiment raisonnable d’installer un ordinateur complet sur chaque bureau ?
Nous pensons que non.
Il existe heureusement une autre solution. En utilisant LTSP, vous pourrez (ré)utiliser des PCs d’entrée de gamme, en retirer le disque dur, le lecteur de disquette et de CD−ROM et y installer une carte réseau. La plupart des cartes réseau disposent d’un emplacement prévu pour accueillir un « bootrom » (un circuit contenant un programme de démarrage), qu’il suffit d’insérer pour démarrer depuis le réseau.
Pendant la phase de démarrage, la station sans disque (client léger) récupère son adresse IP et un noyau Linux depuis le serveur, puis monte la racine de son système de fichiers (/) depuis ce même serveur via NFS.
Le client léger peut être configuré dans un des 3 modes suivants :
Interface graphique X Window•
Avec X Window, le client léger peut être utilisé pour accéder à n’importe quelle application installée sur le serveur LTSP, ou n’importe quel autre serveur du même réseau.
Sessions Telnet en mode caractère•
Le client léger peut créer plusieurs sessions telnet vers le serveur. Chacune de ces sessions telnet sera accessible sur un écran virtuel séparé. En utilisant les touches Alt−F1 à Alt−F9, vous pouvez ainsi passer d’une session telnet à une autre.
Ligne de commande (prompt shell)•
Le client léger peut enfin être configuré pour entrer directement dans un shell bash en mode console locale. Ceci est particulièrement utile pour la mise au point en cas de problème avec X Window ou NFS.
Le grand avantage de LTSP est de pouvoir déployer un nombre important de clients légers à partir d’un seul serveur GNU/Linux. Combien ? Cela dépend bien sûr des capacités du serveur et des applications qui seront utilisées.
Il est tout à fait possible de faire fonctionner Mozilla et Open Office sur 50 clients légers reliés au même serveur bi−processeur P4 2.4 Ghz avec 4 Go de Ram. Nous savons que cela marche. Et la charge moyenne du serveur dépasse rarement 1.0 !
Etapes de démarrage du client léger
Chargement du noyau Linux en mémoire du client léger. Ceci peut être réalisé de plusieurs manières :
1.avec un Bootrom (Etherboot,PXE,MBA,Netboot) ;a. à partir du lecteur de disquette ;b. à partir du disque dur ;c. depuis un CD−ROM ;d. ou d’une clé mémoire USB.e. Chacune de ces méthodes de démarrage sera détaillée dans ce chapitre.
Une fois le noyau Linux chargé dans la mémoire du client léger, il va commencer à s’exécuter.
2.Le noyau va initialiser l’ensemble du système et tous les périphériques qu’il peut reconnaître.
3.C’est ici que les choses sérieuses commencent : pendant le chargement du noyau, une image de disque virtuel est également chargée en mémoire du client léger. Un argument de la ligne de commande root=/dev/ram0 demande au noyau de monter cette image comme racine de son système de fichiers.
4.En principe, lorsque le noyau a terminé son démarrage, il lance le programme init pour continuer l’initialisation du système. Mais ici, il est demandé au noyau de lancer un petit script shell se trouvant sur le disque virtuel. Ceci est fait en passant l’argument init=/linuxrc sur la ligne de commande du noyau.
5.Le script /linuxrc commence par un balayage (scan) du bus PCI du client léger, afin de rechercher une carte réseau. Chaque composant PCI trouvé est comparé aux descriptions stockées dans le fichier /etc/niclist. En cas d’égalité, le nom du module−driver correspondant à la carte réseau trouvée est renvoyé par le script, et ce module est chargé en mémoire. Pour les cartes ISA (qui ne sont pas détectées automatiquement), le nom du module−driver DOIT impérativement être spécifié sur la ligne de commande du noyau, ainsi que ses paramètres éventuels (IRQ, adresses E/S, DMA, etc).
6.Un petit module client DHCP appelé dhclient est ensuite lancé, afin d’envoyer une nouvelle requête.
au serveur DHCP. Cette requête, émise depuis le mode user, est nécessaire pour récupérer des informations supplémentaires que la première requête du bootrom ne pouvait retourner.
Lorsque dhclient reçoit une réponse du serveur, il exécute alors le script /etc/dhclient−script, qui récupère les informations renvoyées et configure l’interface eth0.
8.Jusqu’à cette étape, le système de fichiers était un disque virtuel en ram. Le script /linuxrc va maintenant monter un nouveau système de fichiers sur sa racine (root) via NFS. Le répertoire exporté par NFS depuis le serveur vers le client léger est en principe /opt/ltsp/i386. Cette opération ne peut être réalisée en montant directement ce répertoire sur /. Il doit d’abord être monté sur /mnt, puis la commande pivot_root est lancée. pivot_root va échanger la racine courante (le disque virtuel) avec le nouveau système de fichiers. Lorsque cela est terminé, le répertoire exporté par NFS est monté sur / et l’ancienne racine est montée sur /oldroot.
9.Une fois le montage et l’échange de racine effectués, le script /linuxrc a terminé son travail. Il est temps d’appeler le véritable programme /sbin/init.
10.Init va lire le fichier /etc/inittab et mettre en place l’environnement du client léger.11.
Un des premières commandes d’inittab à être exécutée est le script rc.sysinit qui restera actif tant que le client léger est dans sa phase ‘sysinit’.
12.Le script rc.sysinit crée un nouveau disque virtuel en mémoire (ramdisk) de 1 Mo, destiné à contenir toutes les données et informations devant être écrites ou modifiées par la suite (disque en lecture/écriture).
13.Ce disque virtuel est monté en tant que /tmp sur le système de fichiers local du client léger. Tous les fichiers en lecture/écriture du système de fichiers seront stockés dans /tmp, et ce même s’ils sont dans d’autres répertoires locaux, grâce à des liens symboliques pointant vers ces fichiers.
14.Le (pseudo) système de fichiers /proc est ensuite monté.15.
Le fichier lts.conf est examiné, et tous les paramètres spécifiques au client léger en cours d’initialisation sont exportés comme variables d’environnement, afin que le script rc.sysinit puisse les utiliser par la suite.
16.Si le client léger est configuré pour accéder à un fichier−partition de swap via NFS, le répertoire /var/opt/ltsp/swapfiles du serveur est monté sur le répertoire /tmp/swapfiles du client léger. Si le fichier de swap n’existe pas encore dans ce répertoire, il est automatiquement créé. Sa taille est paramétrable (à spécifier dans le fichier lts.conf du serveur).
17.Le fichier de swap est alors activé par la commande swapon.
L’interface réseau loopback est ensuite configurée. Il s’agit de l’interface « interne » ayant pour adresse IP 127.0.0.1.
18.Si l’exécution locale d’applications est activée, le répertoire /home du serveur est exporté via NFS pour être monté sur le répertoire /home du client léger, afin que les applications puissent avoir accès aux répertoires personnels des utilisateurs.
……..