Virtualization is the ability to run multiple operating systems simultaneously on a single computer system and share the underlying hardware resources. Cloud computing is defined as a pool of virtualized computer resources. Based on this virtualization, the Cloud computing paradigm allows workloads to be deployed and scaled-out quickly through the rapid provisioning of virtual machines. The Cloud virtual infrastructure provides layers of abstraction between computing, storage, network and applications running on it. This study investigates the types of virtualization and the virtualization techniques in current layered Cloud architecture. Three major server virtualization types, full virtualization, paravirtualization and hardware-assisted virtualization, are compared.