Virtualisation
Le script suivant permet de pourvoir :
– Installer proxmox de manière automatique
– Définir un master et un node
– Supprimer un node
#!/bin/bash # KDE 2011 - kilian@desroches.net # Script d'installation automatique de proxmox function menu() { clear echo "####################################################" echo "# #" echo "# Script d’installation PROXMOX / v1.xx #" echo "# KDE - kilian@desroches.net #" echo "####################################################" echo "1 – Installation de PROXMOX" echo "2 – Definir un MASTER" echo "3 – Definir un NODE et joindre le MASTER" echo "4 – Supprimer un NODE" echo "0 – Quitter" echo "" echo "Choix : " read CHOIX case $CHOIX in 1) install_central && menu;; 2) define_master && menu;; 3) define_node && menu;; 4) del_node && menu;; 0) exit;; esac } function install_central() { echo "INSTALLATION DE PROXMOX : " echo "Vérification support VT" SUPPORTVT=$(egrep '(vmx|svm)' /proc/cpuinfo) if test -z '$SUPPORTVT'; then echo "/!\ Le processeur de ne supporte pas KVM" echo "Voulez vous installer OpenVZ ? [y]" read OPENVZ case $OPENVZ in [yYoO]*) install_ovz ;; [nN]*) menu;; esac else clear echo "Vérification support VT : OK" install_proxmox fi } function install_ovz(){ echo "INSTALLATION OPENVZ" echo "Ajout des paramètres sources.list" mv /etc/apt/sources.list /etc/apt/sources.list.bak echo "deb http://ftp.fr.debian.org/debian/ lenny main deb-src http://ftp.fr.debian.org/debian/ lenny main deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main deb http://volatile.debian.org/debian-volatile lenny/volatile main deb-src http://volatile.debian.org/debian-volatile lenny/volatile main" >> /etc/apt/sources.list echo "Installation OpenVZ" aptitude install linux-image-openvz-686 echo "Installation de Proxmox" install_proxmox } function install_proxmox() { echo "Insérer la version du kernel proxmox :" read kernprox if test -z $kernprox; then echo "Version invalide" sleep 3 install_proxmox else echo "Renommage du sources.list" mv /etc/apt/sources.list /etc/apt/sources.list.bak echo "Mise en place du nouveau sources.list" echo -e "\ndeb http://ftp.debian.org/debian lenny main \ndeb http://download.proxmox.com/debian lenny pve \ndeb http://security.debian.org/ lenny/updates main" >> /etc/apt/sources.list echo "Recuperation de la cle proxmox" wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add - echo "Update et upgrade" apt-get update && apt-get -y upgrade echo "Installation DRBD - LVM2" apt-get -y install drbd8-utils lvm2 echo "Mise en place du Kernel Proxmox $1" aptitude safe-upgrade aptitude install proxmox-ve-$1 echo "Mise en place d'openiscsi" apt-get -y install open-iscsi iscsi-scst echo "Relance du service PVEDAEMON et APACHE2" /etc/init.d/pvedaemon restart && /etc/init.d/apache2 restart echo "Update du grub" update-grub echo "Listing du boot" echo "ls -l /boot" echo "Rebooter la machine pour prise en compte du nouveau Kernel" exit 0 fi } function define_master() { echo "DEFINI LE MASTER : " echo "Définition du master " pveca -c sleep 3 echo "Vérification de la definition du master " pveca -l sleep 3 menu } function define_node() { echo "AJOUT NODE : " echo "Insérer l'IP du serveur master :" read IPMASTER if test -z $IPMASTER; then echo "IP invalide" define_node else echo "Ajout de IP : $IPMASTER" pveca -a -h $IPMASTER echo "Vérification de synchro " pveca -l sleep 3 #Retour au menu menu fi } function del_node() { echo "SUPPRESSION NODE : " echo "Affichage des nodes existantes : " pveca -l echo "Insérer le CTID du node à supprimer :" read CTID if test -z $CTID; then echo "CTID invalide" del_node else echo "Suppression : $CTID" pveca -d $CTID echo "Vérification des nodes " pveca -l sleep 3 #Retour au menu menu fi } # Vérication du root if [ "$(id -u)" != "0" ]; then echo "Le script doit etre execute en root" exit 1 else menu fi
Machine virtuelle dans Proxmox VE
Comment créer une première machine virtuelle sur Proxmox
Téléchargement d’un modèle
Proxmox met à disposition des modèles de machine virtuelle, nous allons utiliser l’un deux pour mettre en place une VM en Ubuntu 8.04.
Aller dans Modèles d’Appliance > Télécharger et choisir le modèle « Ubuntu Hardy (standard) » en OpenVZ, vérifiez les informations et démarrez le téléchargement.
Créer une machine virtuelle
Une fois le modèle téléchargé, on va procéder à l’instanciation d’une machine virtuelle.
Aller dans Machines Virtuelles > Créer .
On clique sur create et on se garde de côté la ligne de commande générée pour l’instanciation de cette vm :
/usr/bin/pvectl vzcreate 101 --disk 8 --ostemplate local:vztmpl/ubuntu-8.0-standard_8.04-1_i386.tar.gz --rootpasswd $1$Wpvp0Uf/$tG2ZTUVKxJuzjq7A29fhX1 --hostname monserver.net \ --nameserver 218.2.1.2 --searchdomain ovh.net --onboot yes --ipset 218.2.1.2 --swap 512 --mem 512 --cpus 1
Le mot de passe demandé est le mot de passe de l’utilisateur root de la vm.
Démarrage et accès
Pour démarrer la vm, cliquer sur Machines Virtuelles > Lister et cliquer sur la machine désirée. Suffit de cliquer sur démarrer.
Une fois la machine virtuelle démarrée, on peut y accéder :
- par la console proposée dans l’interface d’admin
- par ssh si le réseau est ok
Arrêt et suppression d’une vm
Pour arrêter une vm pas de problèmes, il suffit de cliquer sur éteindre et pour la supprimer de cliquer sur Remove.
Sauvegarde à chaud
Une option très intéressante est la sauvegarde à chaud des vm, ce qui permet par exemple toutes les nuits de faire un dump en local de chaque vm. ATTENTION cela ne remplace pas un backup sur une machine externe.
Petit problème de date avec un container OpenVZ sur un serveur OVH Proxmox.
Un des container avec un décalage de deux heures.
Quand on essaie de changer la date :
# date 12122055 date: cannot set date: Operation not permitted Tue Dec 12 20:55:00 UTC 2010
Pour commencer arrêter le container à partir du serveur proxmox :
# vzctl stop <veid> Stopping container ... Container was stopped
<veid> remplace l’id du container
On active la capacité sys_time
# vzctl set <veid> --save --capability sys_time:on Saved parameters for CT <veid>
Puis redémarrer le container :
# vzctl start <veid> Starting container ... Container is mounted Adding IP address(es): IP Setting CPU units: 1000 Setting CPUs: 1 Configure meminfo: 524288 Set hostname: hostname File resolv.conf was modified Setting quota ugidlimit: 0 Container start in progress...
Enfin dans le container remplacer le fichier localtime pour mettre à jour la timezone au cas ou elle serait pas bonne :
# rm /etc/localtime # ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime # date 12122101 Tue Dec 12 21:01:02 CEST 2010
Pour finaliser le tout n’hésitez pas à installer un serveur NTP pour maintenir l’heure.
Proxmox est une distribution de virtualisation qui offre la possibilité de gérer des serveurs virtuels (VPS) avec les technologies OpenVZ et Linux KVM simultanément. La gestion en est facilitée par quelques clics à travers l’interface web qui est accessible après installation sur le serveur (installation de proxmox et openvz sur l’une de mes machines). http://presta2.prestafute.net
Documentation d’installation : http://pve.proxmox.com/wiki/Installation
La virtualisation est à la mode. Pourquoi ? Simplement pour une question d’argent, et comme c’est la crise!!! Surtout c’est très bien pour maintenir des serveurs. Je vais donc présenter Proxmox et son petit ami OpenVZ.
Commençons par le coeur : commençons par OpenVZ. C’est une technologie permettant la virtualisation du système d’exploitation Linux. Ce cher OpenVZ est Open Source sous licence GNU et est développé par SWsoft (Plesk par exemple). Quand je dis virtualisation, je me trompe, mais consciemment, car là où des technologies comme VMWare sont très lourdes parce quelles virtualisent complètement le système d’exploitation, OpenVZ garde le même Kernel Linux (donc le même moteur) pour toutes les VM. On va donc plutôt appeler ça de la para-virtualisation.Cette para-virtualisation permet d’avoir des VM tournants plus que sur Linux. A ma connaissance, Windows n’a pas de Kernel Linux .
OpenVZ, c’est bien, mais pour faciliter son utilisation, il existe Proxmox qui est en fait une interface web permettant l’administration de son serveur master très facilement. Grâce à Proxmox vous pourrez démarrer, arrêter, migrer vos VM en 1 clic mais aussi créer, modifier, supprimer, backuper vos VM en 2 clics tout en modifiant la RAM, le disque dur, le CPU en 3 clics. Ce système permet une très grande flexibilité.
Alors, maintenant l’utilisation que j’en ai , m’amène à avoir 4 serveurs virtuels sur un serveur physique (2Go de Ram) qui n’est pas une bête de course. Avec ce système , vous avez ainsi la possibilité de créer une machine de production (ou plusieurs) avec 1Go de RAM. Mais, si votre/vos site(s) grandissent, vous migrez en 1 clic sur un autre serveur sous Proxmox (over SSH), en 2 clics vous augmentez la RAM, le CPU et le disque dur et tout cela sans interruption de service. C’est pas magique ? Donc , même pour une seule VM, c’est très utile et permet un gain de temps considérable !
Côté performances, la virtualisation via OpenVZ ne prend que très peu de ressources en plus (2/3%). Pour rentrer dans la technique , chaque VM est un processus de votre serveur physique, ce qui permet aussi de démarrer/arrêter/rebooter en moins de 5 secondes.
Autre avantage du partage de Kernel, la Ram système est commune. Vous vous en rendrez compte avec les images plus bas, mais si l’addition des différentes RAM est de plus de 1Go, la RAM physiquement utilisée est de 600Mo.
La solution de virtualisation open source Xen possède une architecture différente d’ autres produits comme VMWare Workstation ou Virtual PC. Xen est un hyperviseur (ou moniteur) de machine virtuelle. Son rôle est d’isoler les machines virtuelles et de superviser le partage des ressources de la machine physique entre les différentes machines virtuelles.