Sommaire
Procédure utilisée pour la création de VE
cf https://wiki.auf.org/wikiteki/OpenVZ/Installation, https://wiki.auf.org/wikiteki/OpenVZ/OrganisationRéseau et http://wiki.auf.org/wikiteki/OpenVZ/Conseils pour l'installation du serveur hôte openvz
Partitionnement
racine du VE : lvcreate -L 3G -n 505 vz partition lvm de 3G dans le groupe de volume "vz"
- partitions particulières en fonction du rôle du VE :
var : lvcreate -L 2G -n 505-var vz
log : lvcreate -L 2G -n 505-var-log vz
tmp : lvcreate -L 1G -n 505-tmp vz
srv : lvcreate -L 5G -n 505-srv vz
- etc.
formater les partitions : for i in 505 505-var 505-var-log 505-srv 505-tmp; do mkfs.ext3 /dev/vz/$i; done
- point de montage
- racine : /dev/vz/505 /var/lib/vz/private/505
les autres : /dev/vz/505-partoche /var/lib/vz/root/505/partoche
- ajouter ces montages (la racine et les autres) dans /etc/fstab
créer le script de montage :
#/etc/vz/conf/505.mount #!/bin/bash RACINE=/var/lib/vz/root/505 mount -n -o noatime /dev/vz/505-srv $RACINE/srv mount -n -o noatime /dev/vz/505-log $RACINE/var/log
pas besoin de script de démontage
les rendre exécutables : chmod u+x /etc/vz/conf/505.mount
Création du VE
vzctl create 505 --hostname git-prive --ostemplate debian-4.0-i386-ca-auf
renommage du répertoire de base du VE pour pouvoir le mettre dans sa partition finale : mv /var/lib/vz/private/505 /var/lib/vz/private/505.tmp
montage de la partition racine : mkdir /var/lib/vz/private/505 ; mount /dev/vz/505 /var/lib/vz/private/505
montage des autres partitions (provisoirement dans private, le temps du transfert) : for i in var srv tmp; do mkdir /var/lib/vz/private/505/$i; mount /dev/vz/$i /var/lib/vz/private/505/$i; done`
transfert du VE dans sa slot finale : rsync -avPHS --numeric-ids /var/lib/vz/private/505.tmp/* /var/lib/vz/private/505/
suppression du répertoire temporaire : rm -rf /var/lib/vz/private/505.tmp
démontage des partitions sauf la racine : for i in tmp srv var; do umount /dev/vz/$i; done
modifier le fichier de configuration : /etc/vz/conf/505.conf :
- ONBOOT="yes"
- DISK_QUOTA="no"
Configuration réseau
(cf https://wiki.auf.org/wikiteki/OpenVZ/OrganisationRéseau)
- vzctl set 505 --netif_add * "eth0,00:15:00:00:50:5A,veth505.0,00:15:00:00:50:5B" --save
configurer l'interface réseau du VE : dans /var/lib/vz/private/505/etc/network/interface : lui assigner une adresse IP
Ajustement de quelques paramètres
hostname : /var/lib/vz/private/505/etc/hostname
resolver : /var/lib/vz/private/505/etc/resolv.conf
- etc.
Zou, on peut le lancer
vzctl start 505
- on y accède par ssh pour la suite (ou depuis l'hôte vzctl enter 505)
Migration du contenu des CT
Note : l'outil `vzmigrate` (http://openvz.org/documentation/mans/vzmigrate.8) permet de transferer un CT d'un HN à un autre sans "éteindre" le CT. Dans mon cas, où les CT ont chacun leurs propres partions, je ne peux pas l'utiliser.
- créer les partitions nécessaires sur le nouveau serveur en calquant les tailles sur l'existant (serveur source)
- monter les partitions (racine et autres, ex : 404, 404-var, 404-srv) dans /var/lib/vz/private sur le nouveau serveur
- copier le fichier de config du CT depuis l'ancien serveur (/etc/vz/conf/404.conf) et adapter la ligne de config réseau (NETIF="ifname ....")
faire une première copie par rsync depuis l'ancien : rsync -avPHS --numeric-ids /var/lib/vz/root/404/ new-vz:/var/lib/vz/private/404/
- fermer la connexion réseau du CT et re-rsync
- sur le nouveau serveur :
- démonter les partitions sauf de la racine du CT (umount /var/lib/vz/private/404/var /var/lib/vz/private/404/srv)
- démarrer le CT
- arrêter le CT sur l'ancien et modif de la config pour mettre ONBOOT="no"
Résumé : (je met ici dans un script les commandes que j'ai exécutées), en supposant que les partitions sont déjà montées (A ADAPTER AVANT DE LANCER !)
# migration-ct.sh ct=$1 rsync -avPHS --numeric-ids /var/lib/vz/root/$ct/ new-vz:/var/lib/vz/private/$ct/ vzctl exec $ct /etc/init.d/networking stop rsync -avPHS --numeric-ids /var/lib/vz/root/$ct/ new-vz:/var/lib/vz/private/$ct/ ssh new-vz "umount /var/lib/vz/private/$ct/var /var/lib/vz/private/$ct/srv ; vzctl start $ct" vzctl stop $ct sed -i '/^ONBOOT/c ONBOOT="no"' /etc/vz/conf/$ct.conf