1,734
edits
Changes
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 — Virtual Machines (VM) or [[Virtual Environment]]s ([[VE]]s) — 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 === <!--T:) You changed topics 4-->This technique also requires a VMM, but most of its work is performed in the ''guest OS'' code, which in mid-paragraphturn 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.
=== Paravirtualization =Short comparison ==<!--T:6-->This technique also requires a VMMThe three techniques differ in complexity of implementation, but most breadth of its work is performed in the ''guest OS'' codesupport, which performance in turn is ''modified'' to support this VMM comparison with standalone server, and avoid unnecessary use level of privileged instructionsaccess to common resources. The paravirtualization technique also enables running different OSs on a single serverFor example, VMs have wider scope of usage, but poorer performance. Para-VMs have better performance, but requires them can support fewer OSs because one has to be ported, i.e. they should "know" they are running under modify 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]original OS.
== Short comparison Where to go further ==<!--T:8-->The three techniques differ in complexity of implementation, breadth of OS support, performance in comparison with standalone server, and level of access If you've decided 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 try OpenVZ virtualization solution go to modify the original OSs[[Quick installation|OpenVZ installation]] section.
* [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]]