— Virtualization (@cfisk & @ramareth) —
Co-led by @cfisk (who's working with KVM on Ubuntu 9.04 wants to know more) and @ramereth (OSU Open Source Labs, who knows more and wants to understand the questions).
Basic questions:
- What are the options?
- What should I do?
Reasons to use virtualization
- Sandbox testing: I want to try something new without trashing my existing system setup
- Separate staging environment
- Datacenter resource management
@ramareth:
- OSL uses Xen mostly, but has tried KVM (can't use it everywhere due to Vt req't)
- Uses Virtualization mostly to help clients scale without requiring new hardware
- IBM Bladecenter with 14 blades, running 55 VMs; iSCSI backend makes it easy to migrate between nodes; LVM partition for each VM.
- (Hitting weird limits on iSCSI, but most of the iSCSI alternatives suck as much as NFS does)
- Lots of RAM is key: 4G each (6-7 VMs in each box). Xen grabs RAM at startup, KVM can swap
What are the options?
- Xen
- pro: more mature; lot of stable features
- con: requires special (dangerously old?) kernel on Dom0 (may be fixed soon?)
- KVM
- pro: RedHat & Ubuntu are focusing support on KVM
- con: requires AMD or Intel paravirtualization extensions (VTi); may not perform as well as Xen (@znmeb's interested in this)
- virtIO for disk/network/console is useful
- supports multicore guests
- VMWare
- easy if you just want a sandbox
- Takes advantage of CPU virtualization if it's there
- Workstation edition ($$) can clone.
- VirtualBox (There are two versions: an open-source edition, & Sun's proprietary version)
- easy if you just want a sandbox
- Takes advantage of CPU virtualization if it's there
- has easy snapshot support
- QEMU / Bochs
- supports emulation of other architectures (eg, MIPS on x86) for cross-development
- HyperV - Microsoft's server virtualization
- VirtualPC - Microsoft's desktop virtualization suite
- supports cloning with a little work
- hardware support is questionable
- Windows 7 supports running Windows XP in a virtualization sandbox (using this?)
- Parallels - Mac only
- people use this or VMWare Fusion
- then there's the cloud…
- Amazon EC2
- Eucalyptus in Ubuntu 9.10, matches Amazon EC2 API
- CloudKick - put EC2 instances on SliceHost
Other Resources
- libvirt (abstraction layer for managing VM environment; gui, cmdline, & API)
- Ganeti (google management tool)
- Conga (RedHat's cloud virtualization suite)