2010-10-31 21:30:10 +00:00
|
|
|
[[!meta title="Linux Virtual Machine Overview"]]
|
2010-10-31 21:04:10 +00:00
|
|
|
|
|
|
|
This document is ***WORK IN PROGRESS***
|
|
|
|
|
|
|
|
## Introduction
|
|
|
|
|
|
|
|
This article tries to summarise Linux Virtual Machine
|
2010-10-31 21:16:29 +00:00
|
|
|
methods and is in its early stage. It does not focus
|
|
|
|
on different types of hypervisors, but more on the
|
|
|
|
issues and features you get with each hypervisor.
|
|
|
|
|
|
|
|
### Host Kernel
|
|
|
|
|
|
|
|
Some supervisors need their own (modified Linux) kernel
|
|
|
|
to operate, whereas others work with any Linux kernel.
|
|
|
|
Though some of them again need some configurations
|
|
|
|
to be turned on in the stock kernel.
|
|
|
|
|
2010-10-31 21:36:59 +00:00
|
|
|
### Management
|
|
|
|
|
|
|
|
Most hypervisors contain some minor collection of utilities
|
|
|
|
to manage virtual machines. Some libraries / frameworks
|
|
|
|
try to integrate those utilities, to abstract the different
|
|
|
|
implementations.
|
|
|
|
|
|
|
|
Typical issues are:
|
|
|
|
|
|
|
|
* Autostart machines on startup / autostop on shutdown
|
|
|
|
* Creation of new VMs / including template handling
|
|
|
|
* Manual start/stop of VMs
|
|
|
|
* Listing of running / existing VMs
|
|
|
|
|
2010-10-31 21:29:14 +00:00
|
|
|
## Hypervisors
|
2010-10-31 21:16:29 +00:00
|
|
|
|
|
|
|
[[!table data="""
|
|
|
|
Name | Host Kernel
|
|
|
|
[QEMU](http://wiki.qemu.org/) | Original
|
|
|
|
[KVM](http://www.linux-kvm.org/) | Original w/KVM
|
2010-10-31 21:36:59 +00:00
|
|
|
[Lguest](http://lguest.ozlabs.org/) | Original w/Lguest
|
2010-10-31 21:16:29 +00:00
|
|
|
[Linux Containers](http://lxc.sourceforge.net/) | Original w/Containers
|
2010-10-31 21:29:14 +00:00
|
|
|
[Linux VServer](http://linux-vserver.org) | Own
|
2010-10-31 21:16:29 +00:00
|
|
|
[User Mode Linux](http://user-mode-linux.sourceforge.net/) | Original
|
2010-10-31 21:29:14 +00:00
|
|
|
[OpenVZ](http://wiki.openvz.org/Main_Page) | Own
|
|
|
|
[Virtualbox](http://www.virtualbox.org/) | Original+Modules
|
|
|
|
[VMWare](http://www.vmware.com/) | Original+Modules / Own
|
2010-10-31 21:16:29 +00:00
|
|
|
[Xen](http://www.xen.org/) | Own
|
|
|
|
"""]]
|
|
|
|
|
2010-10-31 21:29:14 +00:00
|
|
|
## Libraries / Frameworks
|
2010-10-31 21:04:10 +00:00
|
|
|
|
2010-10-31 21:29:14 +00:00
|
|
|
[[!table data="""
|
|
|
|
Name | Hints
|
|
|
|
Ganetti |
|
|
|
|
Libvirt |
|
|
|
|
"""]]
|
2010-10-31 21:04:10 +00:00
|
|
|
|
|
|
|
## Raw import of notes
|
|
|
|
|
|
|
|
The following notes I made some months ago, which will
|
|
|
|
be the basis for this article.
|
|
|
|
|
|
|
|
|
|
|
|
Try all of them and handle them via creature!
|
|
|
|
|
2010-10-31 21:16:29 +00:00
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
|
|
|
From host like lxc.
|
|
|
|
|
|
|
|
From "inside" like KVM/QEMU/VMWare.
|
|
|
|
|
|
|
|
|
2010-10-31 21:04:10 +00:00
|
|
|
status
|
|
|
|
------
|
|
|
|
eth: ip addresses / mac / dhcp
|
|
|
|
|
2010-10-31 21:16:29 +00:00
|
|
|
### lxc
|
2010-10-31 21:04:10 +00:00
|
|
|
Not completly isolated. Linux only. Many changes to the guest os.
|
|
|
|
Some scripts existent (lxc-debian, lxc-fedora). The latter does
|
|
|
|
not work on debian.
|
|
|
|
|
|
|
|
lxc-debian mit cache (schlau)
|
|
|
|
no real hypervisor existent.
|
|
|
|
|
|
|
|
mac / ipv4 management missing => creature
|
|
|
|
|
|
|
|
adjust init. change dev. do not run udev (why?)
|
|
|
|
|
|
|
|
Root open in the filesystem. Nice. Quota?
|
|
|
|
|
|
|
|
Ressources are shared, if nothing else is specified.
|
|
|
|
=> network = all!
|
|
|
|
|
|
|
|
First installation - than virtualisation!
|
|
|
|
|
|
|
|
kvm
|
|
|
|
---
|
|
|
|
mac address,
|
|
|
|
ip address => dhcp???
|
|
|
|
|
|
|
|
|
|
|
|
Bootstrapping
|
|
|
|
-------------
|
|
|
|
how tos
|
|
|
|
different methods
|
|
|
|
which way for which vm-type
|
|
|
|
|
|
|
|
Network
|
|
|
|
-------
|
|
|
|
Always dhcp? Either on the vm-host or external.
|
|
|
|
Reason: Easy to configure. Scales dynamically.
|
|
|
|
|
|
|
|
How to handle bridges etc.? Independent of the os?
|
|
|
|
Reuse OS
|
|
|
|
|
|
|
|
|
|
|
|
[[!tag net unix]]
|