Virtualization Articles about
Virtualization
 

Information About

Virtualization




In Computing , virtualization is a broad term that refers to the Abstraction of computer resources. One useful definition is "a technique for hiding the physical characteristics of computing resources from the way in which other systems, Application s, or End User s 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."A quote from IT analyst firm Enterprise Management Associates

However, the term is an old one: It has been widely used since the 1960s or earlier, and has been applied to many different aspects and scopes of computing — from entire computer systems to individual capabilities or components. The common theme of all virtualization technologies is the ''hiding of technical detail'', through Encapsulation . Virtualization creates an external interface that hides an underlying implementation, e.g. by Multiplexing access, by combining resources at different physical locations, or by simplifying a control system. Recent development of new virtualization platforms and technologies has refocused attention on this mature concept.

Like such terms as Abstraction and Object Orientation , ''virtualization'' is used in many different contexts. This article reviews common uses of the term, divided into two main parts:
  • Platform virtualization involves the simulation of computer environments.

  • Resource virtualization involves the simulation of combined, fragmented, or simplified resources.


Of course, virtualization is also an important concept in non-computer contexts. Many Control System s implement a virtualized interface to a complex device; thus a modern car's gas pedal does much more than just increase the flow of fuel to the engine; and a Fly-by-wire system presents a simplified "virtual airplane" which may have little to do with the physical implementation.

An also useful concept is that which opposes virtualization to Transparency : something is virtual when it is visible, perceivable, but does not physically exist in the form perceived (e.g. ''virtual storage''); and is transparent when it exists in the real world, but is not visible in use (e.g. ''location transparency'').


PLATFORM VIRTUALIZATION


The original sense of the term ''virtualization'', dating from the 1960s, is in the creation of a Virtual Machine using a combination of hardware and software. For convenience, we will call this platform virtualization. The term ''virtual machine'' apparently dates from the IBM M44/44X experimental paging system. The creation and management of virtual machines has also been referred to as creating ''pseudo machines'', in the early CP-40 days, and ''server virtualization'' more recently. The terms ''virtualization'' and ''virtual machine'' have both also acquired additional meanings through the years.

Platform virtualization is performed on a given hardware platform by "host" software (a ''control program''), which creates a simulated computer environment (a ''virtual machine'') for its "guest" software. The "guest" software, which is often itself a complete Operating System , runs just as if it were installed on a stand-alone hardware platform. Typically, many such virtual machines are simulated on a given physical machine. For the "guest" system to function, the simulation must be robust enough to support all the guest system's external interfaces, which (depending on the type of virtualization) may include hardware drivers.

There are several approaches to platform virtualization, listed below based on how complete a hardware simulation is implemented. (The following terms are not universally-recognized as such, but the underlying concepts are all found in the literature.)

;, PearPC , PowerPC version of Virtual PC , QEMU without acceleration, and the Hercules Emulator . Emulation is implemented using a variety of techniques, from State Machine s to the use of Dynamic Recompilation on a Full Virtualization platform.

; and CP {Link without Title} /CMS , predecessors of IBM's VM family. Examples include VirtualBox , Virtual Iron , Virtual PC , VMware Workstation , VMware Server (formerly GSX Server), VMware ESX Server , QEMU , Adeos , Mac-on-Linux , Win4BSD, Win4Lin Pro , and Z/VM .

;Hardware enabled virtualization : the virtual machine has its own hardware and allows a guest OS to be run in isolation. In many instances the virtual machine runs an operating system different than that of the host computer. Typically, the number of virtual machines installed on a primary OS is limited only by the host computer’s hardware and memory resources. In 2005 and 2006, Intel and AMD provided additional hardware to support virtualization. Examples include VMware Fusion , Parallels Desktop For Mac , and Parallels Workstation .

;s. Such an environment supports resource sharing and process isolation, but does not allow separate "guest" operating system instances. Although not generally viewed as a Virtual Machine category ''per se'', this was an important approach historically, and was used in such systems as CTSS , the experimental IBM M44/44X , and arguably systems like MVS . (Many more recent systems, such as Microsoft Windows and Linux , as well as the remaining categories below, also use this basic approach.)

; is called a "hypercall" in Xen ; it is implemented via a DIAG ("diagnose") hardware instruction in IBM's CMS under VM (which was the origin of the term ''hypervisor''). Examples include Win4Lin 9x , Sun's Logical Domains , and Z/VM .

; , Parallels Desktop For Mac , Linux-VServer , Virtuozzo (for Windows or Linux), OpenVZ , Solaris Containers , and FreeBSD Jail s.

; or Server application locally, using local resources, within an appropriate virtual machine; this is in contrast with running the application as conventional local software, i.e. software that has been 'installed' on the system. (Compare this approach with Software Installation and Terminal Services .) Such a virtualized application runs in a small virtual environment containing the components needed to execute – such as registry entries, files, environment variables, user interface elements, and global objects. This virtual environment acts as a layer between the application and the Operating System , and eliminates application conflicts and application-OS conflicts. Examples include the Xenocode Virtual Appliance Studio, Sun Java Virtual Machine , Softricity , Thinstall , Altiris , and Trigence . (This approach to virtualization is clearly different from the preceding ones; only an arbitrary line separates it from such virtual machine environments as Smalltalk , FORTH , Tcl , P-code , or any Interpreted Language .)

As Of 2006 , Recent Tools And Technologies For Virtualization are providing new alternatives for ''application virtualization'' and '' Application Streaming ''.


RESOURCE VIRTUALIZATION


The basic concept of platform virtualization, described above, was later extended to the virtualization of specific system resources, such as storage volumes, name spaces, and network resources.

  • Resource Aggregation , Spanning , or Concatenation combines individual components into larger resources or resource pools. For example:

  • --- RAID and Volume Managers combine many disks into one large logical disk.

  • --- Storage Virtualization refers to the process of completely abstracting logical storage from physical storage, and is commonly used in SANs . The physical storage resources are aggregated into storage pools, from which the logical storage is created. Multiple independent storage devices, which may be scattered over a network, appear to the user as a single, location-independent, monolithic storage device, which can be managed centrally.

  • --- Channel Bonding and network equipment use multiple links combined to work as though they offered a single, higher-bandwidth link.

  • --- Virtual Private Network (VPN), Network Address Translation (NAT), and similar networking technologies create a virtualized network namespace within or across network subnets.

  • --- Multiprocessor and Multi-core computer systems often present what appears as a single, fast processor.


  • Computer Cluster s, Grid Computing , and ''virtual servers'' use the above techniques to combine multiple discrete computers into larger ''metacomputers''.


  • Partitioning is the splitting of a single resource (usually large), 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.


  • Encapsulation is the hiding of resource complexity by the creation of a simplified interface. For example, CPU s often incorporate Cache memory or Pipelines to improve performance, but these elements are not reflected in their virtualized external interface. Similar virtualized interfaces hiding complex implementations are found in disk drives, modems, routers, and many other "smart" devices.



VIRTUALIZATION EXAMPLES


The following examples illustrate applications of virtualization.

; Server consolidation : Virtual machines are used to consolidate many physical servers into fewer servers, which in turn host virtual machines. Each physical server is reflected as 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 providing backup images that can "boot" into live virtual machines, capable of taking over workload for a production server 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. Examining VMware Dr. Dobb’s Journal August 2000 By Jason Nieh and Ozgur Can Leonard
; platform lead to well-known issues involving the creation of Portable Application s. For example, many applications cannot be run from a removable drive without installing them on the system's main disk drive. This is a particular issue with USB Drive s. Virtualization can be used to Encapsulate the application with a Redirection layer that stores temporary files, Windows Registry entries, and other state information in the application's installation directory – and not within the system's permanent file system. See Portable Application s for further details. It is unclear whether such implementations are currently available.
; Portable workspaces : Recent technologies have used virtualization to create portable workspaces on devices like IPod s and USB Memory Stick s. These products include:
  • Application Level – Thinstal – which is a driver-less solution for running "Thinstalled" applications directly from removable storage without system changes or needing Admin rights

  • OS-level – MojoPac , Ceedo , Aargo and U3 – which allows end users to install some applications onto a storage device for use on another PC.

  • Machine-level – moka5 and LivePC – which delivers an operating system with a full software suite, including isolation and security protections.


; Hardware virtualization technologies
  • Intel Vanderpool x86 virtualization

  • AMD Pacifica x86 virtualization

  • Sun UltraSPARC T1 hypervisor

  • IBM Advanced POWER virtualization



REFERENCES


For historical sources, including many seminal computer science papers dealing with the topic, see CP/CMS References .


SEE ALSO




EXTERNAL LINKS




;Skeptics about recent virtualization trends
  • Virtualization Limitations

  • http://www.builderau.com.au/strategy/architecture/soa/Grid_computing_A_skeptic_s_perspective/0,339028264,320280601,00.htm Grid computing skeptic]