Nested KVM

Some random notes (to be sorted at some point) on running KVM inside KVM, e.g. to test-run Cloudmin/Proxmox/CoreOS without affecting your machine.

Notice nesting is not enabled by default, it can be checked on /sys and enabled by passing nested=1 as an option to the module:

  $ cat /sys/module/kvm_intel/parameters/nested
  N
  rmmod kvm-intel                                # or kvm-amd
  modprobe kvm-intel nested=1
  $ cat /sys/module/kvm_intel/parameters/nested
  Y
  

Command-line example:

  # kvm -hda /dev/vg/lvkvm -cdrom osinstall.iso -boot d -m 1G \
    -vnc :2 -netdev tap,id=net0,ifname=tap0 -device virtio-net,netdev=net0,mac=52:54:00:12:34:56 -cpu host

Explanation:

  • -hda /dev/vg/lvkvm → Use an LVM Logical Volume as the first hard disk
  • -cdrom osinstall.iso -boot d → Connect this ISO to the guest's DVD drive and boot from it
  • -m 1G → Provide the guest 1 GB of RAM
  • -vnc :2 → Run the display as a VNC server
  • -netdev tap,id=net0,ifname=tap0 -device virtio-net,netdev=net0,mac=52:54:00:12:34:56 → Use TAP networking with virtio drivers (combined with a host bridge it integrates in the LAN), see Channel Bonding to share the same IP for Bridged wired & Wireless interfaces
  • -cpu host → The key here, expose all the CPU features (including KVM)

Sources

kvm/nested.txt · Last modified: 2016/04/04 00:20 by Toni Corvera
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki