Virtualization – another term like Cloud computing, that we hear in recent past and I want to put down some interesting details about it. This can be considered as a scaled down version of cloud computing, lets see the details
Let’s take a scenario – I am running a small IT firm with 10 employees and I need to buy infrastructure for running the firm. I need to buy server, 10 desktops, software (all licensed), hire administrators to maintain servers etc. If I decide to hire more employees, I have to buy more desktops for their needs and spend more money and this becomes a cumbersome process for me. Instead of buying 10 desktops with high configurations, I thought of investing in one high end machine (lots of CPU, RAM and space) and create 10 virtual desktops for each employee. In this approach, it is very easy to allocate one more virtual environment as I hire more and more employees. Hope you understood the very basic concept of virtualization and its benefits. Now let’s take a deep dive into the topic (more details in server virtualization)
Due to mobile computing and other applications, the Servers need to be very powerful with CPU and multiple processors to run complex tasks. Network administrators dedicate each server to a specific application or task (DB, Web, and Network etc) since many of these tasks will not comply with others and it becomes a difficult task to manage them.
Though servers are dedicated for each application, they may not be utilized to its capability with regards to processing power and storage. Also servers will take lot of physical space, generates heat and data center becomes crowded with racks. Virtualization can address these issues since physical servers are converted to multiple virtual machines. This is not a new concept since this approach was done in Super computer decades ago and in last few years this became feasible for servers.
There are different types of virtualization – Hardware, Desktop, Software, Memory, Storage, Data and Network. I am more interested in Hardware, Software and Desktop virtualization and will talk about it more.
Hardware (Server Virtualization) – Also known as platform virtualization refers to the creation of virtual machine that acts like a real computer with an operating system. Software executed on these virtual machines is separated from underlying hardware resources. A computer running in Microsoft Windows may host a virtual machine which looks like computer with Linux OS. There are 2 parties in this virtualization
Host Machine – Physical server in which the virtualization takes place; Software or firmware that creates a virtual machine on the host hardware is called Hypervisor / Virtual Machine Monitor
Guest Machine – Virtual machine and they behave like physical machines and does not need much processing power or storage.
This virtualization can be created in 3 ways
Full virtualization – Uses special kind of software called Hypervisor and this interacts directly with the physical server’s CPU and disk space. It serves as a platform for the virtual server’s OS and also keeps each virtual server completely independent and unaware of other virtual machines. Also each virtual machine runs in its own OS and that means one can run in Windows and other in Linux.
Hypervisor monitors physical server’s resources and relays it to the appropriate virtual server as the virtual machine runs applications. It takes some resources to do this action and it might affect the overall performance of the server as the number of virtual machines and applications grow. This method is commonly opted by most of the organizations since servers can run on different OS and also more support is available.
Para-virtualization – This is similar to full virtualization, but the Guest is aware of other virtual machines. The same Hypervisor software is used, but does not need much resource to manage guest OS since each guest is already aware of demands of other OS placing on the physical server. Administrators can choose this method if the servers are running in different OS, but this technique is relatively new and only few companies offer the software.
OS Level virtualization – This is again similar to full virtualization. This does not need Hypervisor software, but the virtualization is part of the host OS which performs all functions (same way it is done in full virtualization). All guest servers must run on the same OS and each remains independent of others. Organizations can prefer this approach if all physical servers run on the same OS since it’s faster and more efficient than other methods.
· Redundancy without purchasing additional hardware
· Safety – if one server fails, another server running same application can replace it
· Offer isolated, independent systems in which programmers can test new applications or OS.
· Environment friendly – conserve space, storage and less heat will be generated by server.
· Migration - With the help of Third party hardware and software, virtual servers can be moved from one network to other.
· Network administrators should study the network architecture and needs before attempting a solution
· Virtualization cannot be implemented in servers which has heavy load (high demand of processing power) since the server’s CPU is divided among virtual servers. Server may become very slow also might crash as the demand of applications increase in virtual machines.
· It is not a good idea to create too many virtual servers in one physical server since it will create overload. Also processing power and storage allocated to each server will be divided and virtual server may not satisfy the business need.
· Migration is another big challenge since its possible to migrate one virtual to another if both use same manufacturer’s processor due to technology limitations.
More and more organizations are opted this technology in recent past. Virtualization products are offered by major companies like Microsoft (VMWare), IBM (Blade), and Symantec etc.
In my next article, I am gonna write about Cloud computing vs. Virtualization