Stations linux avec disque dur mais sans aucune maintenance - Divers - Linux et OS Alternatifs
Marsh Posté le 08-02-2006 à 15:34:27
rsync te convient-t-il ?
Marsh Posté le 08-02-2006 à 15:49:30
Je ne crois pas, le but du jeu n'est pas vraiment de mettre a jour de cette facon les stations clientes quand quelque chose a changé sur le serveur. On pourrait je pense l'envisager comme ca mais je pense que ca ne permettrait pas si facilement une reinstallation complete du systeme de facon rapide en cas de systeme de fichier corrompu ?
En fait le but est que la station cliente demarre et :
Si y'a une nouvelle version du systeme de fichier sur le serveur on la charge et l'on l'installe. (100Mo maxi se sera un linux minimaliste)
Si le systeme local est corrompu, la station se repare toute seule en chargeant le systeme depuis le serveur et en le reinstallant.
En fait c'est pas que je cherche une solution pour le faire, je pense que c'est tout a fait faisable comme je l'ai decrit dans mon post, je voulais savoir si quelqu'un avait deja mis en place un principe proche de celui ci, et savoir si c'etait efficace.
A+
Marsh Posté le 08-02-2006 à 16:26:32
deux questions :
- comment tu met à jour le noyau et l'initrd des stations?
- Comment tu identifies les alterations du systeme? Hashage?
Marsh Posté le 08-02-2006 à 16:37:31
si ta partoche système est corrompue, tu fais comment pour booter?
sinon, j'ai déjà vu ce genre de système, mais avec du pxe je pense, sur des clusters de calcul (chaque noeud se réinstalle à partir d'une image sur le serveur maitre, à chaque fois qu'il boot)
Marsh Posté le 08-02-2006 à 16:48:33
J'avais pas precisé cela effectivement.
Cela se ferait quand la station demarre sur le systeme de fichier local, il y aurait un script au demrrage qui irait voir sur le serveur s'il y'a un nouveau noyau+initrd de dispo. Si oui, le le telecharge et on l'installe.
Pour les alterations du systeme, je pense qu'il doit y avoir moyen de savoir avant de monter la partoche si le systeme de fichier a été coupé brutalement ou pas ? Si oui, reinstallation complete du systeme.
Et si la partoche systeme est corrompue, ca gene pas pour demarrer le noyau et l'initrd. C'est pour cela que la verification / mise a jour du systeme doit se faire dans le initrd. En effet il me semble bien que le noyau et le initrd se trouve dans le MBR du disque dur non ?
Marsh Posté le 08-02-2006 à 17:07:15
heu non, le noyau et l'initrd se trouvent dans /boot donc dans / si tu n'as pas de partoche séparée
Marsh Posté le 08-02-2006 à 17:08:45
Non, y'a que ton boot manager dans le mbr du disque.
A la limite, mettre ton noyau et ton mbr dans une partoche que tu montes lors du boot puis que tu demontes juste apres, ca peut diminuer les risques d'alteration, mais le risque existe toujours.
Marsh Posté le 08-02-2006 à 17:18:33
Il me semblait que la commande lilo permettait de recuperer les noyaix et les initrd dans /boot pour les mettre ailleurs dans le disque dur.
Ca veut dire que lilo sait lire du ext3 ou n'importe quel autre systeme de fichier ?
Marsh Posté le 08-02-2006 à 17:26:00
J'ai fait un essai, virer du repertoire /boot le noyau habituel sur lequel je boote :
Redemarrage du PC, ca ne l'a pas empeché de booter sur ce noyau.
Donc le boot manager ou est-ce qu'il a pu le recuperer ?
EDIT : idem si je vire le initrd, ca ne le gene pas le moins de monde au demarrage
Marsh Posté le 09-02-2006 à 01:02:47
Ah ben je comprends plus là !
Tout a l'heure j'avais fait cela (win4lin c'est mon noyau habituel) :
cp /boot/win4lin /boot/win4linOld
rm /boot/win4lin
--> J'ai fait ca pour ne pas supprimer le noyau, mais pour quand meme etre presque sûr de le changer de place physiquement dans le disque dur.
Apres 2 reboots ca marchait parfaitement, puis j'ai eteint le PC 3 heures, et apres rallumage ca bootait plus ! Blocage dans lilo...
Donc il faudra que je mette les noyaux et initrd dans une partoche a part, en lecture seule par exemple. Comme ca, pas de probleme de corruption.
Mais bon en principe, si le noyau est bien etudié, il n'y a en principe pas vraiment besoin de le changer (a moins d'un gros pb de securité bien sur)
Marsh Posté le 09-02-2006 à 01:13:10
nlc > projet université je suppose... ??
Marsh Posté le 09-02-2006 à 01:19:38
Non en fait pour l'instant c'est un projet personnel, mais je voudrais l'appliquer ensuite a mon travail.
Marsh Posté le 09-02-2006 à 09:03:54
le bootloader va memoriser un numero de bloc disque ou se trouve le fichier dont il a besoin. Meme si le systeme de fichier n'y fait plus reference, les données sont toujours là jusqu'à ce que le systeme decide de reecrire par dessus...
Marsh Posté le 09-02-2006 à 14:04:03
nlc a écrit : Ah ben je comprends plus là ! |
nicolbolas a écrit : le bootloader va memoriser un numero de bloc disque ou se trouve le fichier dont il a besoin. Meme si le systeme de fichier n'y fait plus reference, les données sont toujours là jusqu'à ce que le systeme decide de reecrire par dessus... |
Ce qui explique pourquoi tu peux même t'abstenir de monter /boot au démarrage.
sinon, pourquoi pas un / en lecture seule avec un tmpfs et seulement un /var, là t'as quand même quasi aucune chance d'avoir des corruptions sauf à avoir un disque physiquement défaillant.
Marsh Posté le 09-02-2006 à 15:09:49
Oui c'est une bonne idée : tout le systeme serait en lecture seule, sauf une partition qui contiendrait /tmp, /var et /home
Et au demarrage, si on voit que cette partition a été mal demontée, on la formate et on recrée les repertoires tmp var et home
Du coup ca permet d'eviter de telecharger et reinstaller le systeme complet en cas de systeme de fichier alteré.
Marsh Posté le 09-02-2006 à 15:12:24
si tu as de la RAM, tu peux même coller /tmp en ram avec tmpfs, ça marche bien et çà limite énormément les écritures sur le disque.
Marsh Posté le 09-02-2006 à 15:40:45
Niveau RAM ca risque de pas depasser les 256Mo, donc c'est quand meme relativement faible :-/
Marsh Posté le 10-02-2006 à 10:46:50
Simple suggestion:
Utiliser des PC transformés automatiquement en Terminaux X avec gestion des périphériques locaux (Mandriva: drakTermServ avec le paquetage terminal-server-localdevices ou ltsp avec les indications ici
Ou bien, sur chaque station, booter à partir d'un système autoconfigurant (à la knoppix) sur clé USB, Slax modifié qui
- lance en init, non pas un environnement de bureau sous X mais un X -query IP_serveur_d'applications_XDMCP
- lance un serveur pour le disque local (ssh, ftp, webdav...)
A signaler un live-cd qui transforme un PC en TX.
Il y en a un aussi chez AbulEdu.
Autre évocation, peut-être PXE serait-il fonctionnel en WiFi avec un pont Wifi ?
Toutes les stations doivent-elles disposer de disque dur, parce que sinon il y a ça
Marsh Posté le 15-02-2006 à 14:51:35
Si tu peux monter ton reseau à base de serveur d'application, la solution client leger est vraiment la meilleure. Tu n'as plus aucune question à te poser au niveau client, les machines sont pour ainsi dire jetables...
Au niveau serveur tu as l'embarras du choix. Au boulot j'ai un windows 2000 AS en terminal server pour 10 utilisateurs sur une machine HP à 800. Mais si tu veux taper plus haut, un athlon X2 ou bi-opteron, sous linux ou windows serveur 2003, avec 4 ou 6Go de ram, ça va te servir une bonne cinqantaine de sessions avec une suite bureautique, un client de mail et un navigateur par user.
Marsh Posté le 08-02-2006 à 15:32:17
...sans aucune maintenance software je veux dire.
Je m'explique.
Je voudrais creer un systeme avec un serveur et plusieurs stations clientes, celles ci ne devant avoir strictement aucune maintenance software.
Il existe bein entendu deja une solution, le boot par le resau en PXE et le montage du systeme de fichier par NFS, ce qui evite meme le disque dur.
Dans mon projet, il faut imperativement un disque dur, et les stations peuvent etre en wifi, donc le boot PXE est impossible.
Les stations doivent etre extremement robustes a tout ce qui est coupure brutale du systeme, le systeme doit etre operationnel a 100% au demarrage suivant.
Voici mon idée :
Au boot, le noyau demarre et charge un ramdisk initial (initrd). Le noyau execute donc le script linuxrc. En general le initrd permet de charger les modules adequat pour la suite du demarrage (modules pour les disques scsi, ext3, etc...).
Mon idée est de modifier ce script initrd pour qu'il fasse les choses suivantes :
- Configurer le reseau
- Reclamer son adresse IP par dhcp
- Telecharger sur le serveur un script de maintenance (par tftp, ou wget, ou ftp, peu importe)
- Executer ce script de maintenance
Le script de maintenance ferait les choses suivantes :
- Telechargement sur le serveur du n° de version courante du systeme
- Montage du systeme de fichier local
- Si le systeme de fichier est OK, et que la version de ce systeme correspond avec la version qu'on a demandé au serveur, on continue le demarrage normal de linux sur ce systeme de fichier
- Si le systeme de fichier est erroné, ou qu'il y'a une version plus recente du systeme sur le serveur alors :
- On formate la partition contenant le systeme de fichier
- On telecharge sur le serveur une archive qui contient le nouveau systeme de fichier
- On l'extrait sur la partoche du systeme de fichier
- On demarre dessus
Que pensez vous de ce principe ?
Ca permet plusieurs chose : Pour mettre a jour les stations clientes il suffit d'avoir sur le serveur l'image du systeme. Quand au demarrage la station voit que le systeme a changé, elle le telecharge et l'installe sur son disque dur.
En cas de probleme sur la station cliente (systeme de fichier corrompu par une coupure de courant par exemple), elle se repare toute seule en reinstallant automatiquement un systeme propre.
Note : On se fout des données utilisateurs qui seraient perdues.
Avez vous deja vu ou mis en place un truc de ce genre ?