Some people see virtualization as a hindrance to performance with no place in HPC. Other people see it as the future of accessibility in HPC, opening up new modes of parallel computing for a non-traditional audience. Either way, it always gets a lot of attention from insideHPC’s readers. So when Shai Fultheim, the CEO of HPC virtualization company ScaleMP, offered to write a post for providing some background into the major virtualization approaches and the potential benefits for HPC, we took him up on it.
Think he’s right? Think virtualization is a waste of time in HPC? Sound off by leaving a comment at the end of the article! (Disclosure: we’ve run articles with Shai before, and always appreciate his perspective. This is not a paid piece, but you should know that ScaleMP is advertising at insideHPC at the time of this writing.)
Storage virtualization refers to the process of abstracting logical storage from physical storage. The two key types of storage virtualization are partitioning and aggregation.
Partitioning is the logical division of a disk subsystem so that data can be isolated in separate segments (partitions). These partitions are logical storage units distinct from the physical storage units within the array. There are a number of benefits to storage partitioning. First, it delivers significant business value and ROI since managing a consolidated, single large physical resource enables improved efficiencies, which lowers storage investment. Second, it delivers more efficient storage utilization, as there is no need for extra capacity on a separated, dedicated storage device for each server; available capacity is allocated to servers as needed. It also provides more efficient storage management, as administrators spend less time and money managing storage with fewer disk systems needed to support many servers. Finally, storage partitioning offers improved storage flexibility by de-coupling servers and storage: administrators can easily add storage, new servers, or retire older servers without storage unload/reload or downtime.
Storage aggregation, on the other hand, allows pooling of physical storage from multiple network storage devices or arrays into what appears to be a single “virtual” storage device (or volume) that is managed from a central console. This approach delivers improved storage flexibility by allowing an application access to additional storage resources beyond the physical boundary of the storage array. In addition, underutilized resources in a pool can be reallocated to other applications or users. Physical storage resources associated with a particular application or host group are able to be allocated to other applications and host groups based on under- or over-utilization more efficiently, and available capacity can be easily allocated to servers as needed. Multiple independent storage devices that may be scattered over the network appear to be a single monolithic storage device, which can be managed centrally. This approach also offers better availability through non-disruptive data migration; ability to migrate data while maintaining concurrent I/O access. Some of the uses are for moving data off an over–utilized storage device, moving data onto a faster storage device, and migrating data off an older storage device.
Similar virtualization techniques are used in networking. Network aggregation is used to consolidate multiple physical network connections into a single virtual link with higher bandwidth or higher reliability. It is also quite common to partition (segment) large network switches with VLANs. The use of VLANs increases flexibility of the underlying infrastructure compared to use of dedicated switches.
Server virtualization separates the physical characteristics of the servers from the operating system, application, and users. Similar to storage and networking, the two key types of server virtualization are partitioning and aggregation.
The use of server partitioning has become quite common in the past few years, and is the darling of enterprise IT right now. With this approach, a single physical server appears to function as multiple logical (virtual) servers. This approach delivers significant business value, since consolidation enables improved efficiencies, lowering the number of servers required and also hardware maintenance costs. It also offers more efficient space and power utilization as a result of server consolidation, and can result in improved flexibility: one can deploy multiple operating systems on a single hardware platform (Windows, Linux, etc). Finally, it provides lower management costs by having each application within its own “virtual server,” and preventing one application from impacting another application when upgrades or changes are made. A standard virtual server build can be easily duplicated, which will speed up server deployment.
Using virtualization for aggregating multiple servers — abstracting them as a single logical system — was on the virtualization wish list for many users for a long time. Server aggregation delivers significant business value and ROI by allowing scaling of applications beyond the physical boundaries of a machine, and enables running of larger jobs that require more computer resources (i.e., cores and memory). Systems aggregated from standard servers can be significantly more cost effective than traditional larger servers, delivering lower acquisition costs and lower maintenance costs.
Aggregating system reduces fragmentation of resources, and also allows the use of the latest generation of “cooler” and more efficient processors, resulting in improved space and power utilization. It also results in lower management costs of clusters, grids and clouds by allowing administrators to install and maintain a single operating system image. The complexity of high-speed networks (such as InfiniBand) is masked, and the need for cluster file system and complex storage management is eliminated. This approach delivers improved flexibility and versatility, by being able to run both parallel and multi-threaded codes (OpenMP) with excellent performance, and also enabling running large core count, large memory jobs. Finally, it delivers faster and more cost effective storage options for “scratch” storage, which can be aggregated from multiple systems. Faster “scratch” storage is a critical element of performance in HPC applications.
As seen from the above descriptions, there are significant similarities in the value propositions when you compare the storage and network virtualization paradigms to server virtualization in both partitioning and aggregation. The potential of aggregation in server virtualization promises no less a transformation than what it delivers in storage and networking. Aggregation virtualization is a revolutionary change in paradigm and promises to have a significant impact on the industry in both storage and server segments.