Jump to content

Hardware virtualization

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Snrjefe (talk | contribs) at 23:03, 14 November 2006 (External links). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computing, virtualization is "a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources. This includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource."[1] This new Virtual view of the resources is not restricted by the implementation, geographic location or the physical configuration of underlying resources. Commonly virtualized resources include computing power and data storage.

Types of virtualization

Virtualization is a broad term that refers to the abstraction of resources in many different aspects of computing. As a perceived "buzzword", virtualization has been claimed by IT marketers to refer to everything from virtual machines to systems management software, so as to become nearly meaningless. Some common applications of virtualization are listed below; this list reflects the extreme diversity that the term has come to encapsulate.

Software virtualization

Further development

In year 2006, virtualization has a new level of playing field in Application Virtualization and Application Streaming.

Resource virtualization

  • Aggregation, spanning, or concatenation all combine multiple resources into larger resources or resource pools. For example, RAID and volume managers combine many disks into one large logical disk; Channel bonding and network equipment use multiple links combined to work as though they offered a single, higher-bandwidth link. At a meta-level, computer clusters such as those created by PolyServe also do all of this.
  • Partitioning is the splitting of a single, usually large resource (such as disk space or network bandwidth) into a number of smaller, more easily utilized resources of the same type. This is sometimes also called "zoning," especially in storage networks.

Use cases of virtualization

Server consolidation

  • Using virtualization technology (specifically the virtual machine) to consolidate many physical servers into fewer servers hosting virtual machines. The physical server is therefore 'transformed' into a virtual machine guest residing on a virtual machine host system. This is also known as Physical-to-Virtual or 'P2V' transformation.

Disaster recovery

  • Virtual machines can be used as "hot standby" environments for physical production servers. This changes the classical "backup-and-restore" philosophy by allowing for backup images to "boot" into live virtual machines that can take over workload for the production server that is experiencing an outage.

Testing and training

  • Hardware virtualization can give root access to a virtual machine. This can be very useful such as in kernel development and operating system courses.[2]

Portability for applications

In order to make portable applications for USB drives, software developers must make their software applications leave the computer they run on completely "clean". This means that the application cannot use the registry or store its files anywhere on the machine other than its current directory.

This presents a huge obstacle to some software applications. Applications like Adobe Photoshop or Microsoft Word use the registry intensely and store cookies all over the file system. Changing these software applications to run out of the current directory is very difficult.

Thus, virtualization obtains a new application here. If an application is virtualized for portability, it is "injected" with DLL's that redirect all its calls to the external file system. The application itself will call to make a registry entry or write a file, but the virtualization software will intercept the call and direct it to a file in the current working directory.

This leaves the application unchanged yet portable. This opens up many opportunities for portable software, for software can be made portable without changes to its source code.

Allowing a user to store all of his or her applications on one drive is not yet possible, but hopefully it will become possible in the future. Virtualization has not yet become the industry standard but most likely will once portable software becomes more popular and users want all of their applications portable.

LivePCs

Virtualization has typically been deployed in the commercial server market and personal hobbyist space. Recent developments have attempted to extend the virtualization concept to the consumer market. Some of the newest entries have used virtualization to allow users to bring a workspace with them on a portable storage device like an iPod or USB memory stick. The consumer targeted applications have taken two distinct approaches, OS-level (MojoPac, Ceedo, and U3) and machine-level virtualization (moka5). OS-level virtualization allows end users to install some applications onto a storage device so they can be used on another PC. This does not provide the isolation and security that machine-level virtualization affords. LivePCs are the consumer focused instantiation of machine-level virtualization. LivePCs allow an operating system with a full software suite to be delivered to end users with a single click.

References

  1. ^ Virtualization: Exposing the Intangible Enterprise, 2006, Enterprise Management Associates
  2. ^ Examining VMware Dr. Dobb’s Journal August 2000 By Jason Nieh and Ozgur Can Leonard

See also

Skeptics