Quick tip: Enable nested virtualization on a GCE instance

The post Quick tip: Enable nested virtualization on a GCE instance appeared first on Mirantis | Pure Play Open Cloud.
There are times when you need to run a virtual machine — but you’re already ON a virtual machine.  Fortunately, it’s possible, but you need to enable nested virtualization.  For me, this comes up often when I’m running OpenStack or Kubernetes on a Google Compute Engine instance.  To solve the problem, follow these steps:

Install the latest version of the gcloud command-line tool.
Create a new instance so you have a base disk to work with.  Because you’ll eventually want to use the image in a zone that includes nested virtualization, create it in zone us-central1-b.  You can do this from the UI, or using the command line. By default, the disk will have the same name as the instance:
gcloud compute instances create temp-image-base –zone us-central1-b
Stop the instance:
gcloud compute instances stop temp-image-base –zone us-central1-b

Now create a new disk, based on that disk, with nested virtualization enabled:
gcloud compute images create nested-vm-image
  –source-disk temp-image-base –source-disk-zone us-central1-b
  –licenses “https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx”

Next create the new instance using the new image:
gcloud compute instances create nested-vm –zone us-central1-b –image=nested-vm-image –boot-disk-size=250GB

Connect to the instance:
gcloud compute ssh nested-vm –zone=us-central1-b

Confirm that nested virtualization is enabled by looking for a non-zero response to:
> grep -cw vmx /proc/cpuinfo
> 1

Finally, install a hypervisor such as KVM:
sudo apt-get update && sudo apt-get install qemu-kvm -y

From there, you’re ready to run VMs on your VM.
The post Quick tip: Enable nested virtualization on a GCE instance appeared first on Mirantis | Pure Play Open Cloud.
Quelle: Mirantis

Published by