My three favorite things about OpenStack are
- The People
- The Innovation
- The Interoperability
San Diego was my second OpenStack summit. Many of the same faces were in the design summit sessions I attended, but there were many new faces as well. One of the most exciting observations from the Folsom design summit was the incredible talent pool assembled. The Grizzly summit was no different – it’s great to interact with so many incredibly smart, deep and experienced people. I’m convinced that a single company could never amass such a collection of quality talent for one project. I guess it’s no wonder they’re saying OpenStack is the fastest growing open source project ever.
I must apologize in advance, because I am sure to miss someone, but I want to tell you about some of the people I interacted with in the nova, glance, and cinder design sessions. Over the past few months I’ve really been impressed with the PTL leads. They’re very smart, highly motivated, and excellent facilitators. The design sessions invariably get into open debate, but productive debate. I was impressed with the PTLs’ natural abilities to channel the discussion to bring out the key issues and land on some concrete next steps.
I got to meet Microsoft’s Peter Pouliot, who’s heroic and tenacious efforts successfully delivered HyperV support after a rather dodgey mess earlier in the year. Peter is not your stereotypical Microsoft developer. He’s an open source guy through and through. It’s clear that his personal spirit had a lot to do with corralling the community to deliver quality code in a very short time frame. It was great to meet Peter and some of his non-Microsoft colaborators. Great job guys!
I also had the pleasure to meet with some of VMware’s developers and not just those acquired via the billion dollar Nicira acquisition. The Nicira guys are great – no question but I was also very pleased to meet the VMware developer who completely rewrote the less than adequate VMware compute driver. I hope to work closely with them to ensure the hypervisor is well supported and as interoperable as possible with other properietary and open source technologies.
Of course, I can’t speak of OpenStackers without mentioning RackSpace. Over the past two summits, I got to interact with a number of RackSpace developers, aka Rackers. I got to hand it to them, they really do have a great bunch of people and definitely bring a massive scale service provider perspective to the discussion. Of course, being an IBMer myself, I can’t help but bring the enterprise customer perspective into the mix. I think OpenStack benefits greatly from these two perspectives brought together in open source.
OpenStack has done a great job defining an extensible framework for IaaS. This flexibility not only helps accommodate the varied needs from enterprise to service provider, but it also enables a massive sea of innovation. Since the Nicira acquisition there’s been a lot of attention on the innovation around software defined networking and quantum, the OpenStack project that provides the abstraction for a variety of implementations ranging from proprietary, to pure open source like Open V Switch, to traditional standard networking equipment. I think storage is even hotter than networking these days with a slew of vendors combining commodity 10Ge switches with commodity Intel servers with a combination of SSDs and spinning disks to provide new approaches to storage for virtualized environments. Of course software plays a critical role in many of these virtualized storage solutions. Dreamhost’s open source distributed file system Ceph has been getting a lot of interest. Enterprise storage vendors like NetApp, IBM, and HP have also contributed cinder drivers to support their products within OpenStack clouds. There were also a number of summit discussions about exposing the different backend implementations of the abstractions with different qualities of service. Some people, including one of my developers, have begun to use “Volume Types” as a way to let users choose the kinds of volumes they need. I believe this is critical for compute clouds to cover the broadest spectrum of workloads. Of course this principle applies to other resources and not just cinder volumes.
I saw a lightning talk about a nova driver for smartOS, a cool open source project from Joyent combining solaris zones, zfs, and kvm. There were ARM and Power CPU support presented as well as a couple bare metal solutions. Intel, KVM, and OpenStack certainly make a nice combination, but there’s so much more that’s possible with OpenStack clouds.
Finally, perhaps the most important thing about an OpenStack cloud is interoperability. Starting with the hypervisor, IBM has a solution that enables interoperability of images, volumes, and networks across Xen, KVM, VMware and Hyper-V. We had a few sessions where we discussed how we can bring the same interoperability to OpenStack. To start with, we need to be able to register readonly cinder volumes as glance images. Next to ensure we can scale out we need to be able to register multiple copies of the same image. Finally, to take advantage of performance we need to abstract the clone operation to enable Copy on Write (CoW), Copy on Read (CoR), as well as the current local cache plus CoW mechanism for backwards compatibility and to support 1Ge networks. Combining these will enable images to work across multiple different hypervisors.
We also need interoperability with existing images which means VMware and Amazon as the two most common forms of images. Today, it’s quite easy to automate simple image formatting differences, but the challenge is in the assumptions made by the images. The current direction for OpenStack is to use config drive v2 to pass instance metadata to the guest which is responsible to pull key system configuration such as hostnames, credentials, and IP addresses. Typical VMware images on the other hand generally expect either a push model, where the hypervisor manipulates the filesystem prior to booting the image, or via their guest agent, VMware tools.
To make matters worse, the current OpenStack assumes different image formats for each supported hypervisor. One of the sad punchlines from Troy Torman’s keynote was that RackSpace’s private cloud distro named Alamo does not interoperate with their publci cloud even though they’re both OpenStack. The good news is that, as Troy went on to say, the time has come to focus on interoperability.
I got into a great conversation with Jesse Andrews, one of the original OpenStack guys now at Nebula. He described the approach to image interoperability by enabling cloud operators to provide custom image workers at image ingestion time. This enables cloud providers to register custom image processing code that gets called whenever an image is uploaded to Glance. The simplest case of this is to convert image formats to enable Alamo KVM images to run on RackSpace’s Xen based public cloud.
Fortunately, IBM’s SmartCloud Provisioning (SCP) includes some image management technologies which can help with the more challenging problems mentioned above. Today’s SCP 2.1 will interrogate images in the library and check for cross hypervisor compatibility. Users gain visibility into this information and can optionally automate fixes wherever possible. We also use this technique to detect the presence of a critical guest agent.
This brings me to one of my favorite little open source projects, cloud-init created by Scot Moser at Canonical. If only it wasn’t GPL ;-). Many OpenStackers are using cloud-init to automate the system configuration pull from config drive v2 mentioned above. This little bootstrap can do much much more, but this is certainly a great job for this trusty little tool. Unfortunately, it’s only for linux. It’s even been made to work with fedora and will likely be included in RHEL. Since we cannot use GPL code in IBM products, we have a similar bootstrap for both Windows and Linux guests. We’re working with our lawyers to get approval to contribute this code to cloud-init. Of course, if Canonical wants to use a more commercial friendly license like OpenStack has done, then I could spend less time with lawyers and more time hacking code ;-).
The beauty of this little bootstrap is its simplicity. This simplicity enables us to automatically inject the bootstrap into Windows and Linux images. This will let us automatically fixup any old VMware, or Hyper-V image so that it works on OpenStack. This is a critical first step towards interoperability.
OpenStack is truly becoming an industry changing
and historic project. With so many
incredibly talented people from countless companies across the globe it’s no
wonder there is so much innovation in the community. I’m really happy to be a part of this growing
community. Together I believe we can
change the industry for the better. If
you would like to be part of this growing and innovative project, check out the
“community” link at www.openstack.org.
Also, we would like to invite you to check back here for future blogs on
OpenStack and IBM’s involvement. OpenStack
is a big part of IBM’s open cloud strategy and we want to be sure to keep you
up to date on our progress