While not a new concept virtualization has hit the main stream over the last few years and become a uncontrollable buzz word driven by VMware, and other server virtualization platforms. Virtualization has been around in many forms for much longer than some realizes, things like Logical partitions (LPAR) on IBM Mainframes have been around since the 80’s and have been extended to other non-mainframe platforms. Networks have been virtualized by creating VLANs for years. The virtualization term now gets used for all sorts of things in the data center. like it or love the term doesn’t look like it’s going away anytime soon.
Virtualization in all of its forms is a pillar of Cloud Computing especially in the private/internal cloud architecture. To define it loosely for the purpose of this discussion let’s use ‘The ability to divide a single hardware device or infrastructure into separate logical components.
Virtualization is key to building cloud based architectures because it allows greater flexibility and utilization of the underlying equipment. Rather than requiring separate physical equipment for each ‘Tenant’ multiple tenants can be separated logically on a single underlying infrastructure. This concept is also known as ‘multi-tenancy.’ Depending on the infrastructure being designed a tenant can be an individual application, internal team/department, or external customer. There are three areas to focus on when discussing a migration to cloud computing, servers, network, and storage.
Within the x86 server platform (typically the Windows/Linux environment.) VMware is the current server virtualization leader. Many competitors exist such as Microsoft’s HyperV and Zen for Linux, and they are continually gaining market share. The most common server virtualization allows a single physical server to be divided into logical subsets by creating virtual hardware, this virtual hardware can then have an Operating System and application suite installed and will operate as if it were an independent server. Server virtualization comes in two major flavors, Bare metal virtualization and OS based virtualization.
Bare metal virtualization means that a lightweight virtualization capable operating system is installed directly on the server hardware and provides the functionality to create Virtual Servers. OS based virtualization operates as an application or service within an OS such as Microsoft Windows that provides the ability to create virtual servers. While both methods are commonly used Bare Metal virtualization is typically preferred for production use due to the reduced overhead involved.
Server virtualization provides many benefits but the key benefits to cloud environments are: increased server utilization, and operational flexibility. Increased utilization means that less hardware is required to perform the same computing tasks which reduces overall cost. The increased flexibility of virtual environments is key to cloud architectures. When a new application needs to be brought online it can be done without procuring new hardware, and equally as important when an application is decommissioned the physical resources are automatically available for use without server repurposing. Physical servers can be added seamlessly when capacity requirements increase.
Network virtualization comes in many forms. VLANs, LSANs, VSANs allow a single physical LAN or SAN architecture to be carved up into separate networks without dependence on the physical connection. Virtual Routing and Forwarding (VRF) allows separate routing tables to be used on a single piece of hardware to support different routes for different purposes. Additionally technologies exist which allow single network hardware components to be virtualized in a similar fashion to what VMware does on servers. All of these tools can be used together to provide the proper underlying architecture for cloud computing. The benefits of network virtualization are very similar to server virtualization, increased utilization and flexibility.
Storage virtualization encompasses a broad range of topics and features. The term has been used to define anything from the underlying RAID configuring and partitioning of the disk to things like IBMs SVC, and NetApp’s V-Series both used for managing heterogeneous storage. Without getting into what’s right and wrong when talking about storage virtualization, let’s look at what is required for cloud.
First consolidated storage itself is a big part of cloud infrastructures in most applications. Having the data in one place to manage can simplify the infrastructure, but also increases the feature set especially when virtualizing servers. At a top-level looking at storage for cloud environments there are two major considerations: flexibility and cost. The storage should have the right feature set and protocol options to support the initial design goals, it should also offer the flexibility to adapt as the business requirements change. Several vendors offer great storage platforms for cloud environments depending on the design goals and requirements. Features that are typically useful for the cloud (and sometimes lumped into virtualization) are:
De-Duplication – Maintaining a single copy of duplicate data, reducing overall disk usage.
Thin-provisioning – Optimizes disk usage by allowing disks to be assigned to servers/applications based on predicted growth while consuming only the used space. Allows for applications to grow without pre-consuming disk.
Snapshots – Low disk use point in time record which can be used in operations like point-in-time restores.
Overall virtualization from end-to-end is the foundation of cloud environments, allowing for flexible high utilization infrastructures.