Cas de mise en place
Comment faire son choix parmi toutes les solutions que je vais vous proposer ?
Voilà les différentes solutions et leurs implications.
Le choix d’un système par nfs, le système sera contenu dans un dossier simple ce qui le rendra facilement modifiable
- Avantages :
- simple à mettre en oeuvre
- éprouvé depuis longtemps
- pas de réelle modification du système exporté
- Inconvénients :
- fragmentation assez importante car tous les fichiers requis par le système sont répartis sur tout le disque dur
- débit réseau important
- cache disque du serveur divisé entre tous les systèmes
Le choix d’une image système à l’intérieur du serveur, le système sera contenu dans une image en lecture seule et les modifications seront stockées dans un dossier
- Avantages :
- économie de l’espace disque car seuls les différences sont stockées<puce>restauration rapide de l’image de base supprimant toutes les différences<puce>possibilité d’intervenir simplement sur le système
- pas de réelle modification du système exporté
- Inconvénients :
- débit réseau important
- cache disque du serveur divisé entre tous les systèmes
- cela peut devenir très lourd lors de nombreux points de montage
Le choix d’une image système sur la machine qui boot, le système sera contenu dans une image en lecture seule et les modifications seront stockées dans un dossier
- Avantages :
- économie de l’espace disque car seules les différences sont stockées
- restauration rapide de l’image de base en supprimant toutes les différences
- économie de la bande passante
- cache disque mieux utilisé car le serveur ne fait que desservir quelques images principales et brasser quelques fichiers, le cache des machines bootant sur le réseau est aussi utilisé.
- Inconvénients :
- intervenir sur une images peut devenir très compliqué ;
- obligation d’avoir un initrd (micro-système de boot) personnalisé.
Les deux structures typiques
- un serveur, un switch, des ordinateurs : c’est le cas le plus courant, et sûrement le cas que vous allez utiliser. L’utilisation de la bande passante doit être maitrisée ;
- un serveur réel et des serveurs virtuels : vous avez un serveur réel, et des machines virtuelles dessus, ce qui permet de ne plus travailler avec des disques durs virtuels mais utilisé un partage réseau pour stocker son système, ce qui fait qui vous n’aurez plus d’espace alloué et ne servant à rien dans un gros fichier représentant le disque. Au vu de la structure, seul le serveur va gérer le système de fichiers, ce qui produit un gain de performance.
Le noyau du serveur
File systems ---> Miscellaneous filesystems ---> <*> SquashFS - Squashed file system support [*] Additional option for memory-constrained systems (3) Number of fragments cached |
Le noyau du client
File systems ---> Network File Systems ---> <*> Vifs/samba fs
<*> Another unionfs Maximum number of branches (127) --->
[ ] Use <sysfs>/fs/aufs/stat
[*] Use inotify to detect actions on a branch
[*] NFS-exportable aufs
[ ] Aufs as an readonly branch of another aufs mount
[*] Delegate the internal branch access the kernel thread
[ ] Show whiteouts
[*] Make squashfs branch RR (real readonly) by default
[*] splice.patch for sendfile(2) and splice(2)
[ ] Debug aufs
[ ] Compatibility with Unionfs (obsolete)
[ ] Unionfs-2.2 or later patch is applied or not (obsolete)
[ ] Unionfs-2.3 or later patch is applied or not (obsolete)
<*> SquashFS 3.3 - Squashed file system support
[*] Additional option for memory-constrained systems
(3) Number of fragments cached
[*] Additional option for memory-constrained systems (3) Number of fragments cached
Networking support --->
|
Et mettez en dur toutes les cartes réseaux.
Logiciel, version et matériels
- Gentoo netinstall,
- noyau 2.6.30-r18,
- aufs en cvs,
- squashfs 3.4,
- samba 3.5
Coté serveur :
- samba 3.5,
- dhcp-3.1.0,
- tftp-hpa-0.48.
Pour l’ordinateur démarrant sur le réseau, il faut activer dans le BIOS ROM NETWORK dans onboard devices ou équivalent, sauvegarder, rebooter, aller dans le BIOS, puis dans le menu boot order, sélectionner le réseau en premier. Merci de vous référer au guide de votre carte mère pour plus d’informations. Tous les ordinateurs ne sont pas capables de booter en réseau. Dans ce cas, il existe des alternatives telles que mettre un BIOS open source capable de booter sur le réseau (coreboot + gPXE, coreboot + grub, …), ou installer sur un média bootable un chargeur de démarrage, le noyau et l’initrd de votre système réseau. Tous les PC virtuels que je connais sont capables de booter en réseau, il ne faut que le sélectionner dans le BIOS (vmware), ou dans la ligne de commande (kvm) les options adéquates.
Serveur dhcp
123456789101112131415161718192021222324252627282930313233 |
# bootallow booting;allow bootp;filename "pxelinux.0";ping-check = 1;# dhcpdefault-lease-time 2678400;max-lease-time 2678400;# domain et dnsoption domain-name "monnom.local";ddns-update-style none;# Serveur dhcp unique sur le réseauauthoritative;# interface desserviesubnet 192.168.0.0 netmask 255.255.255.0 { option domain-name "monnom.local";# remplacer par votre serveur DNS option domain-name-servers 192.168.0.1; range 192.168.0.10 192.168.0.99;# désactivé si votre serveur ne sert pas de passerelle option routers 192.168.0.1;}host pcenipfixe {# remplacer par l'adresse MAC de votre carte réseauhardware ethernet 00:1A:4D:58:85:4F;# remplacer par l'IP fixe vouluefixed-address 192.168.0.10;} |
1 |
net.ipv4.ip_forward = 1 |
Serveur tftp
Le serveur tftp est en fait un serveur ftp minimal. Il permet de distribuer le fichier de boot, et tous les fichiers utiles au lancement du système, tels que les noyaux, les initrd, …
Voir ce lien pour voir le dossier d’exemple /mnt/pxe/ :
http://files.first-world.info/howto/pxe-exemple/mnt/pxe/
Tout le dossier est téléchargeable ici :
http://files.first-world.info/howto/pxe-exemple/mnt/pxe.tar.bz2
Le fichier pxelinux.0 sert de rom pour faire chargeur de démarrage.
Le dossier pxelinux.cfg contient le menu principal par défaut (pxelinux.cfg/default) mais on peut spécifier un fichier spécifique à un PC en l’identifiant par son adresse MAC. Je ne m’attarderai pas plus dessus.
J’ai rempli le dossier d’exemples divers, d’installeur réseau (pour installer par le réseau au lieu des cd), de live système, d’utilitaires, … j’ai mis aussi des fonds d’écran dans chaque menu, à vous de l’explorer un peu.
Dans votre distribution, installer le packet tftp-hpa, sous Gentoo
Sous gentoo, éditer le fichier /etc/conf.d/in.tftpd puis y mettre :
Code : Autre – Sélectionner
12 |
INTFTPD_PATH="/mnt/pxe/"INTFTPD_OPTS="-R 4096:5120 -a 192.168.0.1 -u nobody -s ${INTFTPD_PATH}" |
Vous pouvez lancer le serveur in.tftpd, si votre distribution le supporte, vous pouvez le lancer comme un service