Although the concept of I/O virtualization has been around for years, the trend to make datacenter infrastructure more cost-, space- and energy-efficient is starting to draw a lot of attention to this technology. The idea is that instead of attaching devices to each server, I/O is consolidated on an external box that can virtualize those resources for multiple servers.
Besides efficiency, one of the biggest advantages to this separation is that compute and I/O can be upgraded independently of one another. In general, CPUs have a relatively short refresh cycle of 12-18 months, while I/O devices tend to have multi-year lifetimes.
The other advantage, of course, is flexibility. Being able to remap I/O on the fly in a datacenter offers a way for system administrators to optimize the storage and network resources without having to manually reconfigure hardware and networks. For cloud computing setups where application demands can be extremely dynamic, this type of flexibility is especially valuable.
Early players like Xsigo and 3Leaf Systems have I/O virtualization solutions that consolidate network and storage connections with an Ethernet/Fibre Channel/InfiniBand gateway box (and associated software) that replaces server-side HBAs and NICs. These solutions can even take the place of multiple top-of-rack switches. The BridgeX gateway from Mellanox is designed along the same lines. In these cases, either Ethernet or InfiniBand is the underlying network used to connect the virtualization gateways to the servers.
Relatively new on the I/O virtualization scene, NextIO has taken a different route by employing PCI Express (PCIe) as both the server-gateway connection and the I/O interface. In effect, the local PCIe interface is extended outside the server. The company’s first generation product for rack servers, the N2800-ICA, is a top-of-rack appliance that offers 14 PCIe x8 connections. Since PCIe is already the common denominator for server I/O, the NextIO appliance is able to support Ethernet, Fibre Channel, InfiniBand, SATA, SAS, SSD, and GPU devices.
GPU virtualization, in particular, is especially relevant for HPC applications. Offloading a lot of heavy-duty numerical computations from the CPU to the GPU often calls for a large GPU-to-CPU ratio. The problem is that the form factor of standard 1U servers doesn’t allow for more than one or two GPUs. For example, the latest GPU-accelerated 1U box from Supermicro incorporates two NVIDIA M1060 Tesla GPUs.
“There are limitations in the way servers are made today,” explains Mike Lance, NextIO’s director of marketing. “In order to get a lot of GPU connectivity per server, you have to buy a very, very expensive server with a lot of PCI express slots. What customers really want is to be able to use their 1U rack servers, which are very low cost, have a lot of compute power and memory to run most applications, and then connect those up to as many GPUs as they can to run their simulation programs.”
The NextIO appliance can support up to six double-wide GPU cards (or twelve single-wide cards), which can be mapped to a single server. Of course, bandwidth is limited by the PCIe link from the server, but since GPU-friendly codes are often compute-bound anyway, I/O communication is usually not the bottleneck. At the SIFMA (Securities Industry and Financial Markets Association) conference last month, NextIO demonstrated good scaling on a Monte Carlo option pricing application using a setup where a 1U server was accessing up to five NVIDIA GPUs connected to its appliance.
Alternatively, GPUs can be shared across multiple servers in a rack. NextIO appliances can also be daisy-chained via a PCIe inter-switch link to aggregate even more resources. For example, one could add some PCIe SSD devices to get one or two million IOPS of storage on top of a GPU-filled appliance. “You can really build a performance-oriented resource pool and then carve it up based on your application demand,” says Chris Pettey, CTO and co-founder of NextIO.
HPC is really a secondary focus for the company. Its primary market is in 10GigE and 8G Fibre Channel consolidation for mainstream datacenter applications. But because it went the PCIe route, it was able to tap into GPU computing and PCIe-based SSD storage acceleration, which just happen to be a good fit for performance-driven applications. Right now, HPC is the company’s most active market, so it’s giving it extra attention. Today it has customers who are using its multi-GPU solution for medical imaging and flight simulations applications, but certainly other HPC application areas are possible.
NextIO’s next generation platform is still in the proof-of-concept stage, but one thing the company is looking at is incorporating the concept of “server personalities.” Basically, a personality defines a server’s I/O characteristics, such as MAC address range, bandwidth guarantee, QoS parameters, boot parameters, WWN address range. System administrators would be able to pre-provision the datacenter with the personalities that match different types of applications (such as Web servers, Exchange servers, SAP servers) and then map those personalities to physical servers dynamically.
In the HPC realm, for example, it would be possible to define dual-GPU and quad-GPU personalities for different applications and then apply those configurations to the same server on the fly as the workload shifted. In a cloud type environment, it might even make sense to mix HPC and non-HPC configurations by constructing an external I/O resource pool with GPUs, SSDs, InfiniBand adapters and Ethernet NICs. “In a normal environment you’re restricted by the physical topology,” says Pettey. “In our environment that would be completely soft, so you can reconfigure your machine based on the demands of your application.”