Tour the Folsom release of OpenStack

Enabling block storage as a service through integration

The OpenStack Folsom release debuted in September 2012 and includes exciting new features, such as the introduction of a core version of Quantum (networking as a service) and Cinder (block storage), making a block storage as a service offering. Folsom also provides better Open vSwitch integration, which is an advanced network manager for Linux®. In this article, install and discover the Folsom release's new features in a fully virtualized approach using KVM.

Share:

Razique Mahroua (razique.mahroua@gmail.com), Cloud computing consultant, Independent

Razique Mahroua photoRazique Mahroua is a systems administrator and consultant for a hosting company specializing in cloud solutions. Currently involved in several open source projects, he's part of the official OpenStack doc core team. His experience ranges from cloud solutions, implementations (IaaS, PaaS), and by-products such as data clustering to network high availability and data integrity. He currently assists several companies looking for best practices around cloud solutions.



20 February 2013

OpenStack is an open source Infrastructure as a Service (IaaS) cloud computing platform launched in 2010 by the US National Aeronautics and Space Administration and the American IT hosting company, Rackspace. OpenStack adopts the same approach as projects such as Eucalyptus, OpenNebula, or Nimbus: It allows you to deploy complete virtualized IT infrastructures for your organization's needs.

The OpenStack project represents other open source projects that together form the building block of the solution. Originally, OpenStack consisted of three projects:

  • Nova: A computing service that delivers virtual computing resources.
  • Swift: A storage service that delivers object storage.
  • Glance: An imaging service that provides ready-to-go operating systems for your cloud.

Given the popularity and the increasing adoption rate of the project within corporate data centers, more solutions became "core" projects, such as Keystone, an identity manager that forms the central authentication mechanism; Horizon, a web interface for managing OpenStack; and lately, Quantum/Melange, a network service that proposes virtual network management for the infrastructure; and Cinder, the block storage as a service project.

The approach OpenStack provides is an easy-to-use and flexible framework for companies looking for a stable environment that fits their or their customers' needs. With the release of Folsom, the Quantum networking project brings the OpenStack solution a step farther by making possible the integration of a software-defined networking layer that permits the creation of complex and advanced infrastructure models. This article introduces the deployment of Quantum and its integration with the other OpenStack core projects.

System requirements

To better follow the procedures in this article, make sure you have two Kernel-based Virtual Machine (KVM) instances, each with at least 1GB of RAM. (This article doesn't cover the installation of the core project, but refer to Resources for a link to information about installing those components.) Designate the first virtual machine (VM) controller: It will manage most of the services. The second VM, node, will only run your OpenStack instances.

For the first VM, you need at least 10GB of disk space and three network interface cards (NICs). The first one, eth0, manages the VM and connects to Internet; the second NIC, eth1, is for local connectivity between the two VMs. Finally, eth2 is a bridge that OpenStack Networking (code-named Quantum) uses.

For the second VM, you need at least 5GB of disk space and two NICs. The first one, eth0, manages the VM and is optionally connected to the Internet. The second NIC, eth1, is used for local connectivity between the two VMs.


The virtual machines

Your first VM is the controller. It runs the services listed in Table 1.

Table 1. The controller services
ProjectComponent Details
NovaCompute serviceProvides compute resources for your lab
KeystoneIdentity managerProvides a central authentication mechanism
GlanceImaging serviceDelivers ready-to-use images for your lab
CinderBlock-storage as a ServicePermanent data storage for your instances
HorizonOpenStack dashboardConfigure and manage your lab from a web interface
Quantum Servernetwork as a serviceRun detailed virtual networks for your lab

The second VM, node, provides the computing resources. The controller orchestrates the node's actions, so node requires only those services shown in Table 2.

Table 2. The node services
ProjectComponent Details
Nova-computeCompute servicePart of the Nova project, which manages instances
Quantum, the Open vSwitch agentnetwork as a serviceRun detailed virtual networks for your lab

The network topology

This section introduces the network topology and VM network configuration for the two servers. Figure 1 shows the environment and basic routing used throughout the processes in this article. The article goes through the configuration of both Quantum and Open vSwitch network services for providing a high-level networking solution.

Figure 1. Network topology
Image showing the network topology of the two VMs

In this setup, as you see for the controller, use eth0 to manage both VMs. Both interfaces communicate through the same LAN network. Eth1 handles the traffic across the two VMs and is dedicated to those instances; that's why you use another LAN. Finally, eth2 is solely used by Quantum for routing the traffic from the instances to the Internet, making them publicly reachable. Use the advanced networking routing solution Open vSwitch to manage bridges over the physical NICs.

Table 3 describes the controller's NICs and the compute node according to this network topology. With a basic understanding of the network topology and configuration, you're ready to install and configure your lab.

Table 3. Configuration of the NICs
ServerInterfaceIP addressNetwork maskGateway
Controllereth010.211.55.17255.255.255.010.211.55.1
Controllereth1100.10.10.232255.255.255.0N/A
Controllereth2Manually set*
Nodeeth010.211.55.22255.255.255.010.211.55.1
Nodeeth1100.10.10.233255.255.255.0N/A
* Because Quantum manages this interface, you need not assign an IP address to it.

Install your controller

To install your system controller, download and install Ubuntu Precise 12.04 x64. (See Resources for a link to information about installing a base operating system for OpenStack.) This operating system is the base operating system for your lab. During the installation, make sure you allocate at least 10GB of disk space for your VM. Choose the default partitioning, and create a user. When the installation is complete, connect to it and start by adding the Folsom repositories to Aptitude (see Resources for a link). Make sure you configure the network according to the information presented in Table 3. Install all the services specified in Table 1.

Install your compute node

To install the compute node, again download and install Ubuntu Precise 12.04 x64. Your node requires only 5GB of hard disk space. Choose the default partitioning, and then create a user. After you add the Folsom repositories and configure the network according to Table 3, install the services specified in Table 2.


Quantum overview

With the release of Folsom, OpenStack introduced Quantum as a core service. Quantum is a network as a service project that facilitates the setup of complex and advanced L3 networking models. By leveraging the cloud network configuration, Quantum offers a powerful way of controlling, measuring, and allocating network resources as you would allocate compute resources.

Several clients (command-line interfaces and applications) communicate with the application programming interface extension, which handles the instructions for the plug-ins deployed on your equipment, such as your hypervisors or vSwitches. The hypervisor network stack itself communicates with the Quantum Plug-in Agent interface and manages the routing to your instances. The Quantum Plug-in Agent interacts with Open vSwitch natively for routing the packets through the Open vSwitch bridges. Finally, the Quantum L3 Agent enables Layer 3 forwarding and floating IP support. Figure 2 shows the Quantum service flow.

Figure 2. Quantum service workflow
Image showing the Quantum service workflow

Quantum deployment

For your lab, configure Quantum with one router and two subnets linked to two networks. Quantum communicates with Open vSwitch to manage the network routing on your two servers. Table 4 presents the Quantum network model.

Table 4. Quantum network model
ServiceComponentDetails
QuantumPrivate subnet and networkThe network and attached subnet Quantum uses to allocate IP addresses to your instances
QuantumPublic subnetThe network and attached subnet for the floating IP addresses
QuantumRouterA virtual router Quantum uses to provide public connectivity to your instances

Quantum configuration

For your lab, let's review the relevant settings in the various Quantum configuration files. These settings apply to both the controller and the compute node:

  • In /etc/quantum/quantum.conf, enable the Open vSwitch driver by setting the following configuration option:
    core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
  • Provide the L3 Agent with the public network and router IDs in /etc/quantum/l3_agent.ini by setting the following parameters:
    router_id = the router id (quantum router-list)
    gateway_external_net_id = the public network id (quantum network-list)
  • In /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini, use the controller Quantum database by configuring the following settings:
    sql_connection = mysql://ovs_quantum:openstack@10.211.55.20/ovs_quantum

Open vSwitch configuration

Open vSwitch is an advanced network management solution for your server. You deploy and connect it to Quantum to create a robust and flexible network for your cloud. According to the settings presented earlier (refer to Network topology for a reminder), three Open vSwitch bridges are required, as shown in Table 5.

Table 5. Open vSwitch bridge configuration
Bridge namePhysical interfaceDetails
br-intNoneIntegration bridge (the bridge to which all your instances connect before being routed according to their network connectivity.)
br-exeth2Used by Quantum to make your instances reachable from the Internet (this bridge is created only on the controller.)
br-eth1eth1Configuration bridge (this bridge is used to configure your instances.)

Figure 3 presents the Open vSwitch implementation within your lab. The controller has three bridges; the node has only two bridges. The controller has the extra br-ex bridge, which ensures network routing to the outside network. Create your bridges according to the model shown in Figure 3.

Figure 3. Open vSwitch networking model
Image showing the Open vSwitch networking model

Horizon overview

Folsom introduces a new version of Horizon (formerly openstack-dashboard), which is a web user interface for managing your cloud. This release provides a tight integration of Quantum and Cinder: You can manage Cinder volumes and Quantum subnets, networks, ports, and instance attachments directly from Horizon.

Horizon interacts natively with the authentication service Keystone for retrieving services endpoints and managing tokens, making the integration a smooth process. Figure 4 presents the Cinder management interface. From it, you can allocate volumes to your instances.

Figure 4. Horizon's Cinder management interface
Image showing Horizon's Cinder management interface

Figure 5 presents the Quantum integration interface. From the Networks tab, you can easily create networks, routers, and subnets for your tenant, as shown in Figure 6.

Figure 5. Horizon's Quantum interface
Image showing Horizon's Quantum interface

Clicking Create Network opens the window shown in Figure 6.

Figure 6. Horizon's Quantum Network Creation window
Image showing Horizon's Quantum Network Creation window

Figure 7 shows the details for your network. Horizon provides detailed information about the ports, the allocated IP addresses, and the status of your Quantum ports.

Figure 7. Horizon's Quantum network details
Image showing Horizon's Quantum network details section

Spawn your first instance

Finished with setup, you're now fully able to run and delete instances, allocate storage to them, and make your instance publicly available. When you have spawned your first instance (see Resources for TTYLinux test images) and added security rules, you can assign it a Quantum floating IP address.

Allocate a floating IP address

To allocate a floating IP address:

  1. Add a floating IP address to your pool:
    quantum floatingip-create ext_net <your external network>)
  2. Retrieve the instance network port ID:
    quantum port-list -- --device_id <instance id>
  3. Retrieve the floating IP ID you created previously by running the command quantum floatingip-list.
  4. With the two IDs you retrieved, perform the IP allocation:
    quantum floatingip-associate floating IP idinstance port id

In conclusion

Throughout this article, you discovered and deployed the new OpenStack Folsom release. This article covered basic deployment of all core components, especially Quantum and the Open vSwitch networking solution, which is not part of the project itself, although the level of integration with OpenStack makes it possible to deploy advanced routing and networking setups.

You can use your lab for a proof of concept environment, for testing the new Folsom features or the functionalities of the new version. The Folsom release enhances the your infrastructure experience by providing a set of blocks that you can tweak easily and that is highly customizable through numerous options and parameters, building out a reliable and secure IaaS solution for your customers.

Resources

Learn

Get products and technologies

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Cloud computing on developerWorks


  • Bluemix Developers Community

    Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.

  • developerWorks Labs

    Experiment with new directions in software development.

  • DevOps Services

    Software development in the cloud. Register today to create a project.

  • Try SoftLayer Cloud

    Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing, Open source
ArticleID=858646
ArticleTitle=Tour the Folsom release of OpenStack
publish-date=02202013