What is Virtualization

Virtualization

You probably know a little about virtualization if you have ever divided your hard drive into different partitions. A partition is the logical division of a hard disk drive to create, in effect, two separate hard drives.
Operating system virtualization is the use of software to allow a piece of hardware to run multiple operating system images at the same time
There are three areas of IT where virtualization is making head roads, network virtualization, storage virtualization and server virtualization:

  • Network virtualization is a method of combining the available resources in a network by splitting up the available bandwidth into channels, each of which is independent from the others, and each of which can be assigned (or reassigned) to a particular server or device in real time. The idea is that virtualization disguises the true complexity of the network by separating it into manageable parts; much like your partitioned hard drive makes it easier to manage your files.
  • Storage virtualization is the pooling of physical storage from multiple network storage devices into what appears to be a single storage device that is managed from a central console. Storage virtualization is commonly used in storage area networks
  • Server virtualization is the masking of server resources (including the number and identity of individual physical servers, processors, and operating systems) from server users. The intention is to spare the user from having to understand and manage complicated details of server resources while increasing resource sharing and utilization and maintaining the capacity to expand later.

Why Virtualization:

Following are some (possibly overlapping) representative reasons for and benefits of virtualization:

  • Virtual machines can be used to consolidate the workloads of several under-utilized servers to fewer machines, perhaps a single machine (server consolidation). Related benefits (perceived or real, but often cited by vendors) are savings on hardware, environmental costs, management, and administration of the server infrastructure.
  • The need to run legacy applications is served well by virtual machines. A legacy application might simply not run on newer hardware and/or operating systems. Even if it does, if may under-utilize the server, so as above, it makes sense to consolidate several applications. This may be difficult without virtualization as such applications are usually not written to co-exist within a single execution environment.
  • Virtual machines can be used to provide secure, isolated sandboxes for running untrusted applications. You could even create such an execution environment dynamically – on the fly – as you download something from the Internet and run it.
  • Virtual machines can be used to create operating systems, or execution environments with resource limits, and given the right schedulers, resource guarantees.
  • Virtual machines can be used to run multiple operating systems simultaneously: different versions, or even entirely different systems, which can be on hot standby. Some such systems may be hard or impossible to run on newer real hardware.
  • Virtual machines allow for powerful debugging and performance monitoring. You can put such tools in the virtual machine monitor, for example. Operating systems can be debugged without losing productivity, or setting up more complicated debugging scenarios.
  • Virtual machines can isolate what they run, so they provide fault and error containment. You can inject faults proactively into software to study its subsequent behavior.
  • Virtual machines make software easier to migrate, thus aiding application and system mobility.
  • You can treat application suites as appliances by “packaging” and running each in a virtual machine.
  • Virtual machines are great tools for research and academic experiments. Since they provide isolation, they are safer to work with. They encapsulate the entire state of a running system: you can save the state, examine it, modify it, reload it, and so on. The state also provides an abstraction of the workload being run.
  • Virtualization can enable existing operating systems to run on shared memory multiprocessors.
  • Virtual machines can be used to create arbitrary test scenarios, and can lead to some very imaginative, effective quality assurance.
  • Virtualization can be used to retrofit new features in existing operating systems without “too much” work.
  • Virtualization can make tasks such as system migration, backup, and recovery easier and more manageable.
  • Many of the above benefits make such hosting secure, cost-effective, and appealing in general.