Cloud computing is used to utilize the shared resources to a maximum possible extent. These resources are shared by more than one user at a time as per their need. This improves computing power for using various applications at various places with additional advantage of cost saving on storage space and electricity consumption. Virtualization is one of the important technologies of cloud computing, which directs to act virtually instead of actually doing something. Through virtualization software, sharing of the system resources is done across multiple environments. This paper mainly focuses on introduction to virtualization, advantages & disadvantages of virtualization and types of virtualization like: server, desktop, application, programming language, storage, network virtualization etc.