Building a Private Cloud with Open Source Ganeti: Pros and Cons

libbyclark's picture

Businesses considering building a private cloud with open source tools have likely explored at least one of the big three open IaaS options: OpenStack, CloudStack and Eucalyptus. These are great platforms for IT departments that have the time and technical expertise to test and deploy large clouds.

But what works for enterprise customers isn’t necessarily ideal for small to medium-size businesses or academic institutions with less demand for computing resources and a small IT staff, says Lance Albertson, associate director of operations at Oregon State University’s Open Source Lab.

IustinPopThat’s why the OSU Open Source Lab is running its private production and development cloud on Ganeti, an open source virtualization management platform developed at Google.

Google originally started Ganeti in 2005-2006 as a VMware alternative for managing virtual machines (VMs), storage and networks – not as a cloud platform. So it’s missing many of the features, such as elastic-style computing, cloud-based storage and object APIs that come with the bigger open cloud projects, said Iustin Pop, lead developer for Ganeti at Google, via email.

It can be used for single-host management, similar to Libvirt or Xen Tools, as well as large-scale computing on the OpenStack level, Pop said. But Ganeti’s sweet spot lies somewhere in the middle: “from one to two physical machines to a couple hundred, focused on private use of traditional VMs.”

“If you want to run hundreds of stable Linux-based VMs, Ganeti is a good option,” Pop said. “If you want to provide a public facing web-based interface for dynamic VM creation/turndown, there are better projects out there.”

At Google, Ganeti doesn’t touch any of the user-facing services such as email or Web search. It runs only internal corporate services such as DNS and cache servers used by the engineering workstations.

Pros of Ganeti

OSU’s Albertson is aware of the project’s limitations. But, he says, Ganeti has proven to be the perfect production and development environment to quickly and easily spin up virtual machines for the open source projects housed at OSU’s Open Source Lab, including Busybox, Inkscape, OpenMRS, phpBB, OSGeo, Python Software Foundation and Yum.

Lance Albertson

The lab’s Ganeti cloud is built for high availability and resiliency. Because it primarily uses local storage for virtual machines instead of a disk image mounted over NFS, the Ganeti cloud can generally perform faster than other cloud environments and at a lower hardware cost, Albertson said.

“If one of the physical nodes goes down we can easily bring the affected virtual machines back online on another node very quickly,” Albertson said. “Other cloud platforms don’t necessarily have hardware failure resiliency built into the platform as elegantly.”

They can also expand a Ganeti cluster with built-in utilities that can easily add a node with minimal downtime and even automatically re-balance the cluster.

“It really boils down to what you need. Other platforms have a lot of other useful features but it generally comes with a lot of angst, in building, testing and deploying more complex systems,” he said. “Ganeti is really simple to set up and maintain and fits well with how we provide virtual machine hosting.”

Cons of Ganeti

Ganeti’s simplicity can also be a challenge. For example, it doesn’t automatically shift resources when a node fails. Someone has to be there, manning the ship.

It’s command line driven so there’s no nice Web interface for users to interact with the system – a problem the Open Source Lab’s Ganeti Web Manager Project aims to fix.

“We’re making a lot of headway to improve the interface for more general users, “ Albertson said. “Right now it’s mostly useful for admins that want to give console access to their own virtual machines.

“We’ve also added quota support and a permission system,” he said, “So we’ve tried to extend Ganeti to be more cloud-like in that sense.”

Ganeti has its own API, but it isn’t compatible with Amazon’s API – or any other APIs.

“It’s really meant to be a private IaaS, keeping things in-house mostly,” Albertson said.

“I can see this being useful for small businesses that want to run a few virtual machines for their systems in a closet somewhere,” he said. “Trying to do that with OpenStack or the others? It’s just too much complexity for that size of scale.”

Editor's note: Try Ganeti on your laptop with Lance Albertson's Vagrant test environment available on GitHub.