Le but en fait ici est de faire fonctionner un serveur Proxmox dans une machine virtuelle gérée par un Proxmox.
Cela permet de maquetter une infrastructure de clusters Proxmox pour tester / apprendre / maquetter avant de passer sur des serveurs réels.
Dans la littérature technique on appelle ceci "Nested Virtualisation". En fait cela ne concerne pas que Proxmox, mais on peut très bien installer un autre hyperviseur dans une machine virtuelle, par exemple il est aussi possible de le faire avec VirtualBox.
Prérequis
Voici les prérequis côté serveur, donc côté serveur Proxmox hôte :
- un processeur récent supportant les instructions de virtualisation
- un kernel de version supérieur à la version 3.10, ce qui est le cas depuis longtemps sur Proxmox maintenant.
- activer le support nested
Activation du support nested
On commence par contrôler si le paramètre nested est activé ou pas dans le processeur :
cat /sys/module/kvm_intel/parameters/nested
NB : par la suite, remplacer kvm_intel par kvm_amd pour les processeur AMD (logique 😉 )
NB2 : suivant le cas la réponse est N ou 0 dans le cas du support non activé
Pour activer le support :
echo "options kvm-intel nested=1" > /etc/modprobe.d/kvm-intel.conf
Il faut redémarrer le module kvm. Pour cela il faut que toutes les vms soient arrêtée sur le serveur.
modprobe -r kvm-intel
modprobe kvm-intel
On vérifie :
# cat /sys/module/kvm_intel/parameters/nested
Côté VM
Il y a quelques obligation du côté de la vm :
- le CPU doit être du model "host"
- de la RAM
- rajouter le paramètre : args: -enable-kvm dans le fichier de conf de la vm (Par exemple : /etc/pve/nodes/srv-host/qemu-server/901.conf)>/etc/pve/nodes/srv-host/qemu-server/901.conf)
A partir de maintenant il est possible d'installer Proxmox dans une VM et dans ce Proxmox créer des VM. Bien sûr il ne faut pas s'attendre à avoir de grosses performances mais cela permet de tester des architectures.
Sources
http://pve.proxmox.com/wiki/Nested_Virtualization
Cet article est une mise à jour d'un article de 2015.