Let’s begin with a simple definition of Virtualization from
Wikipedia: "Virtualization" is a term that refers to the
abstraction of computer resources. That is concise enough to
begin this discussion. Virtualization can be applied to many
types of computer resources: Storage, Network, and Compute (CPU
/ Memory etc.) We will concentrate on server virtualization for
the purposes of this article. There are several approaches to
virtualizing servers, including GRID approaches (where discrete
workloads are distributed among multiple physical servers, and
the results eventually collected), OS –level virtualization
(sometimes called containers where multiple instances of an
application can run in isolation from one another on a single OS
instance, and hypervisor-based virtualization (which currently
appears the most widespread.) Within hypervisor virtualization
there are several sub-approaches to achieve the same goal; to
run multiple workloads (defined here as Operating Systems, such
as Windows or Linux along with