As the definition is very generic and in trivial terms, even a shared hard drive could be termed virtualization.
A lose definition could be "virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time-sharing, partial or complete machine simulation, emulation, quality of service, and many others."
Popek and Goldberg virtualization requirements are considered to be the genric set of requirements to define virtualization.
As a technique it is used to increase throughput of the existing H/W by adding more so called virtual environments.
“Virtualization is a broad term that refers to the abstraction of computer resources. Virtualization hides the physical characteristics of computing resources from the user. This includes making a single resource appear as a multiple resources vice versa.”
It can be divided to many types based on objects: storage virtualization, computing virtualization (OS virtualization, application virtualization), and network virtualization.
With increasing support being built into the processors (Intel and AMD), now virtual environment give almost near native performance.
It is used in 2 kinds of environments
Desktop Virtualizations
Primarily done to reduce costs, reduce upgrade timeframes, getting away from proprietary systems.
Virtualization in Data centers
Primarily used for resource sharing and consolidation, easy manageability and isolation.
Usecases for virtualization in data centers
- Control ever increasing servers in a data center
- Reduce Power requirements
- Enhancing standardizations
- Legacy operations (Especially in cases where legacy tools are not required all the time and are difficult to change)
- Performance isolation ( By provisioning of resources)
- Via distributed virtual machines on demand network monitoring, on demand security audits, virtual DMZs can be achieved.
- CDN
Available Vendors
- VM ware (Individual applications available as virtual programs are also available)
- Microsoft Virtual PC and Virtual server
- Parallels Workstation
- HP
- IBM
- Xen
- Win4Lin
- Sun virtual box(Free download for individual users)
- VMPlayers are available for free downloads and on top of this freely available linux distros can be installed.
- QEMU
- UML (User mode linux kernal)
- openVZ
- Linux-Vserver
Techniques
Virtual Machines
An emulator based approach, with Virtual machine monitors running to analyze executed code and make it safe on-the-fly for privileged CPU instructions.
Para Virtualization
This technique also requires a VMM, but most of its work is performed in the 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. they should "know" they are running under the hypervisor. The paravirtualization approach is used by products such as Xen and UML.
Virtualization on OS level
Similar to and in UNIX systems based upon chroot mechanism, it allows for multiple user spaces with in a single OS. Not as flexible as other techniques (i.e. Similar OS may be virtualized but a different family e.g Windows on a Linux hosts is not possible) but performance penalty is almost nothing. Such user spaces or instances (also called containers, VEs, VPSs or jails) may look and feel like a real server. In addition to isolation mechanisms, the kernel often provides resource management features to limit the impact of one container's activities on the other containers.
Case Studies
- http://www.intel.com/technology/itj/2006/v10i3/6-enterprise/5-vmware-case-study.htm
- http://www.intel.com/technology/itj/2006/v10i3/6-enterprise/figures/figure_6.gif
- http://www.intel.com/technology/itj/2006/v10i3/6-enterprise/figures/figure_7.gif
No comments:
Post a Comment