KVM – Proxmox

I. Présentation

Proxmox VE (Virtual Environment) est un système d'exploitation dédié au fonctionnement de machines virtuelles basé sur KVM. Il comprend un environnement Debian 7, et intègre le service apache afin d’accéder à l’interface Web de configuration. Comme oVirt, il se rapproche de VMware vCenter. Ce sont tous les deux plus ou moins des concurrents.

L'entreprise Proxmox qui développe Proxmox VE met son produit à disposition gratuitement sous licence libre. En outre, elle propose du support payant (forums, assistance, requêtes aux développeurs...) et une solution de sécurisation de messagerie payante.

Proxmox à de nombreuses fonctionnalités :

  • Fonctions de snapshots à chaud des VM (disque + RAM),
  • Migration de machines virtuelles à chaud, sans coupure,
  • Possibilité de clustering pour de la haute disponibilité,
  • Sauvegarde et restauration des machines virtuelles,

Il permet également de :

  • Prendre en charge l’authentification avec PAM, Active Directory,
  • D’administrer des rôles et des groupes,
  • Gérer des vLANS pour les VM,

Dans ce tutoriel, nous allons voir la mise en place d'un cluster de deux serveurs Proxmox.

 

II. Installation

L’installation de Proxmox, sur chacun des serveurs, ne prend que quelques minutes. Lors de cette dernière, très peu de paramètres sont à renseigner : l’adresse IP, le nom du serveur, la langue et le mot de passe de l’administrateur : « root » pour linux. Proxmox se charge d’installer les paquets nécessaires avec les dépendances. C’est-à-dire les paquets correspondant à la virtualisation avec KVM et les éléments nécessaires à la mise en place d’un serveur WEB afin de pouvoir accéder à l’interface de gestion des machines virtuelles.

Malheureusement, Proxmox ne nous laisse pas le choix pour la gestion des tailles des partitions. Il créé les partitions suivantes :

  • Première partition : contient le système
  • Seconde partition : stockage des machines virtuelles

L’installation terminée, nous pouvons accéder à l’interface via l’adresse IP du serveur physique. Juste après l’authentification nous arrivons sur la vue qui affiche les informations principales de notre infrastructure, les serveurs physiques et virtuels, les espaces de stockage, les sauvegardes, les restaurations. On y retrouve également les parties : configuration du serveur, authentification, permissions, etc… Le cadre du bas affiche les actions, les résultats des opérations faites sur les serveurs.

Interface-dadmin

Mise en place du cluster :

  • Sur le serveur primaire, nous allons créer le cluster :
pvecmcreate NOM DU CLUSTER
  • Sur le serveur secondaire, nous allons l'ajouter au cluster :
 pvecmadd ADRESSE IP SERVEUR PRINCIPAL

Le cluster va permettre de simplifier la gestion des deux serveurs puisqu'ils apparaissent sur une même interface.

image17

III. Mise à disposition d'un espace de Stockage

Pour stocker les machines virtuelles je vais utiliser un serveur Debian avec du RAID, et du LVM.

Voici l'arborescence que j'ai choisi pour stocker les machines virtuelles, les sauvegardes et les images ISO :

mkdir -p /home/partageNFS/VM
mkdir /home/partageNFS/backupVM
mkdir /home/partageNFS/ISO

Plusieurs solutions sont possible pour ajouter des espaces de stockage sous Proxmox, ici je vais installer le service NFS (Network File System).

aptitude install nfs-server

Voici la configuration utilisé :

vi /etc/exports
/home/partageNFS/VM             *(rw,sync,no_subtree_check)
/home/partageNFS/backupVM       *(rw,sync,no_subtree_check)
/home/partageNFS/ISO            *(rw,sync,no_subtree_check)

Pour que les changements soient prise en compte, un redémarrage du service est nécessaire :

/etc/init.d/nfs-kernel-server restart

Ajout des espaces de stockage sur le cluster :

image10Faire cette étape pour le répertoire "VM", "backup" et "ISO" en spécifiant le contenu qui va bien.

 

III. Sauvegarde, Restauration

Sauvegarde

Proxmox propose plusieurs types de sauvegarde, soit en stoppant la VM, soit à chaud avec interruption de service soit sans interruption. Ce qui intéressant c’est d’avoir une continuité du service donc je vais développer le Snapshot à chaud sans interruption de services. Proxmox utilise l’outil « vzdump », qui permet de sauvegarder mais aussi de restaurer des machines virtuelles. Vzdump est un script PERL basé sur les commandes suivantes :

  • TAR, GZIP : pour la compression de la sauvegarde,
  • RSYNC : pour la copie de la machine virtuelle
  • LVM : une partition LVM est montée pour stocker les écritures qui ont lieu pendant la sauvegarde.

Lors de la création de volumes logiques il faudra penser à laisser de l’espace libre dans le groupe de volumes pour la création d’un volume logique temporaire du Snapshot.

Voici la commande exécutée par le système lors d’une sauvegarde en mode Snapshot :

vzdump NOM DE LA VM --mode SNAPSHOT --storage DESTINATION --node NOM DU SERVEUR

D’autres arguments sont possibles, comme la compression : « --compress  TYPE DE COMPRESSION».

image12

Il est possible de planifier la sauvegarde automatique de une ou plusieurs VM du lundi au dimanche :

image13

Restauration

Proxmox intègre, dans son interface Web un assistant de restauration, une solution simple et efficace, proposant le chemin de destination de la machine virtuelle que l’on souhaite restaurer ainsi que son nom.  La machine va donc être recréée sur le serveur où l’on va restaurer l’image.

image14

Dans les versions qui précédaient Proxmox 2.3, l’utilitaire de restauration était le TAR. Depuis, la 2.3 « VMA » remplace l’ancien format de sauvegarde. C’est donc cet outil qui va nous permettre de restaurer la sauvegarde d’une machine virtuelle via la commande ci-dessous :

vma extract -v -r /NOM DE LA MACHINE A RESTAURER

 

V. Basculement à chaud

Grâce au cluster et à notre serveur de stockage, il est possible de migrer, en ligne ou non, une machine virtuelle d'un serveur Proxmox à un autre.

image15

 

 VI. Configuration réseau

En ce qui concerne la partie réseau, il est possible de configurer les interfaces. Plusieurs modes existent dont 2 principaux  :

  • la répartition de charge entre 2 cartes réseaux, LoadBalancing,
  • Lorsque qu'une carte réseau est défaillante la seconde carte prend le relai

image16

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Arnaud Baumard

Adepte des nouvelles technologies, passionné d'informatique et plus particulièrement dans l'administration systèmes et réseaux, je viens partager mes connaissances, mes trouvailles, mes projets.

arno has 36 posts and counting.See all posts by arno

29 pensées sur “KVM – Proxmox

  • Merci Arnaud pour ce tuto, j’ai mis un mot sur le forum de proxmox, maintenant il faut rajouter la haute disponibilité avec le fencing et 3 machines physique, la gestion du réseau avec OpenVswitch, et surtout la sauvegarde distribué avec le projet CEPH sur les mêmes machines physiques avec plusieurs disques durs et un autre réseau dédié à sa synchronisation…Merci

    Répondre
    • Bonjour Moula,

      Oui, il serai intéressant d’ajouter cela à un prochain tuto Proxmox 😉
      Tu as déjà réalisé cela ?

      Répondre
      • Re-bonjour Arnaud,
        Oui, ça fait un bail que mes data-centers fonctionnent avec ces projets. Pour CEPH, je suis en train de tester avec PVETEST sur les mêmes machines et plusieurs disques. Avant je le faisait avec le Projet Sheepdog en disques sur les mêmes machines et un cluster-stockage externe sur 3 autres machines externes pour le projet CEPH, maintenant avec Ceph-deploy ça se déploie facilement… Alexandre Derumier et Dietmar ont fait du bon boulot. Je suis à ta disposition pour améliorer ce tuto, même si je passe aussi beaucoup de temps sur le projet Openstack. Merci.

        Répondre
        • Oui j’en ai entendu parlé de ce projet, il a l’air vraiment intéressant :p Je n’ai pas encore eu l’occasion de travailler dessus.
          Pour Proxmox si tu souhaite apporter ton expérience sur ce sujet, je ne dirai pas non, bien au contraire. Surtout si tes data-centers fonctionnent sur ce dernier.

          Répondre
  • J’ai fait des TUTO pour proxmox, cela tourne sur un cluster de deux nodes avec des connections en 20G (bond 10G+10G).

    Je met mais tuto a dispo en général sur le site http://drtic.educagri.fr/

    Ceux sur Proxmox sortirons d’ici 1 mois, installation de cluster proxmox, fencing ,iSCSI, NFS, création de VM MS, Linux, BSD, et plein d’autre chose.

    Pour info mon architecture tourne en prod avec une 25 VMs dont 5 qui sont pour les test.

    Répondre
    • Bonjour Aureladmin,
      Merci de nous faire partager ton implication dans ce projet.
      J’irai voir tes tutos prochainement sur « Drtic.educagri » 😉

      Répondre
  • Par rapport au tutorial,
    Depuis proxmox 3, vzdump n’est plus utilisé que pour la partie openvz.

    Les backups des machines qemu, sont faites directement via qemu, et fonctionnent à chaud avec n’importe quel stockage. (sans utilisé de snapshots).

    (Je pense que les prochains tuto devrait être fait sur la dernière version de proxmox,je vois dans les screenshots que c’est la version 2.3 qui est utilisée)

    Répondre
    • Merci pour ton implication 🙂 oui c’est la version 2.3. La version 3 était pas sortie au moment ou j’ai commencé mon labo de tests proxmox. Promis, les prochains tutos seront sur la dernière version 😉

      Répondre
  • Bonjour,

    Merci pour le tuto :), par contre j’ai un autre problème l’image iso ne boot pas ! J’utilise Nero Burning ROM 2014 pour la gravure.

    J’ai testé une autre image iso (Linux/Unbutu) pour vérifier, avec elle ça fonctionne !

    Savez-vous pour l’image iso de Proxmox ne boot pas ?

    Merci

    Répondre
    • Bonjoir Marc,
      Quand tu dis que l’image iso ne boot pas, tu n’arrives pas du tout a démarrer sur le cd ou tu reste bloqué sur « boot : « 

      Répondre
  • petite astuce pour modifier la taille de la partition system « / » de proxmox a l’installation.

    Il suffit au tout debut, quand « boot: » est ecrit, de lancer l’installation avec cette commande:

    linux ext4 maxroot=10 swapsize=20
    

    ce qui va installer proxmox sur une partition en ext4 (ext3 par defaut) avec une partition system de 10Go et un swap de 20Go (par defaut, proxmox prend un pourcentage de la taille du disque dur pour creer la partition system, sur des gros disque, il configure une partition primaire de plus de 50Go alors que 10 suffit largement).

    Répondre
  • Merci pour cette astuce qui est très intéressante 🙂

    Répondre
  • Bonjour,
    Je me lance dans la virtualisation avec Proxmox.
    Je ne connais pas grand chose à l’informatique.
    Je ne sais pas si je suis au bon endroit pour mes questions mais je me lance.
    J’ai un HP Proliant ML 350 G5
    Processeur quadcore 1.6GHz 2*4Mo L2 cache
    Je viens d’installer Proxmox VE 3.3
    Je voudrais installer un bureau directement sur le serveur qui contient proxmox
    J’ai trouver cette ligne de commandes :

    For example, just install XFCE4 desktop and Firefox/Iceweasel browser with the icedtea-7-plugin:
    apt-get install xfce4 iceweasel lightdm icedtea-7-plugin

    J’ai saisi cette commande directement sur l’écran noir de mon serveur ou il y a marqué
    Welcome to Proxmox Virtual Environnement…..
    …..
    root@mon nom de domain:-#

    mais rien ne ce passe. il me marque :
    reading packtage lists…done
    building dependency tree
    reading state information…done
    E: unable to locate packtage lxce
    E: unable to locate packtage iceweasel
    E: unable to locate packtage icetea-7-plugin

    J’ai essayé avec le cd proxmox dans le lecteur dvd du serveur mais je ne connais pas la lettre qui désigne le lecteur dvd.

    Si vous avez une solution merci de la rédiger en langage pas trop compliqué pour moi.
    Merci.

    Répondre
    • Bonjour,

      Pourquoi veux-tu installer une interface graphique sur Proxmox ? L’intérêt de proxmox est de proposer une interface Web pour pouvoir gérer le serveur de virtualisation avec KVM.

      Sinon je te conseil d’installer une simple debian avec interface puis d’installer les paquets KVM.

      Les messages d’erreurs que tu obtiens sont dû au faite que tes paquets n’existe pas. As tu fais un aptitude search « nom du paquet » afin de voir si il te retourne un résultat ?

      Si ton problème persiste, merci de créer un sujet sur notre forum 😉 nous serons ainsi plus nombreux à pouvoir t’aider 😉

      Cordialement.

      Répondre
  • J’ai essayé aussi la commande dans le noeud rubrique shell .
    Même réponse.
    Merci

    Répondre
  • Bonsoir Arnaud,
    Je suis nouveau en virtualisation, et je me lance dans Proxmox pour un PFE.
    Est qu’on peut installer Proxmox sur une partition du disque tout en conservant nos données ? ou c’est impossible ?

    Répondre
    • Bonjour Ahmedzr,

      Peux-tu être plus précis sur ta demande ?
      Si tu as des données sur un DD et sur une seule partition et qu’il y a suffisamment d’espace disponible sur ce dernier, tu peux, à l’aide d’un outil comme « partition magic » réduire cette partition et en créer une nouvelle pour Proxmox.
      Après je vois pas l’intérêt d’installer Proxmox sur un disque ou il y a déjà des données dessus. C’est pour l’installer sur ta machine physique ? Si c’est le cas tu peux virtualiser Proxmox sous VMWare.

      A te lire.

      Arnaud.

      Répondre
  • Hello 🙂 Tout d’abord bravo pour le poste, c’est super 🙂
    Sinon, j’aurais deux questions, j’ai vu qu’il était impossible de faire du Direct PassThrought si la CM n’était pas compatible VT-d. Est ce vrai ?

    Deuxièmement, est il possible avec le PassThrought de connecter une vieille carte en PCIe (Cette carte n’est plus compatible sur les dernières versions de mon OS) sur une machine virtuelle et que celle ci soit utilisé comme si elle était branchée en direct sur la machine virtuelle ?

    Merci beaucoup,
    Nico’

    Répondre
    • Bonjour Nicolas,
      Je ne vais pas pouvoir t’aider sur ce sujet, j’en ai aucune idée… Je te propose d’ouvrir un post sur notre forum, peut être qu’un internaute aura les réponses à tes questions.

      Bonne journée.

      Arnaud.

      Répondre
  • Bonjour M. Arnaud et merci pour ce magnifique tuto!

    J’ai pris gout vraiment de la virtualisation et depuis je fais beaucoup de recherches et de tests sur. Mais mon problème est le suivant: Comment gérer le routage des VMs dans l’yperviseur. C’est-à-dire d’être sur un VM et de pinguer une adresse de l’extérieur exemple ma passerelle ADLS ou bien du réseau local vers la VM. J’ai fouiné sur les forum… mais je ne me retrouve pas. Il y’a une des solutions comme open vSwitch. J’aimerai vraiment y être édifié. Merci

    Répondre
    • Bonjour Moïse,
      Quelle est la configuration réseau de tes VMs sous Proxmox.
      Je te propose d’ouvrir un nouveau sujet sur notre forum à l’adresse suivante :

      http://it-connect.fr/forum/index.php

      Ainsi nous serons plus nombreux à pouvoir t’aider.

      Arnaud.

      Répondre
  • Re bonjour Arno,

    Suite à mon autre post (Problème rsync), je tombe sur celui-ci.

    Serait-ce une solution pour mon projet?

    Répondre
    • A propos de NFS ? oui complétement.

      Répondre
  • Bonjour tous le monde,

    J’ai insaller PROXMOX VE 4.4 sur une machine vierge, donc tout va bien j’ai installer tout s’est bien passé, j’arrive à accéder à mon serveur de la page web par contre quand je crée un VM et que j’essaie de la démarrer ça me marque :

    Erreur Could not access KVM kernel module: No such file or directory
    failed to initialize KVM: No such file or directory

    j’ai fais un aptitude searche kvm et là j’ai une liste ikvm, kvm, nova-compute-kvm, pve-qemu kvm, qemu kvm, etc…
    quelqu’un peux m’aider merci.

    Répondre
  • Bonjour tu dis au début de ton tuto « Prendre en charge l’authentification avec PAN, Active Directory, »

    Il s’agit de l’authentification PAM !! Avec un M a la fin.
    L’authentification PAM est une authentification système locale, se sont les users du système d’exploitation.

    Je ne te demande pas de publier mon commentaire, juste de rectifer le tuto ^^ Je t’ai a coté écris un commentaire sympatique.

    Répondre
    • Bonjour Jack,

      Effectivement je me suis trompé, je viens de faire la correction 😉
      Merci à toi pour ta relecture mais également pour ton commentaire.

      Bonne journée.

      Arnaud

      Répondre
  • Super tutoriel, merci beaucoup pour se site plein de tutoriel ! Continue comme ça ! 🙂

    Répondre
  • Bonjour Armand est’il possible de mettre en cluster des serveurs qui se trouvent sur des reseaux distants ? exemple Node01:192.168.1.254/24 et Node02:172.16.1.254/24

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.