Virtualization is a technique in which the user required services run remotely in a ubiquitous environment which gives scalable resources. Virtualization is being used in cloud computing for load balancing and aggregation of cloud resources. Virtualization provides higher hardware utilization. It is also being used for partitioning of computational resources and hence supports sharing of resources. Virtualization has different types such as Native virtualization, Full virtualization, Operating system level virtualization and Para virtualization. Other than these there is Resources virtualization, Desktop virtualization, Server virtualization, Data centres virtualization and application virtualization. The resources virtualization is implemented in different forms such as the Full virtualization, Native virtualization, Para virtualization, Operating system (OS) layer virtualization or Hosted virtualization. Virtual machines and Virtual machine monitors (VMMs) have been developed to offer better energy efficient solutions to the virtualization problems. Virtualization tools like OpenVz, Xen, VmWare etc. are widely used in the computing industry.