OpenStack Havana: GlusterFS, and what “improved support” really means

Nick Chase - October 18, 2013 -

As I write this, OpenStack Havana has just been released, and as I mentioned last week, the number of changes and new features is staggering.  So to avoid overload, I thought I’d take a look at one small but significant piece of the puzzle. This week, as we get ready for our next webinar, “What’s New in OpenStack Havana: A Technical Overview” — what?  You haven’t registered yet? — we’re going to look at a term you see all over the place in release notes for a project like this: “improved support”.

There’s no “one true meaning,” of course.  Let’s be honest, we developers frequently use “improved support” to mean anything from “we fixed a bunch of bugs” to “I really don’t have time to tell you everything that’s different, I have code to write.”  In this case, we’re going to look at what this phrase really means, using changes in how Gluster works in OpenStack Havana as an example.

OpenStack and GlusterFS

As you may or may not know, GlusterFS is an open source distributed file system that enables you to virtualize storage, enabling multiple physical disks on multiple machines to appear as a single filesystem and namespace.  GlusterFS has the ability to do automatic replication, distribution, and other useful features, but perhaps one of it’s most useful qualities is that it can be used with a number of plugins, or “translators”, in the community’s parlance, that enable it to act as a particular type of filesystem.  For example, one of the improvements in OpenStack’s support of GlusterFS is a new block storage translator, written by IBM, that enables GlusterFS to provide block storage for QEMU/KVM-based hypervisors, and thus be used as a Cinder volume.

In OpenStack Grizzly, you had the ability to use a GlusterFS volume, but it was mounted through the FUSE module, as is traditionally the case for GlusterFS.  This setup was fine as long as you were just using it as a typical storage volume, or if you didn’t have many virtual machines running out of it.  However, this setup involved a lot of context switching between user space and kernel space, which led to an unacceptable degree of latency once you had more than 10 or so VMs.

Improved support for GlusterFS in OpenStack Havana

So now that we know where the baseline was, let’s look at this “improved support”.  In this case, it wasn’t a matter of bugs preventing you from using GlusterFS (unless you consider latency a bug).  In this case, it literally was a matter of improving the support that was already there, and here’s how it works.

GlusterFS has a native client library, libgfapi, created by Red Hat, so in order to make these volumes more responsive in OpenStack, IBM contributed a patch to QEMU providing libgfapi integration.  OpenStack Compute (Nova) is integrated with QEMU, so that means that you can get better performance by using Nova-QEMU-libgfapi versus the old FUSE integration.

In addition, since you can use GlusterFS to create a Cinder volume (thanks to that Block Device translator, also contributed by IBM) you can now point to Cinder as a location for your GlusterFS and NFS backends.

And that leads to another improvement in the way in which you can use GlusterFS with OpenStack.  The OpenStack Havana release now enables you to boot directly from a volume, rather than copying an image OpenStack Image Service (Glance), and because you can create a Cinder volume using GlusterFS, you can now boot from GlusterFS.

What “improved support” means to you 

OK, so we’ve discovered that in the case of GlusterFS and OpenStack Havana, “improved support” means new capabilities (use GlusterFS to create a Cinder volume), new features (boot from a volume that is, in the end, managed by GlusterFS) and improved performance (by using Nova-QEMU-libgfapi rather than FUSE).

So now I’m going to ask you: what does “improved support” mean to you?  What would you like it to mean?  Let us know!

From Virtualization to Containerization
Learn how to move from monolithic to microservices in this free eBook
Download Now
Radio Cloud Native – Week of May 11th, 2022

Every Wednesday, Nick Chase and Eric Gregory from Mirantis go over the week’s cloud native and industry news. This week they discussed: Docker Extensions Artificial Intelligence shows signs that it's reaching the common person Google Cloud TPU VMs reach general availability Google buys MobileX, folds into Google Cloud NIST changes Palantir is back, and it's got a Blanket Purchase Agreement at the Department of Health and Human …

Radio Cloud Native – Week of May 11th, 2022
Where do Ubuntu 20.04, OpenSearch, Tungsten Fabric, and more all come together? In the latest Mirantis Container Cloud releases!

In the last several weeks we have released two updates to Mirantis Container Cloud - versions 2.16 and 2.17, which bring a number of important changes and enhancements. These are focused on both keeping key components up to date to provide the latest functionality and security fixes, and also delivering new functionalities for our customers to take advantage of in …

Where do Ubuntu 20.04, OpenSearch, Tungsten Fabric, and more all come together? In the latest Mirantis Container Cloud releases!
Monitoring Kubernetes costs using Kubecost and Mirantis Kubernetes Engine [Transcript]

Cloud environments & Kubernetes are becoming more and more expensive to operate and manage. In this demo-rich workshop, Mirantis and Kubecost demonstrate how to deploy Kubecost as a Helm chart on top of Mirantis Kubernetes Engine. Lens users will be able to visualize their Kubernetes spend directly in the Lens desktop application, allowing users to view spend and costs efficiently …

Monitoring Kubernetes costs using Kubecost and Mirantis Kubernetes Engine [Transcript]
Technical training
Learn Kubernetes & OpenStack from Deployment Experts
Prep for certification!
View schedule
Service Mesh for Mere Mortals
A Guide to Istio and How to Use Service Mesh Platforms
Getting started with Kubernetes part 2: Creating K8s objects with YAML

Thursday, December 30, 2021 at 10:00 AM PST