Tuesday, December 2, 2008

Virtual Machine versus Computer Cluster

Virtual machine is a machine that does not exist physically but from the perspective of the one who use it, this machine is the real one. How can we do that? There is a technology so called virtualization that allows in one machine to be installed more than one operating system. You can find how to do this from the other posting. What I want to write here is the background of virtualization. Why do we need virtual machine? See, every computer include a server, most of their time they will be in idle state, let's say only 10% of the cpu capability they are using except for cpu intensive application. To increase that utilization of cpu we make a virtual machine on a real machine, for instance in one machine we can make four virtual machine. If it is linear we can say the number of utilization of cpu became 40%.

In the other hand, for a program such cpu intensive application, we cannot buy such machine that has very powerful processor/machine. Rather than buying a new one which is so expensive we can use the old machine to overcome that problem. How? We can make four old machine as a cluster, from the perspective of the user they see that this is one machine which is very strong. How to do that, see in the other posting in this blog.

The point is that the background of the two things is antipodes. So how can we make virtual cluster? What is the background of it?

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