Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Introduction to virtualization

405 bytes removed, 08:40, 26 December 2015
Marked this version for translation
<translate>
<!--T:1-->
Virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments. Virtualization techniques create multiple isolated partitions &mdash; Virtual Machines (VM) or [[Virtual Environment]]s ([[VE]]s) &mdash; on a single physical server.
== Techniques ==<!--T:2-->
There are several kinds of virtualization techniques which provide similar features but differ in the degree of abstraction and the methods used for virtualization.
=== Virtual machines (VMs) ===<!--T:3-->'''Virtual machines''' emulate some real or fictional hardware, which in turn requires real resources from the ''host'' (the machine running the VMs). This approach, used by most ''system emulators'', allows the emulator to run an arbitrary ''guest operating system'' without modifications because guest OS is not aware that it is not running on real hardware. :( The main issue with this approach is that some CPU instructions require additional privileges and may not be executed in user space thus requiring a ''virtual machines monitor'' (VMM) , also called a hypervisor, to analyze executed code and make it safe on-the-fly. Hardware emulation approach is used by [http://www.vmware.com/ VMware] products, [http://parallelswww.VirtualBox.org VirtualBox], [http://fabrice.bellard.free.fr/qemu/ QEMU], [http://www.virtuozzo.com/ ParallelsVirtuozzo] and [http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx Microsoft Virtual Server]. :(
=== Paravirtualization === <nowiki>!--T:)</nowiki4--> You changed topics This technique also requires a VMM, but most of its work is performed in mid-paragraphthe ''guest OS'' code, which in turn is ''modified'' to support this VMM and avoid unnecessary use of privileged instructions. The paravirtualization technique also enables running different OSs on a single server, but requires them to be ported, i.e. These emulators they should «know» they are running under the hypervisor. The paravirtualization approach is used to create virtual machines, by products such as [http://dosboxwww.sourceforgexen.net/ DosBOXorg Xen]and [http://bochsuser-mode-linux.sourceforge.net/ BochsUML]. Virtual Machine Emulators are able to run x86 code and OSs on a wide variaty of computer hardware, I.E. ppc/sparc/alpha.
=== Virtualization on the OS level, a.k.a. containers virtualization === <!--T:I should also mention 5-->Most applications running on a server can easily share a machine with others, if they could be isolated and secured. Further, in most situations, different operating systems are not required on the same server, merely multiple instances of a single ''operating system''. OS-level virtualization systems have been designed to provide the required isolation and security to run multiple applications or copies of the same OS (but different distributions of the OS) on the same server. [http://fabriceopenvz.bellardorg/ OpenVZ], [http://www.freeswsoft.frcom/qemuproducts/ Qemuvirtuozzo Virtuozzo], [http://linux-vserver.org/ Linux-VServer] in here some where, but it will only run programs compiled for other CPUs under the same OS I[http://www.Esun. x86 com/bigadmin/content/zones/ Solaris Zones] and [http://www.winehqfreebsd.org Wine/doc/en_US.ISO8859-1/books/arch-handbook/jail.html FreeBSD Jails] on ppc used to run x86 windows propgrams under OSx or Linuxare examples of OS-level virtualization.
== Short comparison == <!--T:6-->The others you mention use cpu virtualizationthree techniques differ in complexity of implementation, Ratherbreadth of OS support, guest code is executed as-is performance in a safe VM environment managed by a VM monitor. Guest kernel code is executed at a less priviliged comparison with standalone server, and level, causing privileged operations of access to generate exceptions which are managed by the VM monitorcommon resources. Like the abovementioned VMware and [http://plex86For example, VMs have wider scope of usage, but poorer performance.sourceforge.net/ Plex86]. Unlike bochs and dosboxPara-VMs have better performance, instructions are not translated(emulation) into native code. This means that vmware and plex but can only run x86 support fewer OSs on x86 hardwarebecause one has to modify the original OS. :)
=== Paravirtualization ===<!--T:7-->This technique also requires a VMM, but most of its work is performed in Virtualization on the ''guest OS'' codelevel provides the best performance and scalability compared to other approaches. Performance difference of such systems can be as low as 1…3%, which in turn is ''modified'' to support this VMM and avoid unnecessary use comparing with that of privileged instructionsa standalone server. The paravirtualization technique [[Virtual Environment]]s are usually also enables running different OSs on a single server, but requires much simpler to administer as all of them to can be portedaccessed and administered from the host system. Generally, i.e. they should "know" they such systems are running under the hypervisor. The paravirtualization approach is used by products such as [http://www.xensource.com/xen/ Xen] and [http://user-mode-linux.sourceforge.net/ UML]best choice for server consolidation of same OS workloads.
=== Virtualization on the OS level =Where to go further ==<!--T:8-->Most applications running on a server can easily share a machine with others, if they could be isolated and secured. Further, in most situations, different operating systems are not required on the same server, merely multiple instances of a single If you''operating system''. OS-level ve decided to try OpenVZ virtualization systems have been designed solution go to provide the required isolation and security to run multiple applications or copies of the same OS (but different distributions of the OS) on the same server. [http://openvz.org/ [Quick installation|OpenVZinstallation], [http://linux-vserver.org/ Linux-VServer] and [http://www.sun.com/bigadmin/content/zones/ Solaris Zones] are examples of OS-level virtualizationsection.
== Short comparison ==The three techniques differ in complexity of implementation, breadth of OS support, performance in comparison with standalone server, and level of access to common resources. For example, VMs have wider scope of usage, but poor performance. Para-VMs have better performance, but can support fewer OSs because of need to modify the original OSs. Virtualization on the OS level provides the best performance and scalability compared to other approaches. Performance difference of such systems can be as low as 1…3%, comparing with that of a standalone server. [[Virtual environment]]s are usually also much simpler to administer as all of them can be accessed and administered from the host system. Generally, such systems are the best choice for server consolidation of same OS workloads. == External links ==<!--T:9-->
* [http://en.wikipedia.org/wiki/Operating_system-level_virtualization wikipedia: Operating system-level virtualization]
* [http://www.hpl.hp.com/techreports/2007/HPL-2007-59R1.pdf HP Labs: Performance Evaluation of Virtualization Technologies for Server Consolidation]
</translate>
[[Category: Technology]]
[[Category: Concepts]]