Différences entre versions de « Lxc »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
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]]
  
 +
== Todo ==
 +
=== Questions résolues (a développer) ===
  
 
  de base sur un rootfs (/etc/inittab, /etc/network/interface, /dev/init.d/umountroot.sh, /dev)
 
  de base sur un rootfs (/etc/inittab, /etc/network/interface, /dev/init.d/umountroot.sh, /dev)
Ligne 18 : Ligne 21 :
 
* lxc-console sans mot de passe
 
* lxc-console sans mot de passe
  
−
 
+
=== Questions partiellement résolues ===
−
=== conversion d'une image linux en LXC ===
 
−
 
 
−
Un serveur virtuel LXC est la partie utilisateur ("userland") par oposition à la partie noyau ("kernel").
 
−
 
 
−
Pour convertir une image c'est assez simple en ce sens qu'on va plutôt enlever des choses qu'en mettre:
 
−
* tout les scripts de démarrage servant a faire l'initialisation matérielle
 
−
* les scripts chargeant les modules kernel
 
−
 
 
−
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
 
* quels scripts enlever dans /etc/rc{S,3,0}.d
 
* comment ?
 
* comment ?
Ligne 64 : Ligne 28 :
 
** utilisation de /etc/insserv/override) (a priori la bonne methode)
 
** utilisation de /etc/insserv/override) (a priori la bonne methode)
  
−
== Questions sans reponses ==
+
=== Questions sans reponses ===
 
* ca va venir ;)
 
* ca va venir ;)

Version du 1 mars 2012 à 18:22

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 (a développer)

de base sur un rootfs (/etc/inittab, /etc/network/interface, /dev/init.d/umountroot.sh, /dev)
  • mise en place du réseau avec veth, brctl et consort
  • lxc-console sans mot de passe

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 ;)