by September 6, 2005 0 comments

The dictionary meaning of the word ‘virtual’ is ‘being such in essence or effect though not in actual fact’. How is that possible in an IT infrastructure you may ask? The infrastructure is definitely there, and users do access it. So how can it be virtual? The answer is simple. Present a logical view instead of a physical one, for any kind of computing device, be it your storage, server or your network. This makes the presentation simple for users and easier to administer for network administrators. In case of server virtualization, while a user might see separate servers for various applications, each running on different OSs, they may actually all be running from the same physical machine. It’s easy to visualize services running from the same machine, because any network OS today is capable of doing that. What sounds unbelievable is the ability to run multiple OSs from the same machine, with each of them running a different application. That in essence is what virtualization allows you to do. 

Server virtualization technology is primarily of use for enterprises, ISPs and software development houses. There is lots of software for doing server virtualization, which we’ve covered elsewhere in this story. Here we’ll concentrate on virtualization technology and what benefits can your business derive from it. 

Types of server virtualization
Virtualization, as a topic, is pretty broad in itself, but when it comes to server virtualization in particular, then there are two methods that are commonly followed. One is hardware emulation and the other is OS partitioning. In hardware emulation, there’s a base OS running on a server with a virtualization software. This software creates full emulation of the entire hardware for as many OSs as you want to run on it. The hardware includes everything right from the BIOS, to the hard drive, video card, networking and all other I/O devices. This capability allows you to install any OS you want to within this environment, while the underlying hardware remains the same. So hardware emulation abstracts the software from the hardware. 

In OS partitioning, you’re running multiple instances of the same OS as the base OS. So if you have Linux as the base OS, then OS partitioning will allow you to run multiple Linux kernels on the same machine. The advantage here is that unlike hardware emulation, the guest OSs (Linux kernels) in OS partitioning share the same hardware resources as the host. The virtualization software doesn’t create multiple instances of BIOS, hard drives and networking. It actually utilizes the hardware resources more effectively than the hardware partitioning approach. 

Benefits and limitations
As long as your organization had just a few servers, life was easy. You could run every application on a separate hardware server. But what happens when the number of servers increase to unmanageable limits, a problem typically known as server proliferation. One major problem is that of wasted capacity. It’s not possible that all servers will always run at 100% of their rated
capacity. In fact, chances are that they’ll not even run at a fraction of that most of the times. So their capacity and potential is being wasted most of the time. What if you could somehow make use of this potential? That’s where server virtualization comes to the rescue. Instead of investing in a new physical server for a new
application, you want to deploy, can you use one of the existing servers to deploy it using virtualization technology? You could also shift your existing applications from their physical servers into a single server using virtualization. This way, you’ll be
using the server more effectively. So extracting every bit of unused computing power from a server is one advantage of

While this may sound lucrative, there’s a flip side to it as well. How does running multiple servers on the same piece of hardware help? Isn’t it like putting all your eggs in one basket? If yes, then there’s tremendous risk in doing that because if the physical server crashes, it actually brings down multiple services. This scenario can’t be neglected and there are ways of taking care of it. Large enterprises typically deploy fail over clusters for their
mission-critical applications. The same can be done for virtualized environments as well. It does of course become trickier,
as setting up a fail over node for a server running multiple OSs is no bed of roses.

Another benefit of server virtualization is flexible resource allocation. In case you find that one of the servers in the virtual environment doesn’t need so many resources, you can take them away and reallocate to another server that really needs them. This could be RAM, storage space, network interface or a number of other things. All this can happen dynamically without bringing down the physical server. The challenge in this is to keep an eye on server resources. Suppose one of the applications hogs up too many resources, this could affect the performance of other applications. Therefore, proper server management is a must in server virtualization. You need to set up SNMP alerts to warn yourself every time any resource gets over-utilized. 

Moving on, agility is another benefit of virtualization. You can create multiple clones or backup copies of every OS that you 
nstall, so that if any OS gets corrupted, you can replace it with a fresh one. This kind of a virtualization approach is ideal for 
software developers who need multiple OSs for testing their programs on different platforms. 

The virtualization layer sits over the OS and lets you run
multiple virtual systems each with its own OS and applications

Plus, it gives the flexibility to quickly have any OS up and running within minutes for testing. You can even set up fail-over servers within the virtualized environment itself. The limitation here, of course, is that the more the number of virtual servers, the greater the resource requirements for the server. For instance, while reviewing a particular software called Webtrends, we were surprised to find the hardware recommendations that run it. The software requires a CPU with more than 3 GB of memory and
several hundred megs of hard drive space. One such application could really hog the resources on your server, so before going for virtualization, you need to find out the recommended hardware resources for the applications you intend to run on them. 

Then you need to ensure that the server specifications can handle such load. 

Reliability of your applications also increases with virtualization as you can create a fail over server on the same machine as the primary application. Since both applications are on the same machine, in case the primary application fails, fail over to the back up will be much faster. 

Better fault tolerance is yet another benefit of server virtualization. Instead of running multiple applications on the same OS, you’re running each one on its own OS. This leads to lesser software faults, and even if a fault occurs in an application, it doesn’t end up affecting other applications. This provides for better fault isolation. 

Migration of legacy applications also becomes easier. Your current server hardware has reached end of life, but your legacy application hasn’t. It needs to run on a new server, but on an older OS. Installing an older OS and a legacy application on a new piece
of powerful server hardware can become overkill. Instead of doing that put it in along with other applications using server

Learnings from an ISP: Server virtualization at Net4India 

Net4India uses several server virtualization techniques for its business. One of them is application-level virtualization, wherein it offers corporate e-mail solution using its custom built application BizMail+. This application is able to run up to 1000 mailboxes on one dual-Xeon server with 4 GB of memory. Using this, Net4India can combine up to 200 mailboxes and 
offer them as a solution to customers. While everything runs on a single server, the customer only sees a customized mailing 
solution complete with his company’s colors, logo, etc. The virtualization technology keeps each customer’s mailbox 
separate from others. All servers are kept in a failover cluster for failsafe operation, due to which the customer never knows if a server to go down due to this. All virtualized environments are constantly monitored for server resource utilization to prevent any instance from hogging all server resources. 

Net4India also does OS-level virtualization for its Linux-based Web hosting services. For this, the company uses RedHat Linux with a virtualization component. This component allows the ISP to create multiple Linux kernels on top of a single Linux server. Each kernel can then be offered to a customer. Once again, the customer sees a full-fledged Linux server running, while actually it’s a virtual server running at the backend. 

One interesting fact that emerged from our discussions with Net4India was that using virtualization technology, ISPs are able to offer services at very competitive rates. It’s because they no longer have to put up dedicated physical servers for each customer, saving on the hardware costs. So the next time your ISP offers you a dedicated server at a very attractive price, check whether it’s a dedicated physical server being offered or a
virtual one.

With inputs from Jasjit Sawhney, CEO and Desi Valli, Net4India

No Comments so far

Jump into a conversation

No Comments Yet!

You can be the one to start a conversation.