Virtual server

From Citizendium
Revision as of 23:29, 6 August 2010 by imported>Young Sang Baek (→‎Technology)
Jump to navigation Jump to search
All unapproved Citizendium articles may contain errors of fact, bias, grammar etc. A version of an article is unapproved unless it is marked as citable with a dedicated green template at the top of the page, as in this version of the 'Biology' article. Citable articles are intended to be of reasonably high quality. The participants in the Citizendium project make no representations about the reliability of Citizendium articles or, generally, their suitability for any purpose.

Nuvola apps kbounce green.png
Nuvola apps kbounce green.png
This article is currently being developed as part of an Eduzendium student project. The course homepage can be found at CZ:Special_Topics_2010.
To provide students with experience in collaboration, you are warmly invited to join in here, or to leave comments on the discussion page. The anticipated date of course completion is 13 August 2010. One month after that date at the latest, this notice shall be removed.
Besides, many other Citizendium articles welcome your collaboration!


This article is a stub and thus not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

A virtual server is a virtual machine (VM) that is running on top of a physical server. The physical server containing the virtual server is commonly called the host whereas each virtual server contained in the host is referred to as a guest. A virtual server is created through hardware virtualization.

Virtual servers are isolated in their own virtual environment allowing multiple instances to be hosted simultaneously on a single server. Guests on the server can run different applications or tasks, on different operating systems, independently from one another. From example, one virtual server can run as a chat server, another as an FTP server, and another as database server, all of which can run concurrently on a single physical machine. To ensure independence and consistency, the physical server utilizes a hypervisor whose role is to monitor the states of each guest. To server users, this appears as if each virtual server is a unique physical device thus maximizing the resources and processing-power of a single physical server. Downtime during server maintenance is also minimized since virtual servers can easily be transferred or migrated from one physical server to another given that both servers are running on the same processor manufacturers.

History

Technology

Virtual servers are computers which run in a virtualized environment knowingly or unknowingly. Virtualized environment is created by abstracting hardware level from the operating systems (OS). This level of abstraction occurs by implementing a thin layer of software between the physical hardware of the computers and the operating system on top of it.

Operating systems that are running in a virtualized environment is commonly called Guest OSs and the OS which provides the bases of virtualized environment is called an Host OS.

Hypervisor

Hypervisor also known as Virtual Machine Monitor (VMM) is the software which provides the thin layer of abstracted hardware to the guest operating systems. In most circumstances, guest OSs communicates with the hypervisor layer which translates guest OSs instructions to hardware instructions which operates the physical server.

Hypervisor - Type 1

There are two types of hypervisors.

  • Type 1 - Bare metal: Hypervisors which runs directly on top of the hardware. Type 1 hypervisors usually built on top of micro-kernel which controls both the hardware and the guest OSs. Examples are Xen Hypervisor, VMware GSX, Microsoft Hyper-V.
Hypervisor - Type 2
  • Type 2 - Hosted: Hypervisors running on top of a host OS. Host OS controls the hardware and the hypervisor layer sits on top of the hosted OS which guest OSs running as processes within the host OS. Examples are Virtual PC, VMware Workstation, VirtualBox, Parallels Desktop for Mac.


Virtualization Categories

There are currently three virtualization techniques, each with their advantages and disadvantages.

Full virtualization

Full virtualization is an environment where the hypervisor emulates all underlying hardware specification. This includes CPU management, memory management, I/O processes and peripherals. In x86 processor environment, full virtualization is accomplished by using software emulation called binary translation. Binary translation involves the hypervisor receives the CPU instructions from the guest OS then forwards it to the hardware CPU. Currently in the x86 domain, VMware champions in the way of binary translation and offers multiple platforms for full virtualization environments.

  • Advantages - Being a full software implementation of visualization the biggest advantage is the guest OS does not need to be "hypervisor" aware. This means the guest OS does not have to be modified in order by be supported. Any x86 architecture OSs, including Windows 2000, XP, Linux can be virtualized without modifications. Additionally, fully virtualized environment are more portable and can be easily migrated between machines regardless of the underlying hardware structure.
  • Disadvantages - Due to being a software only implementation, certain CPU instructions such as interrupts are inherently more difficult to process and slower in performance.

Paravirtualization

Paravirtualization involves modifying the OS kernel of the guest OSs to make the guset OS "hypervisor aware". This technique allows guest OSs to make non-virtualizable instructions with special hypercall instructions which communications directly with the virtualization layer hypervisor. Paravirtualization has been around since the inception of virtual servers, in the current x86 domain, Xen Hypervisor, by open source XenSource (now own by Citrix) is a dominant player.

  • Advantages - Paravirtualization replaces non-virtualizable instructions with hypercall instructions which communicates with the underlying hypervisor. This enables fast translations between hypervisor and the guest OSs. By leveraging guest access to some of the underlying hardware, less it is required to perform a software emulation.
  • Disadvantages - The biggest disadvantage of paravirtualization is, the guest OS must be modified to be "hypervisor aware". This requires modifications of the kernel and other "deep" parts of the OS. Modifications to these parts of the OSs are not easy, if not impossible (in cases of Windows 2000, XP). Even with modified OS, the challenge is the ensure its compatibility with the environment which it will be used and ensuring ongoing tests and trials to ensure future compatibilities. Another disadvantages is since some of the underlying hardware is directly visible to the guest OSs, it is not as portable as the full virtualization technique. If the underlying hardware of the destination system differs vastly from the source hardware, the OS might not be able to be transported to the new hardware.

Hardware Assisted

Few links for technology section. http://en.wikipedia.org/wiki/Hypervisor
http://www.xen.org/products/xenhyp.html
http://learn.iis.net/page.aspx/118/shared-hosting-configuration#envarch
http://www.youtube.com/watch?v=1YtRukUeg04

Economics