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