Wednesday, July 9, 2008

Network Virtualization

The term “network virtualization” describes the ability to refer to network resources logically rather than having to refer to specific physical network devices, configurations, or collections of related machines. There are many different levels of network virtualization, ranging from single-machine, network-device virtualization that enables multiple virtual machines to share a single physical-network resource, to enterprise-level concepts such as virtual private networks and enterprise-core and edge-routing techniques for creating subnetworks and segmenting existing networks.
Xen relies on network virtualization through the Linux bridge-utils package to enable your virtual machines to appear to have unique physical addresses (Media Access Control, or MAC, addresses) and unique IP addresses. Other server-virtualization solutions, such as UML, use the Linux virtual Point-to-Point (TUN) and Ethernet (TAP) network devices to provide user-space access to the host’s network. Many advanced network switches and routers use techniques such as Virtual Routing and Forwarding (VRF), VRF-Lite, and Multi-VRF to segregate customer traffic into separately routed network segments and support multiple virtual-routing domains within a single piece of network hardware.
Taken from : William Von Hagen "Professional Xen Virtualization" 2008

Desktop Virtualization

The term “desktop virtualization” describes the ability to display a graphical desktop from one computer system on another computer system or smart display device. This term is used to describe software such as Virtual Network Computing (VNC, http://en.wikipedia.org/wiki/VNC), thin clients such as Microsoft’s Remote Desktop (http://en.wikipedia.org/wiki/Remote_Desktop_Protocol) and associated Terminal Server products, Linux terminal servers such as the Linux Terminal Server project (LTSP, http://sourceforge.net/projects/ltsp/), NoMachine’s NX (http://en.wikipedia.org/wiki/NX_technology), and even the X Window System (http://en.wikipedia.org/wiki/X_Window_System) and its XDMCP display manager protocol. Many window managers, particularly those based on the X Window System, also provide internal support for multiple, virtual desktops that the user can switch between and use to display the output of specific applications. In the X Window System, virtual desktops were introduced in versions of Tom LeStrange’s TWM window manager (www.xwinman.org/vtwm.php, with a nice family tree at www.vtwm.org/vtwm-family.html), but are now available in almost every other window manager. The X Window System also supports desktop virtualization at the screen or display level, enabling window managers to use a display region that is larger than the physical size of your monitor.

In my opinion, desktop virtualization is more of a bandwagon use of the term “virtualization” than an exciting example of virtualization concepts. It does indeed make the graphical console of any supported system into a logical entity that can be accessed and used on different physical computer systems, but it does so using standard client/server display software. The remote console, the operating system it is running, and the applications you execute are actually still running on a single, specific physical machine — you’re just looking at them from somewhere else. Calling remote display software a virtualization technology seems to me to be equivalent to considering a telescope to be a set of virtual eyeballs because you can look at something far away using one. Your mileage may vary.
Taken from : William Von Hagen "Professional Xen Virtualization" 2008

Application Virtualization

The term “application virtualization” describes the process of compiling applications into machine- independent byte code that can subsequently be executed on any system that provides the appropriate virtual machine as an execution environment. The best known example of this approach to virtualization is the byte code produced by the compilers for the Java programming language (http://java.sun.com/), although this concept was actually pioneered by the UCSD P-System in the late 1970s (www.threedee.com/jcm/psystem), for which the most popular compiler was the UCSD Pascal compiler. Microsoft has even adopted a similar approach in the Common Language Runtime (CLR) used by .NET applications, where code written in languages that support the CLR are transformed, at compile time, into CIL (Common Intermediate Language, formerly known as MSIL, Microsoft Intermediate Language). Like any byte code, CIL provides a platform-independent instruction set that can be executed in any environment supporting the .NET Framework.

Application virtualization is a valid use of the term “virtualization” because applications compiled into byte code become logical entities that can be executed on different physical systems with different characteristics, operating systems, and even processor architectures.
Taken from : William Von Hagen "Professional Xen Virtualization" 2008

What Is Vir tualization?

Virtualization is simply the logical separation of the request for some service from the physical resources that actually provide that service. In practical terms, virtualization provides the ability to run applications, operating systems, or system services in a logically distinct system environment that is independent of a specific physical computer system. Obviously, all of these have to be running on a certain computer system at any given time, but virtualization provides a level of logical abstraction that liberates applications, system services, and even the operating system that supports them from being tied to a specific piece of hardware. Virtualization’s focus on logical operating environments rather than physical ones makes applications, services, and instances of an operating system portable across different physical computer systems.

The classic example of virtualization that most people are already familiar with is virtual memory, which enables a computer system to appear to have more memory than is physically installed on that system. Virtual memory is a memory-management technique that enables an operating system to see and use noncontiguous segments of memory as a single, contiguous memory space. Virtual memory is traditionally implemented in an operating system by paging, which enables the operating system to use a file or dedicated portion of some storage device to save pages of memory that are not actively in use.

Known as a “paging file” or “swap space,” the system can quickly transfer pages of memory to and from this area as the operating system or running applications require access to the contents of those pages. Modern operating systems such as UNIX-like operating systems (including Linux, the *BSD operating systems, and Mac OS X) and Microsoft Windows all use some form of virtual memory to enable the operating system and applications to access more data than would fit into physical memory.
Taken from : William Von Hagen "Professional Xen Virtualization" 2008

Introduction to Virtualization Techniques

With server virtualization, you can create multiple virtual servers on a single physical server. Each virtual server has its own set of virtual hardware on which operating systems and applications are loaded. IBM systems with virtualization can prioritize system resources and allocate them dynamically to the virtual servers that need them most at any given time—all based on business priorities.

Virtualization was first introduced by IBM in the 1960s to allow the partitioning of large mainframe environments. IBM has continued to innovate around server virtualization and has extended it from the mainframe to the IBM Power Systems, IBM System p, and IBM System i™ product lines. In the industry-standard environment, VMware, Microsoft® Virtual Server, and Xen offerings are available for IBM System x and IBM BladeCenter systems. Today, IBM server virtualization technologies are at the forefront in helping businesses with consolidation, cost management, and business resiliency.

IBM recognized the importance of virtualization with the development of the System/360 Model 67 mainframe. The Model 67 virtualized all of the hardware interfaces through the Virtual Machine Monitor, or VMM. In the early days of computing, the operating system was called the supervisor. With the ability to run operating systems on other operating systems, the term hypervisor resulted (a term coined in the 1970s). Logical partitioning has been available on the mainframe since the 1980s. The Power team began taking advantage of the mainframe partitioning skills and knowledge about 10 years ago and brought forth Dynamic LPARs with POWER4™ and then Advanced POWER Virtualization with POWER5™ in 2004 (which was re-branded to PowerVM™ in 2008).

There are several types of virtualization.1 In this chapter, we describe them in order to position the relative strengths of each and relate them to the systems virtualization offerings from IBM and IBM Business Partners.

Source : IBM Systems Virtualization : System, Application, Software