Virtualization can be used for many technology areas. Some examples are, network virtualization, microprocessor virtualization, file virtualization and storage virtualization. Virtualization can be utilized in following ways,
1. Multiple logical representation of a single resource
• In this pattern, multiple logical resources will point to a single physical resource. This technique is used for Virtual Machines (VM). Software products such as VMWare, Microsoft Virtual Server and Xen are examples of VMs. The process of creating VMs is also known as Platform Virtualization. The advantage of this method is the resource will appear isolated, even though it is physically shared among other users. This will allow a reduction of physical hardware requirements.
2. Single logical representation of multiple resources
• In this pattern, multiple physical resources are represented in a single logical resource. Storage virtualization is an example of this method. In storage virtualization, data can be replicated easily. Since all the disks are managed from a single point, it will give easier management and scalability options. Even the virtual disk sizes can be increased or decreased according to organizational needs. Another common area of this pattern is server clustering. This type of aggregation, spanning or concentration of resources is also known as Resource Virtualization.
3. Single logical representation among multiple resources
• In this method, a single logical resource will be mapped to a single physical resource. The physical resource will be selected from an available pool or resources based on a predefined criteria. An example is virtual load balancers.
4. Single logical representation of a single resource
• This pattern is similar to the above. However, instead selecting a physical resource, the logical resource always maps to a given resource. This will help to preserve the original functionality of the back-end application.
5. Composite or layered virtualization
• This is a combination of two or more of the previous patterns. Processes are grouped as layers and each layer functions as an interface for upper layers. As a result, upper layers will get more complex and advanced functionality. An example for this is information virtualization, where advanced virtualization is generated via existing IT infrastructure.