Différences entre versions de « Lxc »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 10 : Ligne 10 :
 
* le système de fichier /sys montre des éléments faisant partie de l'hôte et n'est pas encore suffisamment étanche.
 
* le système de fichier /sys montre des éléments faisant partie de l'hôte et n'est pas encore suffisamment étanche.
  
−
== Questions résolues (a développer) ==
 
  
 +
* Construction de la machine hôte [[lxc_host]]
 +
* Construction/conversion de la machine invitée [[lxc_guest]]
  
−
de base sur un rootfs (/etc/inittab, /etc/network/interface, /dev/init.d/umountroot.sh, /dev)
+
== Todo ==
 +
=== Questions résolues (et développées) ===
 +
* quels scripts enlever dans /etc/rc{S,3,0}.d et comment cf [[lxc_guest]]
  
 +
=== Questions résolues (a développer) ===
 
* mise en place du réseau avec veth, brctl et consort
 
* mise en place du réseau avec veth, brctl et consort
−
* lxc-console sans mot de passe
+
* modif de base: inittab et /dev
 +
* lxc-console sans mot de passe (modif inittab)
  
 +
=== Questions partiellement résolues ===
 +
* Serveur IMAP et inotify (FAM/gamin) ? est ce que le serveur IMAP est prévenu de manière efficace de l'arrivée de nouveaux mails?
 +
** Reponse rapide: installer gamin a la place de fam: '''apt-get install gamin'''
 +
* Arreter proprement un serveur lxc depuis l'hote (methode ssh, lxc-console + expect, lxc-attach quand ca voudra bien marcher ?)
  
−
=== conversion d'une image linux en LXC ===
+
=== liens ===
−
 
+
* un wiki pratique sur different type de vm: [[http://wiki.pcprobleemloos.nl/using_lxc_linux_containers_on_debian_squeeze/]]
−
Un serveur virtuel LXC est la partie utilisateur ("userland") par oposition à la partie noyau ("kernel").
+
* le site de developpement lxc: [[http://lxc.sourceforge.net]]
−
 
+
* un howto bien fourni: [[http://lxc.teegra.net]]
−
Pour convertir une image c'est assez simple en ce sens qu'on va plutôt enlever des choses qu'en mettre:
+
* le wiki debian / lxc: [[http://wiki.debian.org/LXC]]
−
* tout les scripts de démarrage servant a faire l'initialisation matérielle
+
* conversion vserver -> lxc : [[http://schmidi2.blog.com/2010/10/25/migrating-from-vserver-to-lxc/]]
−
* les scripts chargeant les modules kernel
+
* un autre site interessant: [[http://www.jotschi.de/?p=554]]
−
 
 
−
Très bien, enlevons, mais d'abord, quels sont les scripts lancé au démarrage. La réponse pourrait être simple,
 
−
c'est les script rc du système V et c'est marre.
 
−
 
 
−
Oui mais, avec Squeeze, Debian introduit 2 changements importants dans ces scripts:
 
−
# il existe maintenant 2 modes de démarrage (classique systemV et "makefile like" avec startpar)
 
−
# même dans le mode classique, (rcN.d/[KS]XYscript.sh) les numéros d'execution (le XY) ne sont plus
 
−
forcément figés, ils sont calculé par la commande "insserv". L'installation d'un paquet peut donc
 
−
potentiellement faire changer l'ordre de démarrage.
 
−
 
 
−
Restons calme, il s'agit de machine virtuelles, donc l'ordre d'exécution des scripts de démarrage
 
−
est moins critique que sur une machine physique.
 
−
Une machine physique doit savoir jongler avec des trucs comme: j'ai besoin de monter un volume raid,
 
−
mais les binaires qui me permettront de le manipuler se trouve sur le volume raid en question...
 
−
C'est précisément dans ce genre de cas que l'ordre d'exécution des scripts de démarrage est critique
 
−
et que l'utilisation d'initrd et des modules noyau est indispensable.
 
−
 
 
−
Sur une machine virtuelle on va essentiellement lancer des applicatifs. Lancer apache longtemps avant
 
−
la base de donnée sur laquelle il va travailler n'est pas une bonne idée, mais ça reste (la plupart
 
−
du temps) plus une gêne au démarrage qu'un plantage pur et simple.
 
−
 
 
−
Bref, revenons à ces scripts de démarrage qu'il faut élaguer:
 
−
# Quel est le type de démarrage ?
 
−
** Lenny -> sysV
 
−
** Squeeze:
 
−
*** si CONCURRENCY=none dans /etc/default/rcS -> sysV
 
−
*** sinon, si les fichiers /etc/init.d/.depend.{boot,start,stop} existent et ne sont pas vide -> "startpar" version "makefile"
 
−
*** tout les autres cas -> sysV
 
−
 
 
−
Voir le détail sur l'ordre d'exécution des scripts de démarrage [[script_rc_debian]]
 
−
 
 
−
== Questions partiellement résolues ==
 
−
* quels scripts enlever dans /etc/rc{S,3,0}.d
 
−
* comment ?
 
−
** modif /etc/init.d (version actuelle)
 
−
** suppression du lien dans rcX.d (pas tres robuste a mon avis)
 
−
** utilisation de /etc/insserv/override) (a priori la bonne methode)
 
−
 
 
−
== Questions sans reponses ==
 
−
* ca va venir ;)
 

Version actuelle datée du 13 mars 2012 à 19:59

Construire un serveur LXC

LXC offre les possibilités d'un chroot avec quelques points en plus:

  • séparation des process (une sorte de chroot des process)
  • virtualisation du réseau (il est possible de simuler un circuit réseau avec

les bridges (brctl) le routage/NAT (iptables)

LXC souffre encore de quelques problèmes de jeunesse:

  • lxc-stop est un vilain kill -9 -1 exécuté dans le container. Il faudrait que lxc-stop fasse un shutdown propre (init 0)
  • le système de fichier /sys montre des éléments faisant partie de l'hôte et n'est pas encore suffisamment étanche.


  • Construction de la machine hôte lxc_host
  • Construction/conversion de la machine invitée lxc_guest

Todo

Questions résolues (et développées)

  • quels scripts enlever dans /etc/rc{S,3,0}.d et comment cf lxc_guest

Questions résolues (a développer)

  • mise en place du réseau avec veth, brctl et consort
  • modif de base: inittab et /dev
  • lxc-console sans mot de passe (modif inittab)

Questions partiellement résolues

  • Serveur IMAP et inotify (FAM/gamin) ? est ce que le serveur IMAP est prévenu de manière efficace de l'arrivée de nouveaux mails?
    • Reponse rapide: installer gamin a la place de fam: apt-get install gamin
  • Arreter proprement un serveur lxc depuis l'hote (methode ssh, lxc-console + expect, lxc-attach quand ca voudra bien marcher ?)

liens

  • un wiki pratique sur different type de vm: [[1]]
  • le site de developpement lxc: [[2]]
  • un howto bien fourni: [[3]]
  • le wiki debian / lxc: [[4]]
  • conversion vserver -> lxc : [[5]]
  • un autre site interessant: [[6]]