Translation(s): English - Français - Italiano - 한국어 - Español
This portal talks about virtualization. Technical language could be used.
In computing, platform virtualization is a term that refers to the abstraction of computer resources. Virtualization hides the physical characteristics of computing resources from their users (more on Wikipedia)
Note that virtualization is different than emulation, which duplicates (provides an emulation of) the functions of one system using a different system, so that the second system behaves like (and appears to be) the first system (more on Wikipedia)
Contents
Use cases and applicable solutions
Local desktop virtualization
A local workstation on a user's desk running two or more operating instances simultaneously.
Example: a Debian host running Microsoft Windows in a virtual machine.
Why:
- running applications that don't run on the host OS (e.g. running a Windows application on a GNU/Linux desktop)
- testing changes that may cause instability without disrupting the main host OS
- running a VM that is sandboxed/isolated from LAN or Internet resources
Benefits:
- as everything is local, performance is very high, especially for graphics
- uses spare capacity in workstation-class desktops
Debian solution:
VirtualBox provides a nice GUI and accelerated graphics features for the VM
KVM can also do this, but the graphics emulation has performance limitations.
If GPU card passthrough works on your hardware then it is a great way to go
Alternative solutions for graphics acceleration are emerging, including VirGL (813658) and KVMGT (currently supports Intel Haswell-based GPUs only, can be adapted for others in theory). These solutions are discussed and compared in this thread
Remote desktop virtualization
A central server running dozens of virtual workstation instances for different users. Example: a Debian host running 20 virtual workstations.
Why:
- centralized management
- accessing a specific desktop or desktop application from multiple locations
Benefits:
- performance is comparable when accessed from multiple locations
- any local workstation can potentially be used as long as there is a remote desktop client such as VNC viewer. Old machines or machines running some other OS can be used for more purposes.
Debian solution:
Server virtualization
A single physical server running more than one virtual server OS instances. Example: a Debian host running five Debian virtual servers, two virtual Windows servers and ten virtual desktops.
Why:
- don't need to buy hardware for every server you want to run
- run just one major process on each virtual server (e.g. mail on one, SQL on another) so that they can be rebooted or upgraded independently of each other, making support and upgrades easier
Debian solutions:
High level: use a solution like ganeti or XCP (or XenServer) which provides a very structured way to manage virtual machine lifecycle, including standard patterns for virtual storage and networking
Low level: use KVM or Xen to create a server, manually managing the virtual storage and networking with scripts you create yourself.
Cloud
Cloud is similar to server virtualization, except that instances become more abstract. Server instances can be deployed dynamically from templates for purposes such as horizontal scalability.
Why:
- scaling on demand
Debian solutions:
OpenStack, probably based on KVM underneath, but can also be based on Xen
see the Debian Wiki Cloud page for more options
Using Debian to host Virtual Computers
Open Source solutions
Virtualization
Qemu - Mostly used on Desktops/Laptops.
KVM - Used on servers as well as Desktops/Laptops.
VirtualBox - Mostly used on Desktops/Laptops. Similar to VMWare Workstation. Can be used in headless mode on servers.
Xen - Provides para-virtualization and full-virtualization. Mostly used on servers.
OS-level virtualization
nspawn - Linux Containers provided through Systemd.
LXC - Linux Containers. Creates multiple isolated containers. Mainline since 2.6.26.
Docker - Linux Containers.
Podman - Linux Containers. Alternative to Docker.
?LinuxVserver - Mostly used on servers. Creates multiple isolated containers. DEPRECATED.
OpenVz - Mostly used on servers. Creates multiple isolated containers. DEPRECATED.
Others
UserModeLinux Not really a virtualization. Doesn't need superuser privileges.
Schroot - Not a virtualization, but similar in purpose. (based on chroot)
libvirt - Manage different virtualization solutions such as KVM and Xen through a common (programming and user) Interface.
Ganeti - Cluster virtualization manager, for KVM or Xen.
Proprietary software
VMware - Virtualization tool.
VirtualBox - There is an Open-Source-Edition (OSE) and a commercial one with enhanced functionality.
Running Debian inside a Virtual computer
Debian inside Microsoft Virtual PC 2007.
Debian inside Microsoft Hyper-V.
Virtual Networking
Information on how to configure Debian to work with various virtualization methods simultaneously is available on the VirtualNetworking page.
Management Tools
virt-manager - A GUI based on libvirt-bin offering complete virtual infrastructure management.
virsh - A command line tool based on libvirt-bin offering complete virtual infrastructure management.
Tools
kpartx - convenient utility for accessing partitions in an image file or LV from a virtual machine
xmount - tool to crossmount between multiple input and output harddisk images
Wiki pages
All wiki pages related to system virtualization:
- Cloud
- Cloud/AmazonEC2DebianInstaller
- Cloud/AmazonEC2Image
- Cloud/CreateDockerImage
- Cloud/GoogleComputeEngineImage
- Cloud/SystemsComparison
- Cloud/TorqueCluster
- DebianKVMGuests
- Docker
- KVM
- LXC
- Lguest
- OpenNebula
- OpenStack
- OpenVz
- PackagingWithDocker
- Podman
- QEMU
- Qubes
- Schroot
- SystemVirtualization
- ThomasChung/CloudImage
- ThomasChung/Linode
- ThomasChung/WebConsole
- ThomasChung/virsh-snapshot
- UserModeLinux
- VMBuilder
- VMware
- VirtualBox
- VirtualNetworking
- WindowsServerHyperV
- XCP
- Xen
- es/KVM
- euca2ools
- it/QEMU
- it/SystemVirtualization
- it/chroot
- libvirt
- nspawn
- uk/VirtualBox
CategoryVirtualization | CategorySoftware | CategorySystemAdministration | CategoryPortal