The greatest challenge to any thinker is stating the problem in a way that will allow a solution

Bertrand Russell

By

On 22 Jun 2011

Basic / Introductionary

Tags: ,


All servers have one purpose, to serve.

To facilitate this, one or more applications or services need to run, and it is these applications or services, that provide the server’s function to its clients. These are utterly dependant on physical resources in order to be able deliver, but its the applications/services and their configuration or data, that distinguish one server from another.

Physical Servers

All standard physical servers contain the same layers of components…

  • The Hardware provides the physical resources to be used.
  • Running on this the Basic Input/Output System (BIOS) provides an interface to the hardware.
  • Device Drivers then provide common standard interfaces into the hardware,
  • which allows the server’s Operating System to run on the server.
  • Finally, through the layers of abstraction that the Operating System and the layers below provide, the Application(s) (or Services) are able to run without any specific requirement or knowledge of the hardware it’s ultimately running on.

Phsyical Server Layer

Virtual Servers

Virtual servers must provide the same service to their clients, and so run the same Applications as their physical counterparts. For this to be achieved easily, they need the same Operating System on which to run on, so that the software’s interfaces to the system’s hardware resources its designed for, are identical in either physical or virtual scenarios.

So, despite being run on a Virtual server, an application still needs access to physical resources (CPU, Memory, Disk, etc), which are provided by server Hardware.  Therefore a Virtual server contains the same layers as a standard Physical server, however to enable the virtualisation, an extra layer of magic is required…

The Magic of Virtualisation

In order to virtualise a Physical server, its resources need to be shared so that more than one Virtual Servers (also known as Virtual Machines) can run on it. This divvying up of resources is done by the VMkernel, balancing up the requests of the Virtual Machines (VM’s) it’s serving, which runs directly on top of the Hardware’s BIOS.

Each Virtual Machine starts with a virtual BIOS, which to the layers above appears as any normal BIOS would that runs directly on a piece of hardware. It’s nothing more than a standard version Phoenix BIOS, altered by VMware to run on the VM Kernel instead of physical hardware.

As with a Physical server, on top of the BIOS runs the Device Drivers, which provide a common interface for the Operating System to utilise the systems resources.  The Drivers are common device manufacturer’s drivers which are, for example, installed automatically by a Windows2003 install. However, for performance reasons, a few of Drivers have VMware modified versions which can be installed once the guest OS is up and running.

At the Operating System layer any signs of the virtualisation below are non-existent; the common interfaces provided by the drivers to the OS means that its runs exactly as it would on a Physical server.  Therefore Application(s) running on the OS are oblivious to any differences in the way physical resources below are being managed.

Virtual Server Layers

VMkernel

The VMkernel is a lightweight layer of software (reportedly about 200k lines of code, at least in ESX3 anyway) written especially for the task of managing the demands of VM’s on the physical hardware below. As it sits directly on the hardware’s BIOS, without manufacturer’s drivers in-between, the VMK has to be designed for every variety of hardware it runs on, and so runs on a restrictive list of manufacturer’s kit.

Often refereed to as a ‘bare-metal’ architecture, the VMkernel has direct control of all the hardware it’s running on. It also has no user interface, any configuration changes have to be done via a separate management console. Therefore the VMK’s lack of complexity, and focus on only the job in hand, should mean an efficient use of the hardware’s performance


Leave a Reply

XHTML: You can use these tags if you know what they are: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

ERROR: si-captcha.php plugin says GD image support not detected in PHP!

Contact your web host and ask them why GD image support is not enabled for PHP.

ERROR: si-captcha.php plugin says imagepng function not detected in PHP!

Contact your web host and ask them why imagepng function is not enabled for PHP.