An Overview of Virtualization Techniques