Virtualization is an act of creating virtual rather than actual version of something, including (but not limited to) a computer hardware platform, operating system(OS), storage device, or network resources.
The term virtualization kept on broadening since its inception during 1960s as a way of logically dividing the computer resources(CPU, Memory, Storage) provided by the Mainframe computers between different applications.
Depending on the context, virtualization refers to different things but its meaning remains general. Virtualization is the method of increasing the effective utilization of computer resources by sharing them across many applications. In virtualization, a number of applications access a resource simultaneously and are switched continuously to provide judicious service to all the applications. In fact, every OS does this to effectively utilize the CPU. We’re just broadening the concept to much larger environments.
Depending on what we virtualize, the virtualization can be classified as:
- Hardware Virtualization
- Network I/O Virtualization
- Storage Virtualization
- Application Virtualization
- Desktop Virtualization
- Memory Virtualization
- Data Virtualization
- Database Virtualization
We’ll discuss each one of the above topics during the days to come. For now, try to understand the general concept of virtualization.
Virtualization is abstraction.
This is fundamental in all virtualization implementations. Virtualization abstracts away the underlying implementation by hiding the details and providing a well-defined interface to other applications to interact. Abstraction enables hardware and environment independence by providing a consistent interface to applications.
Virtualization is aggregation.
This aspect is prevalent in storage virtualization wherein multiple storage devices are aggregated to form a logical pool. Then by the process of abstracting a uniform, logical storage space is provided to the users. Aggregation enables the data to be stored and used independent of the location of it in the storage pool. The partitions you create are nothing but logical hard disks realized by the aggregation of several physical hard disks underneath.
Virtualization is software.
Virtualization is realized in software by abstracting the details of a specific technology. This software called the hypervisor often requires hardware support to provide advanced functionality.
Virtualization is cloning.
This is the inverse of aggregation concept in the sense multiple logical resources are realized from a single physical resource to give the illusion of more resources than are available. This is realized in software by creating a virtual(almost identical in every respect) version of something. Intelligent address mapping and multiplexing allow seamless and simultaneous usage of resources.
Virtualization is illusion.
As long as you have the interface unchanged and the switching is within the boundary of real-time, everything will be seamless. Using this idea, we can create the illusion of more memory, CPU, storage and network resources than are physically available. Going further, we can run multiple OSes alongside each other as if they’re on independent hardware.
Virtualization is isolation.
Another way of looking at virtualization is the creation of self-contained sandboxes, completely isolated from the rest of the computing environment. This is especially useful when trying a new technology or testing a potentially vulnerable application. By creating an application and its execution environment inside a container we can have a not-to-worry space to explore and hack.
Virtualization is consolidation.
By migrating the physical servers over to virtual machines we can consolidate them onto a far fewer physical servers. That means less no. of physical servers, less networking gear, less no. of physical racks — all of which translates into less data center floor space required. That can further save the money if the data center is not owned and instead make use of a co-location facility.
Virtualization is green.
This follows from the previous point which is, consolidating the servers by virtualizing them onto a fewer physical servers means lowering monthly power and cooling costs in the data center. Thereby dramatically reducing its energy footprint.
Virtualization is cloud.
Yeah the “big byte”. Cloud is the mantra in IT now. The good news is that by virtualizing your servers and abstracting away the underlying hardware, you’re preparing yourself for a move into the cloud. The first step maybe to move from a simple virtualized data center to a private cloud. But as the public cloud matures(it already has!), and technology around it advances and you become more comfortable with the thought of moving data out of your data center and into a cloud hosting facility, you’ll have a head start in getting there. The journey along the way will have better prepared you and the organization.
Virtualization is fun.
Imagine toying with lots of Linux VMs, networking the VMs without any cable, provisioning and deploying servers in minutes, taking snapshots when you’re experimenting a new feature, creating virtual pentesting lab, cloning and transferring VMs between servers and have increased uptime. All these things and many many more give you more adrenaline rush than any thing you’ve ever experienced.