Proxmox

De SLM - MediaWiki

Retour

Commande

VM

qm list                 list all virtual machines 
qm monitor <vmid>       connect to vm control monitor
qm start <vmid>         start vm
qm reboot <vmid>        reboot vm (shutdown, start)
qm shutdown <vmid>      gracefully stop vm (send poweroff)
qm stop <vmid>          kill vm (immediate stop)
qm reset <vmid>         reset vm (stop, start)
qm suspend <vmid>       suspend vm
qm resume <vmid>        resume vm
qm destroy <vmid>       destroy vm (delete all files)

CT

pct list
pct reboot <vmid> [OPTIONS]
pct resume <vmid>
pct shutdown <vmid> [OPTIONS]
pct start <vmid> [OPTIONS]
pct stop <vmid> [OPTIONS]
pct suspend <vmid>
pct console <vmid> [OPTIONS]

Conteneurs OpenVZ et LXC

Les conteneurs OpenVZ sont équivalent aux Jails du système FreeBSD, ce sont des hyperviseurs de type 2, c'est une technologie basé sur un kernel Linux permettant de compartimenter des processus et leurs descendants, c'est une solution plus lègére que la virtualisation complète via la technologie KVM, les système invités partages le même kernel.

OpenVZ utilise un système de partage de ressources très différent de KVM puisque le kernel est partagé entre les sous-systèmes, par exemple une fois que la limite mémoire assigné par le système hôte à un sous-système est atteinte, le conteneur se réserve le droit de récupérer de la mémoire sur les autres systèmes.

Il est plus difficile de customiser les sous-système lorsqu'ils sont contenus dans des conteneurs OpenVZ car ils sont dépendent du kernel Linux hôte et de la version du kernel.

Un avantage non négligeable est la rapidité et la facilité de créations, d'installation et de configuration des systèmes via les templates OpenVZ intégrés, il est possible de télécharger des versions prête à être utiliser de différentes distributions (Debian, centos, Debian intégrant le CMS Joomla etc.) selon des templates fournies par exemple par la distribution TurnKey puis de modifier la configuration de ses templates pour en créer de nouveau s'adaptant aux différents besoins.

Note : Depuis la version 4, les conteneurs OpenVZ sont remplacés par les conteneurs LXC. (grosso modo similaire dans le concept)

Avantages :

  • Faible consommation de ressources (CPU, RAM etc.), pénalité de l'ordre de 1 à 3% par rapport à une machine physique, peut supporter un très (très) grand nombre de sous-système
  • Flexibilité accrue pour l'allocation des ressources (réduction/aggrandissement de l'espace disque etc)
  • Complexité réduite par rapport aux machines KVM
  • Rapidité de démarrage, extinction, création, destruction etc.
  • Peut être plus efficace dans le partage des ressources comparé à des machines KVM
  • Aisance d'administration, récupération, installation automatique de systèmes via un système de templates, création de templates personnalisés avec différente configurations
  • Proxmox dispose d'une intégration quasi-complète des conteneurs LXC dans ses versions récente facilitant l'installation, le monitoring et la configuration.

Inconvénients :

  • Dépend du kernel Linux choisi lors de la création du conteneur
  • Peu adaptatif

Recommendations :

Il est préférable d'utiliser les conteneurs OpenVZ ou LXC dans un conteneur KVM plutôt que sur le noeud principal Proxmox.


Virtualisation KVM

KVM (Kernel-based Virtual Machine) est un hyperviseur de type 1 pour Linux, contrairement aux conteneurs, ils permettent de booter différent type de systèmes et plus généralement émule une machine quasi-complètement (jusqu'à son matériel)

Avantages :

  • Cloisonement/isolation totale (virtualisation complète), 100% des ressources alloués à une machine sont dédiés à cette machine quoiqu'il arrive
  • Personnalisation totale de la machine (n'est pas dépendant d'un système d'exploitation type)
  • Robuste (les ressources assignés sont garanties)

Inconvénients :

  • Performances moindre comparé aux conteneurs OpenVZ ou LXC car la virtualisation est complète
  • Complexité de l'infrastructure de communications entre différentes VMs (KVM étant placé sous un paradigme matériel versus logiciel dans le cas des conteneurs)
  • Administration et installation un peu plus difficile que les conteneurs OpenVZ ou LXC

Création de backups automatique régulier (snapshot) :

  1. Cliquer sur le dossier Proxmox racine "Datacenter"
  2. Cliquer sur l'onglet "backup" pour avoir la liste des tâches concernant les backups
  3. Cliquer sur "Add"
  4. Choisir le noeud concerné ainsi que le noeud de stockage
  5. Planifier le backup
  6. Séléctionner les VMs assigné au backup automatique
  7. Choix de la notification, compression, mode "snashot" puis "Create"

Importation d'une VM au format ouvert ".ova" crée sous VirtualBox :

  1. Upload du fichier ".ova" sur la Proxmox
  2. Extraction de l'OVA (produisant des fichiers ".vmdk", ".ovf" et ".mf") : tar xvf my.ova
  3. Conversion des fichiers ".vmdk" obtenus au format par défaut VM de Proxmox ".qcow2" : qemu-img convert -f vmdk myvm-disk1.vmdk -O qcow2 myvm-disk1.qcow2
  4. Créer une VM dans Proxmox contenant les même propriétés que le contenu du fichier ".ovf" (ouvrir avec un éditeur de texte)
  5. Remplacer les fichiers ".qcow2" de la VM crée par les images ".qcow2" obtenus lors de l'étape de conversion
  6. La VM est désormais converti et peut être démarré


Proxmox

Convertir .qcow2 en .vmdk (VMWare)

qemu-img convert -f qcow2 -O vmdk vm-102-disk-1.qcow2 vm-102-disk-1.vmdk

Restaurer un snapshot KVM

112 = l'ID de la VM qui va être crée

qmrestore /var/lib/vz/dump/snapshot.vma.lzo 112

Emplacement des conteneurs de stockage :

  • les conteneurs se trouvent dans /var/lib (ex. dossier des ISOs OpenVZ : /var/lib/vz/template/iso)
  • placer les conteneurs .tar.gz dans /var/lib/vz/template/cache
  • les VMs se trouvent dans /var/lib/vz/

Par defaut seul une sauvegarde par VM est possible.

Pour changer la valeur:

Datacenter -> Storage -> Local -> Edit : 'Max backups'

Accèder aux VMs :

Outre par accès SSH, Proxmox offre trois autres moyens d'accèder aux VMs selon la configuration de la Proxmox :

  • noVNC : Solution simple et rapide mais ne disposant pas de fonctionnalités avancés (copier coller)
  • VNC : Solution standard, nécessite un client VNC
  • SPICE : Utiliser l'installateur spice-guest sous windows pour bénéficier des fonctionnalités avancés

Cas d'un serveur web tournant dans une VM faisant office de proxy inverse et routant les requêtes vers d'autres VMs :

Exemples de redirection de ports via iptable (80 et 443 vers une VM cible 10.0.1.110) :

-A PREROUTING -i vmbr0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.1.110:80

-A PREROUTING -i vmbr0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.1.110:443

Mise à jour des règles de routage (iptable) :

iptables-restore < /etc/iptables.up.rules

Tester les règles de routage du serveur web reverse proxy au sein de la node Proxmox :

curl -v --header 'Host: xyz.tld' 10.0.1.110

Bugs de la version 3.x

  • Lorsqu'il n'y à plus d'espace de stockage sur la ProxMOX, les VMs sont stoppés et ne peuvent plus démarrer, libérer de l'espace disque est nécessaire pour que les VMs puisse être de nouveau démarré.

Virtualisation d'une machine physique

Cet article as été écrit avec les informations obtenus depuis un système Proxmox v3.x.