Product SiteDocumentation Site

Chapter 4. Building your own cloud infrastructure using Fedora

4.1. Infrastructure as a Service (IaaS)
4.1.1. Creating your own cloud with Openstack
4.1.2. CloudStack
4.1.3. Sheepdog
4.1.4. HekaFS
4.2. Platform as a Service (PaaS)
4.2.1. What is OpenShift?
4.3. Software as a Service (SaaS)

4.1. Infrastructure as a Service (IaaS)

4.1.1. Creating your own cloud with Openstack

OpenStack, licensed under the Apache 2.0 license, provides technologies for creating open source clouds.
OpenStack consists of several different pieces:
Nova
Nova is the management stack and user interface to OpenStack.
Swift
Swift is an object storage mechanism for OpenStack
Glance
Glance is the image creation portion of OpenStack
Let's explore the various pieces of OpenStack and how they interact.

4.1.1.1. Openstack Nova

Nova is the primary operator in the Infrastructure as a Service, or IAAS, system which is used to host and manage clouds.
Additional information on Nova can be found at http://nova.openstack.org

4.1.1.2. Openstack Swift

Swift is an object-oriented storage solution.
Additional information on Swift can be found at http://swift.openstack.org.

4.1.1.3. Openstack Glance

Glance is a system used to manage virtual machine images. The service provides discovery, registration, and retrieval support. VM images can be stored using regular filesystems or in object-oriented systems like Swift.
Additional information on Glance can be found at http://glance.openstack.org.

4.1.2. CloudStack

CloudStack is an open source cloud computing platform for creating and maintaining IaaS clouds. Supporting several hypervisors and network configurations, CloudStack makes building a IaaS cloud with ease.

4.1.2.1. Installing CloudStack

CloudStack is not currently available in the Fedora or EPEL repositories. Binaries and source can be found at http://cloudstack.org/download.html. Downloading the appropriate binary and installing it via the GUI or CLI is quite easy.
Open a terminal and go to the directory where your binary file is located...

4.1.3. Sheepdog

Sheepdog is a distributed object-based storage system for QEMU/KVM. Providing high-availability, block-level storage, Sheepdog can manage hundreds of nodes automatically balancing load when failures and additions occur.
For additional information please visit http://www.osrg.net/sheepdog.

4.1.3.1. Prerequisites

Before installing

4.1.4. HekaFS

HekaFS (formerly CloudFS) is cloud filesystem built on top of Gluster. It provides a set of translators to make Gluster more suitable as a cloud file system. HekaFS is a feature for the Fedora 16 release, and the Fedora Cloud special interest group (SIG) is actively involved in development and testing.
The Fedora HekaFS feature page has information about the status of HekaFS as a feature in a future release of Fedora.
See Jeff Darcy's HekaFS blog to learn more about the philosophy of HekaFS and find out what's happening with HekaFS development.

4.1.4.1. How to use HekaFS

General HekaFS discussions are at: https://fedorahosted.org/mailman/listinfo/cloudfs-general.
Red Hat Cloud OpenShift uses HekaFS. The user community for that product is found at: http://www.redhat.com/openshift/forums.

4.1.4.2. How to participate in HekaFS

Let's start with some important links.
The upstream project overview (slides, blog posts) is at http://hekafs.org/cloudfs-overview/
The source repository is at: http://git.fedorahosted.org/git/?p=CloudFS.git
The developer mailing list is at: https://fedorahosted.org/mailman/listinfo/cloudfs-devel
The user mailing list (pretty empty so far) is at https://fedorahosted.org/mailman/listinfo/cloudfs-general
HekaFS is still under active development, so there are still many ways to contribute. Here are some possibilities.
Use it, report bugs, suggest features. The packaging and documentation are still works in progress, so this might require some interaction with one of the developers, but we don't bite. Feel free to contact jdarcy@fedoraproject.org, jdarcy@redhat.com, or jeff@pl.atyp.us - all the same person - and I'd be delighted to help you through it.
Use the upstream (http://gluster.org), report bugs, suggest features. For the most part, HekaFS is GlusterFS with a couple of extra bits, so many of the issues you're likely to experience are actually GlusterFS issues. HekaFS is not just its own code, though. It's also a sort of unofficial "CloudFS SIG" within the GlusterFS community. If you want GlusterFS fixes or enhancements because of your interest in HekaFS, we can drive those as part of HekaFS.
Say hi in Freenode IRC. #cloudfs is pretty dead (let's fix that), but #gluster and #fedora-cloud are pretty lively.
Help with documentation. There are several bits of documentation in the source tree, but a little loving from a genuine wordsmith would go a long way.
Improve the user interface. There is a web-based management UI with pretty good functionality - here are some screenshots and stuff - but the user experience is pretty old-school. If you're a real web programmer who knows all the modern AJAX/JavaScript ways of doing stuff, or a graphic designer, I'm sure you could make something a lot better.
Improve the core code. Some parts of HekaFS are practically done, but others are still in active development and there's still plenty of room for more developers. In particular, if you're a security/cryptography expert, more review of those pieces would be most welcome. People might look at HekaFS as a more secure alternatives to Dropbox or Jungledisk, both of which have had problems in this area recently, so this is a great area to focus on. Despite being a file system this is not kernel code, by the way. It should be relatively free of those additional complications and comprehensible to non-kernel programmers.
Get the word out. The number of participants is directly proportional to the number of people who've heard about it, and some people who might want to contribute might not even know we're here. Blog, tweet, whatever, let people know that there's an open-source project to create a scalable, secure, multi-tenant filesystem.