Virtualization is the creation of a virtual—or separated—computing environment. The concept came into play in the 1960s as a means for dividing system resources of mainframe computers. Today’s virtualization technology relies on a hypervisor to create an abstraction layer which separates, or partitions, the operating system from the hardware so that multiple operating system (OS) instances can run concurrently on a single machine without tying up resources.
To alleviate read-write inconsistencies, the hypervisor caches any changes the user or system makes to the virtual hardware or disk and allows those changes to be written to the OS at a later time. The virtual image mimics an actual environment and is seamless to users. Virtualization also allows for an OS of one physical machine to be moved to another in situations where a problem arises or if there is a need for expansion.
Today, three main categories of virtualization exist:
- Network: Combines available resources in a network by splitting up available bandwidth into independent channels which can be assigned or reassigned in real time. Network virtualization can disguise a network’s complexity through automation, and can be managed from a single administrative console.
- Server: Divides the number and identity of individual physical servers, processors, and operating systems into multiple, smaller servers so that data center resources are not wasted. Server virtualization also allows for elasticity as resource needs grow.
- Storage: Pools physical storage from multiple network storage devices into what looks like a single storage device. Storage virtualization is usually used in a SAN (storage area network) and enables network-independent management of storage by abstracting and covering the internal functions of a storage device from the host. It provides for better storage management, utilization, and availability.
Virtualization is an effective way to reduce costs while boosting efficiency, flexibility, scalability, and agility. Some of the other benefits of virtualization include the minimization of downtime and enablement of high availability. It helps in situations of business continuity and disaster recovery, enables centralized management, provides a testing environment for new applications or software, and can even support legacy applications without constraining the entire system.