Building the Open Cloud: Part 4

How does virtual I/O enable the cloud? In previous posts, we looked at what is the cloud is, and the various solution elements. But what makes virtual I/O an integral piece?

It helps to start with a very quick description of what virtual I/O does, then look at how that ties in.

  • Virtual I/O lets you connect from any server to any network or storage resource.
  • Virtual I/O lets your create connections in software, rather than with cards, cables, and switch ports.
  • Virtual I/O connections work exactly like traditional I/O. Virtual NICs and HBAs appear to the hypervisor and OS as traditional NICs and HBAs (but they’re a lot easier to deploy and manage!).

OK, but how does this help enable cloud?

One way to look at this is to review Gartner’s five attributes of the cloud and see how virtual I/O makes them a reality.

Enabling Gartner’s Five Cloud Attributes

As discussed in the first post, these are the five elements that Gartner identified:

1) Service-based

Service-based means delivering a specific service (“e-mail”) at a service level (how fast, how reliable, how changeable, etc…).

Virtual I/O helps here in two ways:

  • Application mobility: Meeting those service levels requires that the service be separated from a specific server (you may need to switch servers for speed, availability, etc.). This means that resources must be interchangeable, and that you are free to move applications among them. Virtual I/O enables that by giving every server the I/O it needs, when it’s needed. But, you ask, doesn’t VMware’s Vmotion do this all by itself? Yes, as long as all servers are tied into all resources all the time. There are several reasons you don’t want to do that, with cost, complexity, and security at the top of the list.
  • Guaranteed performance: Meeting anĀ  SLA requires guaranteed bandwidth to specific applications, something that’s difficult to ensure when I/O is shared. Virtual I/O includes bandwidth controls for both storage and networking.

2) Scalable/elastic

A cloud must be able to grow and shrink as needed. Traditional I/O makes this very difficult. The sheer complexity of adding resources dictates a lot of advance planning (i.e., delays!). Furthermore, building ahead of demand limits flexibility and results in low resource utilization, two very uncloud-like attributes.

Here’s how virtual I/O helps:

  • Wire once: Growth is easy because you wire into the servers one time and never touch the server cabling again, regardless of the I/O changes that occur down the road. Requirements for new networks, new I/O types, more bandwidth can be accommodated without touching server cabling. Most changes occur only in software, and all hardware changes will happen only at the I/O Director.
  • Software control: Cloud also requires rapid response, something that’s impossible if the response requires hardware changes. With virtual I/O, most I/O changes occur in software and are controlled at a single point: the I/O Director. I/O changes can be effected in real-time, on live servers, in seconds, and from anywhere.

One other point here: virtual I/O is not “another layer.” When you plug a network or storage into the I/O Director, it’s exactly like plugging into the server itself (that’s why it’s an “I/O Director,” not a “switch”). This is important because added layers imply more complexity, added latency, new failure points, and more risk of configuration errors. Virtual I/O provides scalability that traditional I/O cannot, but does not add another management layer.

3) Shared infrastructure

In the cloud, servers, storage, and networking must be shared among applications. You can’t really achieve attributes #1 and #2 without this. Getting here demands two important virtual I/O benefits:

  • Any-to-any connectivity: For assets to be shared, you obviously need the ability to connect anything to anything. (Which does not necessarily mean you want everything connected to everything all the time!)
  • Isolated connections: Cloud requires shared resources, but many times, you need the isolation of physically separate networks. Virtual I/O lets you create connections that are every bit as isolated as physically separate cables. But the connections are managed in software, not hardware.

4) Metered by use

To monitor and meter use requires control that is difficult to achieve with traditional I/O. How do you know if users are getting the performance they’re “paying for”? Conversely, how do you know if a user is getting poor response time because he’s overrunning his available bandwidth? (Well, you might find out when you’re phone rings, but isn’t there a better way??)

To help, virtual I/O offers:

  • Quality of Service (QoS) controls: QoS controls let you define the bandwidth available to an application. They can be set as a committed rate (“you’re guaranteed this bandwidth at all times”), and a peak rate (“this connection can never go beyond this level”). QoS attributes can be associated with a specific virtual machine, and attributes can remain in place even through a VM migration.
  • Monitoring: You can gather information in real time about actual usage, so you can see when problems are developing.

5) Uses Internet technologies

This can be viewed from two perspectives. From the user perspective, it means self-service provisioning. While virtual I/O does not present an end-user interface, it does offer a means for the user interface — whatever that may be — to control the infrastructure.

From the IT perspective, virtual I/O does two things:

  • Remote Management: I/O can be controlled from anywhere, which means your staff can be anywhere. This is a huge advantage when the gear is in a co-location facility, or is scattered across multiple time zones.
  • Scriptable: Routine management tasks (such as provisioning I/O to a server type) can be scripted.
  • Open API: A key benefit of virtual I/O’s software controlled resources is, obviously, the ability to be controlled from other software, such as orchestration suites.

These five attributes define both public and private clouds. And virtual I/O plays a key role in enabling all of them.

Virtual I/O — together with server virtualization — start you down this path by providing the needed flexibility. One without the other does not provide an enterprise-ready cloud. But together, they enable cloud management techniques.

In the next post we’ll compare the virtual I/O technologies.

Tags:

Leave a Reply