On Fri, Apr 22, 2011 at 09:13:52AM +0200, Julien Gormotte wrote:
On Thu, 21 Apr 2011 23:24:22 +0200, Jeremie Le Hen wrote:
Personnellement, j'ai mis en place cette solution pour un client au moyen d'OpenSVC [1], je lui ai migré toute sa plateforme de dev dans un LXC. Plusieurs intérêts :
- l'arrêt et le démarrage du serveurs (et par transitivité, des services) est très simple (une commande) ;
- le LXC tout entier (donc non seulement les data, mais aussi les metadatas) peut-être synchronisé périodiquement sur un autre
serveur afin d'assurer un backup et de la redondance en cas de crash.
Petit bémol, j'ai dû un petit peu ruser pour arrêter le LXC proprement avec OpenSVC, car celui-ci gère normallement des services (applications) et non des serveurs virtuels donc une fois qu'il considère que les applications sont arrêtées, il coupe le LXC un peu brutalement :). Je peux vous la communiquer au besoin.
Un autre bémol, c'est que sous Linux, y'a pas ZFS. Et ZFS avec un truc du style jails, c'est puissant :)
Tu prêches un converti :-).
Par contre, pour couper proprement un LXC, ca m'intéresse !
J'irais pas jusqu'à dire proprement, mais c'est le moins pire que j'ai pu trouver. Bien sûr, je parle dans le cadre d'OpenSVC, puisque arrêter proprement un LXC de façon manuelle se fait naturellement.
Dans le répertoire contenant les scripts d'arrêt/démarrage des applications du service OpenSVC, tu poses ce script :
#!/bin/sh
case "$1" in start) # Nothing to do, LXC full-fledged server is booting and system # startup scripts have already handled application startup. ;; stop) /sbin/shudown -h now sleep 1800 # 30 min ;; esac
Le process sleep se fera killer par les scripts d'arrêt du système contenu dans le LXC. Le seul bémol est que la valeur de retour du script ne sera jamais 0.