03
Sep

Optimizing Resources with Server Virtualization

Moore’s Law describes a long-term trend in the history of computing hardware, in which the number of transistors that can be placed inexpensively on an integrated circuit has doubled approximately every two years. In other words, Computing power of most of the systems have dramatically improved over the years. Some have CPUs with multiple processors that give these servers the ability to run complex applications with ease. System administrators usually dedicate each server to a specific application. Many of these applications don’t play well with others thereby justifying a dedicated machine for each application. One application per server also makes it easier to track down problems as they arise.

There are a few problems with this approach, though. One is that it doesn’t take complete advantage of modern server’s processing power. Most servers use only a small fraction of their overall processing capabilities. Another problem is that as a computer network gets larger and more complex, the servers begin to take up a lot of physical space. A data center might become overcrowded with racks of servers consuming a lot of power and generating heat. Last but not the least, dedicating individual machines for each application certainly increases the infrastructure and hardware costs of any organization.

Server virtualization attempts to address all of the above issues. By using specially designed software, an administrator can convert one physical server into multiple virtual machines. Each virtual server acts like a unique physical device, capable of running its own operating system (OS).

There are three ways to create virtual servers: full virtualization, para-virtualization and OS-level virtualization. They all share a few common traits. The physical server is called the host. The virtual servers are called guests. The virtual servers behave like physical machines. Each system uses a different approach to allocate physical server resources to virtual server needs.

Full virtualization uses a special kind of software called a hypervisor. The hypervisor interacts directly with the physical server’s CPU and disk space. It serves as a platform for the virtual servers’ operating systems. The hypervisor keeps each virtual server completely independent and unaware of the other virtual servers running on the physical machine. Each guest server runs on its own OS. You can even have one guest running on Linux and another on Windows. The hypervisor monitors the physical server’s resources. As virtual servers run applications, the hypervisor relays resources from the physical machine to the appropriate virtual server. Hypervisors have their own processing needs, which means that the physical server must reserve some processing power and resources to run the hypervisor application. This can impact overall server performance and slow down applications. VMware and Microsoft Virtual Server both use the full virtualization model.

The para-virtualization approach is a little different. Unlike the full virtualization technique, the guest servers in a para-virtualization system are aware of one another. A para-virtualization hypervisor doesn’t need as much processing power to manage the guest operating systems, because each OS is already aware of the demands the other operating systems are placing on the physical server. The entire system works together as a cohesive unit. Xen and UML both use the para-virtualization model.

An OS-level virtualization approach doesn’t use a hypervisor at all. Instead, the virtualization capability is part of the host OS, which performs all the functions of a fully virtualized hypervisor. The biggest limitation of this approach is that all the guest servers must run the same OS. Each virtual server remains independent from all the others, but you can’t mix and match operating systems among them. Because all the guest operating systems must be the same, this is called a homogeneous environment.Virtuozzo and Solaris Zones both use OS-level virtualization.

Moore’s Law describes a long-term trend in the history of computing hardware, in which the number of transistors that can be placed inexpensively on an integrated circuit has doubled approximately every two years. In other words, Computing power of most of the systems have dramatically improved over the years. Some have CPUs with multiple processors that give these servers the ability to run complex applications with ease. System administrators usually dedicate each server to a specific application. Many of these applications don’t play well with others thereby justifying a dedicated machine for each application. One application per server also makes it easier to track down problems as they arise.

There are a few problems with this approach, though. One is that it doesn’t take complete advantage of modern server’s processing power. Most servers use only a small fraction of their overall processing capabilities. Another problem is that as a computer network gets larger and more complex, the servers begin to take up a lot of physical space. A data center might become overcrowded with racks of servers consuming a lot of power and generating heat. Last but not the least, dedicating individual machines for each application certainly increases the infrastructure and hardware costs of any organization.

Server virtualization attempts to address all of the above issues. By using specially designed software, an administrator can convert one physical server into multiple virtual machines. Each virtual server acts like a unique physical device, capable of running its own operating system (OS).

There are three ways to create virtual servers: full virtualization, para-virtualization and OS-level virtualization. They all share a few common traits. The physical server is called the host. The virtual servers are called guests. The virtual servers behave like physical machines. Each system uses a different approach to allocate physical server resources to virtual server needs.

Full virtualization uses a special kind of software called a hypervisor. The hypervisor interacts directly with the physical server’s CPU and disk space. It serves as a platform for the virtual servers’ operating systems. The hypervisor keeps each virtual server completely independent and unaware of the other virtual servers running on the physical machine. Each guest server runs on its own OS. You can even have one guest running on Linux and another on Windows. The hypervisor monitors the physical server’s resources. As virtual servers run applications, the hypervisor relays resources from the physical machine to the appropriate virtual server. Hypervisors have their own processing needs, which means that the physical server must reserve some processing power and resources to run the hypervisor application. This can impact overall server performance and slow down applications. VMware and Microsoft Virtual Server both use the full virtualization model.

The para-virtualization approach is a little different. Unlike the full virtualization technique, the guest servers in a para-virtualization system are aware of one another. A para-virtualization hypervisor doesn’t need as much processing power to manage the guest operating systems, because each OS is already aware of the demands the other operating systems are placing on the physical server. The entire system works together as a cohesive unit. Xen and UML both use the para-virtualization model.

An OS-level virtualization approach doesn’t use a hypervisor at all. Instead, the virtualization capability is part of the host OS, which performs all the functions of a fully virtualized hypervisor. The biggest limitation of this approach is that all the guest servers must run the same OS. Each virtual server remains independent from all the others, but you can’t mix and match operating systems among them. Because all the guest operating systems must be the same, this is called a homogeneous environment.Virtuozzo and Solaris Zones both use OS-level virtualization.

Share this Post:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
  • Yahoo! Buzz
  • YahooMyWeb
free blog themes

2 Responses to “Optimizing Resources with Server Virtualization”

  1. Gautam Sarnaik Says:

    Hi Kaizar,
    Great blog. Liked your posts. Please keep it up.

    Regards virtualization I found few concepts from Sun Microsystems worth reading about – DSD and Dynamic Reconfigurations which works at a hardware level and supports Solaris Zones and Containers in the OS level as you have mentioned.
    Second is the Logical Domains (LDOM) concept which is specific to the T-series servers from Sun – I think this typically suits medium scale enterprises with limited performance and scalability requirements.
    We assessed some of this recently for a large company in Kuwait while developing their IT Architecture.

    Details of the Sun technologies are available at the Sun website and very interesting to read. Also I got some presentations off the net on how the technology works if you are interested.

    Hope this information is of interest.
    Best regards
    Gautam

  2. kaizar Says:

    Hi Gautam,

    A blog article from Albert Leigh gives a pretty good summary of some of the concepts you are highlighting. Its dated in 2007, but the concepts still hold true:
    http://blogs.sun.com/sunabl/entry/summary_of_sun_virtualization_technologies

Leave a Reply