<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet OpenStack</title>
  <updated>2013-05-22T23:41:56Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Monty Taylor</name>
    <email>mordred@inaugust.com</email>
  </author>
  <id>http://planet.openstack.org/atom.xml</id>
  <link href="http://planet.openstack.org/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet.openstack.org/" rel="alternate"/>

  <entry xml:lang="en-US">
    <id>http://www.joinfu.com/?p=436</id>
    <link href="http://www.joinfu.com/2013/05/new-launchpad-project-for-tracking-bugs-on-chef-cookbooks/" rel="alternate" type="text/html"/>
    <title>New Launchpad project for tracking bugs on Chef cookbooks</title>
    <summary>Yesterday, I created a Launchpad project to be used for tracking bugs and feature requests for the new OpenStack Chef cookbooks house on Stackforge. Please do file bugs as you encounter issue with any of the cookbooks or the example OpenStack Chef Repository. You can check out the current list of open bugs and, if [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Yesterday, I created a Launchpad project to be used for tracking bugs and feature requests for the new OpenStack Chef cookbooks house on <a href="https://github.com/stackforge">Stackforge</a>. Please do <a href="https://bugs.launchpad.net/openstack-chef/+filebug">file bugs</a> as you encounter issue with any of the cookbooks or the <a href="https://github.com/stackforge/openstack-chef-repo">example OpenStack Chef Repository</a>.
</p>
<p>
You can check out the <a href="https://bugs.launchpad.net/openstack-chef">current list of open bugs</a> and, if you’re in a contributory mood, give a shot at fixing one of them. <img alt=":)" class="wp-smiley" src="http://www.joinfu.com/wp-includes/images/smilies/icon_smile.gif"/>
</p>
<p>
Keep in mind that when you push code to Gerrit for a review, you can let Gerrit know that your patch fixes a bug by putting in a simple tag in the commit message:</p>
<pre>fixes: lp XXXXXX
</pre>
<p>where XXXXXX is simply the bug number on Launchpad.
</p>
<p>
When Gerrit sees the above tag pattern, it will automatically mark the bug as <em>In Progress</em> and assign the job to whomever submitted the patch to Gerrit.
</p>
<p>
When your patch lands on the targeted branch, Gerrit will automatically mark the bug as <em>Fix Released</em>.</p></div>
    </content>
    <updated>2013-05-22T20:05:15Z</updated>
    <category term="Chef"/>
    <category term="openstack"/>
    <category term="Ruby"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2013-05-22T20:10:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://rafstack.tumblr.com/post/51073919838</id>
    <link href="http://rafstack.tumblr.com/post/51073919838" rel="alternate" type="text/html"/>
    <title>OpenStack Board of Directors Talks: Episode 10 with Joseph George, Director of Product Strategy of Dell’s Revolutionary Solutions Team</title>
    <summary>Learn firsthand about OpenStack, its challenges and opportunities, market adoption and Dell’s...</summary>
    <updated>2013-05-22T15:36:00Z</updated>
    <category term="OpenStack"/>
    <category term="Dell"/>
    <category term="Crowbar"/>
    <source>
      <id>http://rafstack.tumblr.com/</id>
      <author>
        <name>Dell TechCenter</name>
      </author>
      <link href="http://tumblr.superfeedr.com/" rel="hub" type="text/html"/>
      <link href="http://rafstack.tumblr.com/" rel="alternate" type="text/html"/>
      <link href="http://rafstack.tumblr.com/rss" rel="self" type="application/rss+xml"/>
      <subtitle>I work with DELL Inc. as Global Community &amp; Content Manager for OpenStack and Hadoop. This blog contains OpenStack related posts I write for Dell TechCenter. www.delltechcenter.com Enjoy reading!</subtitle>
      <title>RafStack: Rafael's OpenStack Blog</title>
      <updated>2013-05-22T23:41:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="fr-FR">
    <id>http://www.enovance.com/?p=5685</id>
    <link href="http://www.enovance.com/fr/blog/5685/the-absolute-minimum-to-get-you-started-with-vagrant" rel="alternate" type="text/html"/>
    <title>The absolute minimum to get you started with Vagrant</title>
    <summary>Vagrant is a tool that allows the user to spawn, launch, halt and manage multiple Virtual Machines easily. It has been described as « a Virtualbox CLI on steroids ». Here’s a list of commands that would help any newcomer to Vagrant to be productive quickly. This is not meant to be exhaustive. For (a lot) [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p style="text-align: justify;"> </p>
<p style="text-align: justify;"><a href="http://www.vagrantup.com/">Vagrant</a> is a tool that allows the user to spawn, launch, halt and manage multiple Virtual Machines easily. It has been described as « a Virtualbox CLI on steroids ». Here’s a list of commands that would help any newcomer to Vagrant to be productive quickly. This is not meant to be exhaustive. For (a lot) more, check out <a href="http://docs.vagrantup.com/v2/">the official doc</a></p>
<h2 style="text-align: justify;">Boxes</h2>
<p style="text-align: justify;">Boxes are images Vagrant uses to create VMs. You can look for boxes online or pass them around on a network.</p>
<h3 style="text-align: justify;">To add a box</h3>
<p style="text-align: justify;">You can find some boxes on <a href="http://www.vagrantbox.es/">Vagrantbox.es</a></p>
<p style="text-align: justify;"> </p>
<pre>$ vagrant box add mynewbox http://...box
</pre>
<h4 style="text-align: justify;">Or a box that you have locally</h4>
<pre>$ vagrant box add mynewbox /path/to/.../...box
</pre>
<h3 style="text-align: justify;">To list the existing boxes</h3>
<pre>$ vagrant box list
</pre>
<h2 style="text-align: justify;">Vagrantfiles</h2>
<p style="text-align: justify;">A Vagrantfile describes the network your building. When executing a command, vagrant will look for a file named « Vagrantfile » in the current directory. You can learn how to write complex Vagrantfiles in the official documentation. Here’s the simplest example</p>
<h3 style="text-align: justify;">Init file</h3>
<pre>$ vagrant init
$ ls 
Vagrantfile
</pre>
<p style="text-align: justify;">This command has created a minimal Vagrantfile. Modify it so that it includes your selected box</p>
<p style="text-align: justify;"> </p>
<pre>$ grep -Ev '^ *(#|$)' Vagrantfile
Vagrant::Config.run do |config|
  config.vm.box = "mynewbox"
end
</pre>
<pre> </pre>
<p style="text-align: justify;">This configuration defines one machine based on mynewbox (it will be called « default »). It will use default values for everything else.</p>
<h3 style="text-align: justify;">Status machine</h3>
<pre>$ vagrant status
Current VM states:

default                  not created

The environment has not yet been created. Run `vagrant up` to
create the environment.
</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Other statuses include:</p>
<ul style="text-align: justify;">
<li>poweroff</li>
<li>running</li>
</ul>
<p style="text-align: justify;">Status is particularly useful when you have several machines in a Vagrantfile.</p>
<h3 style="text-align: justify;">Install and run</h3>
<pre>$ vagrant up
$ vagrant status
Current VM states:

default                  running
</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">This command will start the VM. If the VM hasn’t been created or has been destroyed, it will first install the OS on the machine.</p>
<h3 style="text-align: justify;">Connect to the machine</h3>
<pre>$ vagrant ssh
</pre>
<p style="text-align: justify;">ssh is activated by default.</p>
<ul style="text-align: justify;">
<li>Username: vagrant</li>
<li>Password: vagrant</li>
<li>sudo: enabled</li>
</ul>
<h3 style="text-align: justify;">File sharing</h3>
<p style="text-align: justify;">By default, Vagrant automatically maps the current directory to the /vagrant directory in the guest machine. Files are instantly synchronized.</p>
<h3 style="text-align: justify;">Halt a machine</h3>
<pre>$ vagrant halt
</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Use this command to put a machine in the ‘poweroff’ status. It will boot into the exact same state next time you run ‘vagrant up’</p>
<h3 style="text-align: justify;">Destroy a machine</h3>
<pre>$ vagrant destroy
</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">This command will completely destroy the machine.</p>
<h2 style="text-align: justify;">Multiple machines</h2>
<h3 style="text-align: justify;">Vagrantfiles</h3>
<p style="text-align: justify;">It is possible to define more than one machine in a Vagrantfile. Like this:</p>
<p style="text-align: justify;"> </p>
<pre>Vagrant::Config.run do |env_config|
  env_config.vm.define "swift1" do |config|
    config.vm.box = "ub1204"
    config.vm.network :hostonly, "192.168.1.10"
  end

  env_config.vm.define "swift2" do |config|
    config.vm.box = "ub1204"
    config.vm.network :hostonly, "192.168.2.10"
  end

  env_config.vm.define "rgw" do |config|
    config.vm.box = "ceph"
    config.vm.network :hostonly, "192.168.251.100"
  end
end
</pre>
<h3 style="text-align: justify;">vagrant commands</h3>
<p style="text-align: justify;">When you have more than one machine defined in your Vagrantfile, certain commands like « vagrant ssh » are ambiguous. Two things to keep in mind:</p>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">Append one or more machine names</h4>
<pre>$ vagrant up swift1 swift2 keystone
</pre>
<h4 style="text-align: justify;">No machine name will mean all (when applicable)</h4>
<p style="text-align: justify;">« vagrant up » will execute for every machine defined, but « vagrant ssh » will throw an error.</p>
<h2 style="text-align: justify;">Networking</h2>
<h3 style="text-align: justify;">10.0.2.15</h3>
<p style="text-align: justify;">By default, vagrant will create an interface eth0 in each machine and assign it IP 10.0.2.15. It will use this interface for communication with vagrant. I find it easier to avoid using this interface for hosting my services.</p>
<h3 style="text-align: justify;">Add an interface</h3>
<p style="text-align: justify;">Here’s how we can define an aditional interface for a machine:</p>
<p style="text-align: justify;"> </p>
<pre>$ grep -Ev '^ *(#|$)' Vagrantfile

Vagrant::Config.run do |config|
  config.vm.box = "base"
  config.vm.network :hostonly, "192.168.1.10"
end
</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">This has defined a host-only interface. This is taken from <a>the official Virtualbox documentation</a>: </p>
<h3>Host-only networking</h3>
<p>This can be used to create a network containing the host and a set of virtual machines, without the need for the host’s physical network interface. Instead, a virtual network interface (similar to a loopback interface) is created on the host, providing connectivity among virtual machines and the host.</p></div>
    </content>
    <updated>2013-05-22T15:13:44Z</updated>
    <category term="English"/>
    <category term="How to"/>
    <category term="vagrant"/>
    <author>
      <name>Joe</name>
    </author>
    <source>
      <id>http://www.enovance.com</id>
      <link href="http://www.enovance.com/feed?category=openstackdev" rel="self" type="application/atom+xml"/>
      <link href="http://www.enovance.com" rel="alternate" type="text/html"/>
      <subtitle>Cloud &amp; Managed Services Provider</subtitle>
      <title>eNovance</title>
      <updated>2013-05-22T20:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://russellbryantnet.wordpress.com/?p=350</id>
    <link href="http://russellbryantnet.wordpress.com/2013/05/21/availability-zones-and-host-aggregates-in-openstack-compute-nova/" rel="alternate" type="text/html"/>
    <title>Availability Zones and Host Aggregates in OpenStack Compute (Nova)</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Confusion around Host Aggregates and Availabaility Zones in Nova seems to be very common. In this post I’ll attempt to show how each are used. All information in this post is based on the way things work in the Grizzly version of Nova. First, go ahead and forget everything you know about things called Availability […]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=russellbryantnet.wordpress.com&amp;blog=35218887&amp;post=350&amp;subd=russellbryantnet&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Confusion around Host Aggregates and Availabaility Zones in Nova seems to be very common. In this post I’ll attempt to show how each are used. All information in this post is based on the way things work in the Grizzly version of Nova.</p>
<p>First, go ahead and forget everything you know about things called Availability Zones in other systems.  They are not the same thing and trying to map Nova’s concept of Availability Zones to what something else calls Availability Zones will only cause confusion.</p>
<p>The high level view is this: A host aggregate is a grouping of hosts with associated metadata.  A host can be in more than one host aggregate.  The concept of host aggregates is only exposed to cloud administrators.</p>
<p>A host aggregate may be exposed to users in the form of an availability zone. When you create a host aggregate, you have the option of providing an availability zone name. If specified, the host aggregate you have created is now available as an availability zone that can be requested.</p>
<p>Here is a tour of some commands.</p>
<p>Create a host aggregate:</p>
<pre>$ nova aggregate-create test-aggregate1
+----+-----------------+-------------------+-------+----------+
| Id | Name            | Availability Zone | Hosts | Metadata |
+----+-----------------+-------------------+-------+----------+
| 1  | test-aggregate1 | None              |       |          |
+----+-----------------+-------------------+-------+----------+
</pre>
<p>Create a host aggregate that is exposed to users as an availability zone. (<strong>This is not creating a host aggregate within an availability zone! It is creating a host aggregate that <em>is</em> the availability zone!</strong>)</p>
<pre>$ nova aggregate-create test-aggregate2 test-az
+----+-----------------+-------------------+-------+----------+
| Id | Name            | Availability Zone | Hosts | Metadata |
+----+-----------------+-------------------+-------+----------+
| 2  | test-aggregate2 | test-az           |       |          |
+----+-----------------+-------------------+-------+----------+
</pre>
<p>Add a host to a host aggregate, <code>test-aggregate2</code>. Since this host aggregate defines the availability zone <code>test-az</code>, adding a host to this aggregate makes it a part of the <code>test-az</code> availability zone.</p>
<pre>nova aggregate-add-host 2 devstack
Aggregate 2 has been successfully updated.
+----+-----------------+-------------------+---------------+------------------------------------+
| Id | Name            | Availability Zone | Hosts         | Metadata                           |
+----+-----------------+-------------------+---------------+------------------------------------+
| 2  | test-aggregate2 | test-az           | [u'devstack'] | {u'availability_zone': u'test-az'} |
+----+-----------------+-------------------+---------------+------------------------------------+
</pre>
<p>Note that the novaclient output shows the availability zone twice.  The data model on the backend only stores the availability zone in the metadata.  There is not a separate column for it.  The API returns the availability zone separately from the general list of metadata, though, since it’s a special piece of metadata.</p>
<p>Now that the <code>test-az</code> availability zone has been defined and contains one host, a user can boot an instance and request this availability zone.</p>
<pre>$ nova boot --flavor 84 --image 64d985ba-2cfa-434d-b789-06eac141c260 \
&gt; --availability-zone test-az testinstance
$ nova show testinstance
+-------------------------------------+----------------------------------------------------------------+
| Property                            | Value                                                          |
+-------------------------------------+----------------------------------------------------------------+
| status                              | BUILD                                                          |
| updated                             | 2013-05-21T19:46:06Z                                           |
| OS-EXT-STS:task_state               | spawning                                                       |
| OS-EXT-SRV-ATTR:host                | devstack                                                       |
| key_name                            | None                                                           |
| image                               | cirros-0.3.1-x86_64-uec (64d985ba-2cfa-434d-b789-06eac141c260) |
| private network                     | 10.0.0.2                                                       |
| hostId                              | f038bdf5ff35e90f0a47e08954938b16f731261da344e87ca7172d3b       |
| OS-EXT-STS:vm_state                 | building                                                       |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000002                                              |
| OS-EXT-SRV-ATTR:hypervisor_hostname | devstack                                                       |
| flavor                              | m1.micro (84)                                                  |
| id                                  | 107d332a-a351-451e-9cd8-aa251ce56006                           |
| security_groups                     | [{u'name': u'default'}]                                        |
| user_id                             | d0089a5a8f5440b587606bc9c5b2448d                               |
| name                                | testinstance                                                   |
| created                             | 2013-05-21T19:45:48Z                                           |
| tenant_id                           | 6c9cfd6c838d4c29b58049625efad798                               |
| OS-DCF:diskConfig                   | MANUAL                                                         |
| metadata                            | {}                                                             |
| accessIPv4                          |                                                                |
| accessIPv6                          |                                                                |
| progress                            | 0                                                              |
| OS-EXT-STS:power_state              | 0                                                              |
| OS-EXT-AZ:availability_zone         | test-az                                                        |
| config_drive                        |                                                                |
+-------------------------------------+----------------------------------------------------------------+
</pre>
<p>All of the examples so far show how host-aggregates provide an API driven mechanism for cloud administrators to define availability zones.  The other use case host aggregates serves is a way to tag a group of hosts with a type of capability.  When creating custom flavors, you can set a requirement for a capability.  When a request is made to boot an instance of that type, it will only consider hosts in host aggregates tagged with this capability in its metadata.</p>
<p>We can add some metadata to the original host aggregate we created that was *not* also an availability zone, <code>test-aggregate1</code>.</p>
<pre>$ nova aggregate-set-metadata 1 coolhardware=true
Aggregate 1 has been successfully updated.
+----+-----------------+-------------------+-------+----------------------------+
| Id | Name            | Availability Zone | Hosts | Metadata                   |
+----+-----------------+-------------------+-------+----------------------------+
| 1  | test-aggregate1 | None              | []    | {u'coolhardware': u'true'} |
+----+-----------------+-------------------+-------+----------------------------+
</pre>
<p>A flavor can include a set of key/value pairs called <code>extra_specs</code>.  Here’s an example of creating a flavor that will only run on hosts in an aggregate with the <code>coolhardware=true</code> metadata.</p>
<pre>$ nova flavor-create --is-public true m1.coolhardware 100 2048 20 2
+-----+-----------------+-----------+------+-----------+------+-------+-------------+-----------+
| ID  | Name            | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+-----+-----------------+-----------+------+-----------+------+-------+-------------+-----------+
| 100 | m1.coolhardware | 2048      | 20   | 0         |      | 2     | 1.0         | True      |
+-----+-----------------+-----------+------+-----------+------+-------+-------------+-----------+
$ nova flavor-key 100 set coolhardware=true
$ nova flavor-show 100
+----------------------------+----------------------------+
| Property                   | Value                      |
+----------------------------+----------------------------+
| name                       | m1.coolhardware            |
| ram                        | 2048                       |
| OS-FLV-DISABLED:disabled   | False                      |
| vcpus                      | 2                          |
| extra_specs                | {u'coolhardware': u'true'} |
| swap                       |                            |
| os-flavor-access:is_public | True                       |
| rxtx_factor                | 1.0                        |
| OS-FLV-EXT-DATA:ephemeral  | 0                          |
| disk                       | 20                         |
| id                         | 100                        |
+----------------------------+----------------------------+
</pre>
<p>Hopefully this provides some useful information on what host aggregates and availability zones are, and how they are used.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/russellbryantnet.wordpress.com/350/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/russellbryantnet.wordpress.com/350/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=russellbryantnet.wordpress.com&amp;blog=35218887&amp;post=350&amp;subd=russellbryantnet&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-21T20:43:10Z</updated>
    <category term="OpenStack"/>
    <author>
      <name>russellbryant</name>
    </author>
    <source>
      <id>http://russellbryantnet.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://russellbryantnet.wordpress.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://russellbryantnet.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://russellbryantnet.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://russellbryantnet.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Open Source Software Engineering</subtitle>
      <title>Russell Bryant » OpenStack</title>
      <updated>2013-05-22T14:20:55Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://adam.younglogic.com/?p=2672</id>
    <link href="http://adam.younglogic.com/2013/05/more-keystone-venv-notes/" rel="alternate" type="text/html"/>
    <title>Keystone venv notes</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">If you try running the unit tests, but you are missing a C library required to build a python module in the venv, you can continue building with python tools/install_venv.py Code coverage can be generated using: ./run_tests.sh -c Which will … <a href="http://adam.younglogic.com/2013/05/more-keystone-venv-notes/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you try running the unit tests, but you are missing a C library required to build a python module in the venv, you can continue building with</p>
<pre class="brush:bash"> python tools/install_venv.py
</pre>
<p>Code coverage can be generated using:</p>
<pre class="brush:bash">./run_tests.sh -c
</pre>
<p>Which will generate a report in keystone/covhtml/.  <a href="http://admiyo.fedorapeople.org/openstack/keystone/coverage/">An example one is posted here:</a></p></div>
    </content>
    <updated>2013-05-21T16:20:53Z</updated>
    <category term="Openstack"/>
    <category term="Software"/>
    <author>
      <name>Adam Young</name>
    </author>
    <source>
      <id>http://adam.younglogic.com</id>
      <link href="http://adam.younglogic.com/category/software/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://adam.younglogic.com" rel="alternate" type="text/html"/>
      <subtitle>The Notebook of a Programmer Climber Musician Ex-Soldier</subtitle>
      <title>Adam Young's Web Log » Openstack</title>
      <updated>2013-05-21T16:21:21Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://engineering.cloudscaling.com/?p=205</id>
    <link href="http://engineering.cloudscaling.com/stacker-voices-mark-mcloughlin-red-hat/" rel="alternate" type="text/html"/>
    <title>Stacker Voices: Mark McLoughlin, Red Hat</title>
    <summary>Mark McLoughlin is a principal engineer at Red Hat who’s also the company’s OpenStack technical lead. He serves on both the OpenStack Technical Committee and as individual director on the OpenStack Foundation Board of Directors.  More importantly, he’s the top committer to the Grizzly release. We spoke at the OpenStack Summit in Portland about the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p dir="ltr"><a href="http://engineering.cloudscaling.com/stacker-voices-mark-mcloughlin-red-hat/mark-mcloughlin/" rel="attachment wp-att-169"><img alt="Mark McLoughlin" class=" wp-image-169 alignleft" height="153" src="http://engineering.cloudscaling.com/wp-content/uploads/2013/04/Mark-McLoughlin-300x212.png" width="216"/></a>Mark McLoughlin is a principal engineer at Red Hat who’s also the company’s OpenStack technical lead. He serves on both the OpenStack Technical Committee and as individual director on the OpenStack Foundation Board of Directors.  More importantly, he’s the top committer to the Grizzly release.</p>
<p dir="ltr">We spoke at the OpenStack Summit in Portland about the often overlooked <a href="https://wiki.openstack.org/wiki/Oslo">Oslo (openstack-common)</a> project within OpenStack, which Mark leads. The Olso project produces a set of python libraries containing code shared by various OpenStack projects. The goal is to provide a common set of high-quality API libraries for the project, to follow a Don’t Repeat Yourself (DRY) model across projects, and to create a model for cross-project collaboration.</p>
<p dir="ltr">In the video, we discuss:</p>
<ul>
<li>
<p dir="ltr">an overview of Olso (openstack-common) and how it enables DRY and cross-project collaboration</p>
</li>
<li>
<p dir="ltr">addressing technical debt to help OpenStack move more quickly and keep up with the six-month release cycles</p>
</li>
<li>
<p dir="ltr">how the governance model for OpenStack provides a balance among the interests of users, operators and developers</p>
</li>
<li>
<p dir="ltr">brief comparison of different governance models (Gnome Foundation vs. OpenStack Foundation)</p>
</li>
<li>
<p dir="ltr">the technical meritocracy nature of OpenStack</p>
</li>
</ul>
<p> </p>
<p>Check out the video, below. Or, <a href="http://www.youtube.com/embed/2Sl7ZrB6gss" target="_blank">watch on YouTube</a>.</p>
<p>&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/2Sl7ZrB6gss" width="560"&gt;&lt;/iframe&gt;</p></div>
    </content>
    <updated>2013-05-21T14:30:15Z</updated>
    <category term="OpenStack"/>
    <category term="openstack"/>
    <author>
      <name>Randy Bias</name>
    </author>
    <source>
      <id>http://engineering.cloudscaling.com</id>
      <link href="http://engineering.cloudscaling.com" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/SimplicityScales" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Simplicity Scales</subtitle>
      <title>Cloudscaling Engineering</title>
      <updated>2013-05-21T16:07:34Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://rafstack.tumblr.com/post/50989644005</id>
    <link href="http://rafstack.tumblr.com/post/50989644005" rel="alternate" type="text/html"/>
    <title>Interview with Anne Gentle, OpenStack Technical Writer</title>
    <summary>Dell: Tell us about yourself and what you are doing?
Anne Gentle: I’m Anne Gentle, I work at...</summary>
    <updated>2013-05-21T14:16:07Z</updated>
    <category term="OpenStack"/>
    <category term="Rackspace"/>
    <source>
      <id>http://rafstack.tumblr.com/</id>
      <author>
        <name>Dell TechCenter</name>
      </author>
      <link href="http://tumblr.superfeedr.com/" rel="hub" type="text/html"/>
      <link href="http://rafstack.tumblr.com/" rel="alternate" type="text/html"/>
      <link href="http://rafstack.tumblr.com/rss" rel="self" type="application/rss+xml"/>
      <subtitle>I work with DELL Inc. as Global Community &amp; Content Manager for OpenStack and Hadoop. This blog contains OpenStack related posts I write for Dell TechCenter. www.delltechcenter.com Enjoy reading!</subtitle>
      <title>RafStack: Rafael's OpenStack Blog</title>
      <updated>2013-05-22T23:41:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://dague.net/?p=3605</id>
    <link href="http://dague.net/2013/05/20/how-an-idea-becomes-a-commit-in-openstack/" rel="alternate" type="text/html"/>
    <title>How an Idea becomes a Commit in OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">My talk from the OpenStack summit is now up on youtube, where I walked people through the process of getting your idea into OpenStack. A big part of the explanation is what’s going on behind the scenes with code reviews … <a href="http://dague.net/2013/05/20/how-an-idea-becomes-a-commit-in-openstack/">Continue reading <span class="meta-nav">→</span></a><div class="crp_related"><h3>Related Posts:</h3><ul><li><a class="crp_title" href="http://dague.net/2011/01/21/100-years-of-ibm/">100 Years of IBM</a></li><li><a class="crp_title" href="http://dague.net/2011/04/19/james-webb-increases-the-awesome/">James Webb increases the Awesome</a></li><li><a class="crp_title" href="http://dague.net/2013/02/16/software-engineering-talk-at-vassar-college/">Software Engineering Talk at Vassar College</a></li><li><a class="crp_title" href="http://dague.net/2012/06/20/avengers-intro-firefly-style/">Avengers Intro – Firefly Style</a></li><li><a class="crp_title" href="http://dague.net/2012/01/18/the-day-the-lolcats-died/">The day the LOLcats died</a></li></ul></div></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>My talk from the OpenStack summit is now up on youtube, where I walked people through the process of getting your idea into OpenStack. A big part of the explanation is what’s going on behind the scenes with code reviews and our continuous integration system.</p>
<p>&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="http://www.youtube.com/embed/3zH6yL0js1M" width="640"&gt;&lt;/iframe&gt;</p>
<p>I’m hoping it pulls away some of the mystery of the process, and provides a more gentle on ramp to everything for new contributors. I’ll probably be giving some version of this again at future events, so feedback (here or on youtube) is appreciated.</p>
<div class="crp_related"><h3>Related Posts:</h3><ul><li><a class="crp_title" href="http://dague.net/2011/01/21/100-years-of-ibm/">100 Years of IBM</a></li><li><a class="crp_title" href="http://dague.net/2011/04/19/james-webb-increases-the-awesome/">James Webb increases the Awesome</a></li><li><a class="crp_title" href="http://dague.net/2013/02/16/software-engineering-talk-at-vassar-college/">Software Engineering Talk at Vassar College</a></li><li><a class="crp_title" href="http://dague.net/2012/06/20/avengers-intro-firefly-style/">Avengers Intro – Firefly Style</a></li><li><a class="crp_title" href="http://dague.net/2012/01/18/the-day-the-lolcats-died/">The day the LOLcats died</a></li></ul></div></div>
    </content>
    <updated>2013-05-21T00:13:47Z</updated>
    <category term="OpenStack"/>
    <category term="openstack"/>
    <category term="talk"/>
    <category term="video"/>
    <author>
      <name>Sean Dague</name>
    </author>
    <source>
      <id>http://dague.net</id>
      <link href="http://dague.net/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://dague.net" rel="alternate" type="text/html"/>
      <subtitle>Various rambling thoughts from my personal corner of the internet</subtitle>
      <title>Sean's Mental Walkabout » OpenStack</title>
      <updated>2013-05-22T23:41:47Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.joinfu.com/?p=426</id>
    <link href="http://www.joinfu.com/2013/05/working-with-the-openstack-code-review-and-ci-system-chef-edition/" rel="alternate" type="text/html"/>
    <title>Working with the OpenStack Code Review and CI system – Chef Edition</title>
    <summary>For too long, the state of the OpenStack Chef world had been one of duplicative effort, endless forks of Chef cookbooks, and little integration with how many of the OpenStack projects choose to control source code and integration testing. Recently, however, the Chef + OpenStack community has been getting its proverbial act together. Folks from [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
For too long, the state of the OpenStack Chef world had been one of duplicative effort, endless forks of Chef cookbooks, and little integration with how many of the OpenStack projects choose to control source code and integration testing. Recently, however, the Chef + OpenStack community has been getting its proverbial act together. Folks from lots of companies have come together and pushed to align efforts to produce a set of well-documented, flexible, but focused Chef cookbooks that install and configure OpenStack services.
</p>
<p>
My sincere thanks go out to the individuals who have helped to make progress in the last couple weeks, the individuals on the upstream openstack.org continuous integration team, and of course, the many authors of cookbooks whose code and work is being merged together.
</p>
<p>
OK, so what’s happened?
</p>
<h2>StackForge now hosting a set of Chef cookbooks for OpenStack</h2>
<p>
Individual cookbooks for each integrated OpenStack project have been created in the <a href="https://github.com/stackforge/">StackForge GitHub</a> organization. Each cookbook name is prefixed with <strong>cookbook-openstack-</strong> followed by the OpenStack service name (not the project code name):</p>
<ul>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-identity">Keystone cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-compute">Nova cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-image">Glance cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-object-storage">Swift cookbook</a></strong>: </li>
<li><em>(the project formerly known as)</em> <strong><a href="https://github.com/stackforge/cookbook-openstack-network">Quantum cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-block-storage">Cinder cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-dashboard">Horizon cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-metering">Ceilometer cookbook</a></strong></li>
</ul>
<p>Note that we have not yet created the cookbook for Heat, but that will be coming in the Havana timeframe, for sure. Also note that the Ceilometer (metering) cookbook is empty right now. We’re in the process of pulling the ceilometer recipes out of the compute cookbook into a separate cookbook.</p>
<p><strong>UPDATE</strong>: The <strong><a href="https://github.com/stackforge/cookbook-openstack-orchestration">Heat cookbook repository</a></strong> is now up on Stackforge.
</p>
<p>
In addition to the OpenStack project cookbooks listed above, there are three other related cookbooks:</p>
<ul>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-common">Common library cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-ops-database">Example database setup wrapper cookbook</a></strong></li>
<li><strong><a href="https://github.com/stackforge/cookbook-openstack-ops-messaging">Example message queue setup wrapper cookbook</a></strong></li>
</ul>
<p>
Finally, there will be another repository called <strong>openstack-chef-repo</strong> that will contain example Chef roles, databags and documentation showing how all the OpenStack and supporting cookbooks are tied together to create an OpenStack deployment.
</p>
<p>
<strong>UPDATE</strong>: The <strong><a href="https://github.com/stackforge/openstack-chef-repo">OpenStack Chef Repository</a></strong> is now up on Stackforge.
</p>
<h3>Code in cookbooks gated by Gerrit like any other OpenStack project</h3>
<p>
The biggest advantage of hosting all these Chef cookbooks on the StackForge GitHub repository is the easy integration with the upstream continuous integration system. The upstream CI team has built a metric crap-ton (technical term) of automation code that enabled us to quickly have Gerrit managing the patch queues and code reviews for all these cookbook repositories as well as have each repository guarded by a set of gate jobs that run linter and unit tests against the cookbooks.
</p>
<p>
The rest of this blog post explains how to use the development and continuous integration systems when working on the OpenStack Chef cookbooks housed in Stackforge.
</p>
<h2>Prepare to develop on a cookbook</h2>
<p>
OK, so you want to start working on one of the OpenStack Chef cookbooks? Great! The first thing you need to do is clone the appropriate Git repository containing the cookbook code and set up your Gerrit credentials. Here is the code to do that:
</p>
<pre>git clone git@github.com:stackforge/cookbook-openstack-$SERVICE
cd cookbook-openstack-$SERVICE
git review -s
</pre>
<p>
Of course, replace <code>$SERVICE</code> above with one of <code>common</code>, <code>compute</code>, <code>identity</code>, <code>image</code>, <code>block-storage</code>, <code>object-storage</code>, <code>network</code>, <code>metering</code>, or <code>dashboard</code>. What that will do is clone the <em>upstream</em> Stackforge repository for the corresponding cookbook to your local machine, change directory into that clone’d repository, and set up a git remote called “gerrit” pointing to the review.openstack.org Gerrit system.
</p>
<p>
If everything was successful, you should see something like this:
</p>
<pre>jpipes@uberbox:~/gerrit-tut$ git clone git@github.com:stackforge/cookbook-openstack-common
Cloning into 'cookbook-openstack-common'...
remote: Counting objects: 506, done.
remote: Compressing objects: 100% (168/168), done.
remote: Total 506 (delta 246), reused 503 (delta 243)
Receiving objects: 100% (506/506), 81.97 KiB, done.
Resolving deltas: 100% (246/246), done.
jpipes@uberbox:~/gerrit-tut$ cd cookbook-openstack-common/
jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git review -s
Creating a git remote called "gerrit" that maps to:
	ssh://jaypipes@review.openstack.org:29418/stackforge/cookbook-openstack-common.git
</pre>
<p>
Repeat the above for each cookbook you wish to clone and work on locally, or simply execute this to clone them all:
</p>
<pre>for i in common compute identity image block-storage object-storage network metering dashboard;\
do git clone git@github.com:stackforge/cookbook-openstack-$i; cd cookbook-openstack-$i; git review -s; cd ../;\
done
</pre>
<h2>Start to develop on a cookbook</h2>
<p>
Now that you have git clone’d the upstream cookbook repository and set up your Gerrit remote properly, you can begin coding on the cookbook. Remember, however, that you should <em><strong>never make changes in your local “master” branch</strong></em>. <em>Always</em> work in a local <em><a href="http://www.reigndesign.com/blog/creating-and-deleting-topic-branches-with-git-and-github/">topic branch</a></em>. This allows you to work on a branch of code separately from the local master branch you will use to bring in changes from other developers.
</p>
<p>
Create a new topic branch like so:
</p>
<pre>git checkout -b &lt;TOPIC_NAME&gt;
</pre>
<p>
Here is an example of what you can expect to see:
</p>
<pre>jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git checkout -b tut-example
Switched to a new branch 'tut-example'
</pre>
<p>
Once you are checked out into your topic branch, you can now add, edit, delete, and move files around as you wish. When you have made the changes you want to make, you then need to commit your changes to the working tree in source control.
</p>
<p>
<strong>IMPORTANT NOTE:</strong>: If you created any new files while working in your branch, you will need to tell Git about those new files <em>before you commit</em>. An easy way to check if you’ve added any new files that should be added to Git source control is to always call <code>git status</code> before doing your commit. <code>git status</code> will tell you if there are any untracked files in your working tree that you may need to add to Git:
</p>
<pre>jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ touch something_new.txt
jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git status
# On branch tut-example
# Untracked files:
#   (use "git add &lt;file&gt;..." to include in what will be committed)
#
#	something_new.txt
nothing added to commit but untracked files present (use "git add" to track)
</pre>
<p>
As the note shows, you use the <code>git add</code> command to add the untracked file to source control:
</p>
<pre>jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git status
# On branch tut-example
# Changes to be committed:
#   (use "git reset HEAD &lt;file&gt;..." to unstage)
#
#	new file:   something_new.txt
#
</pre>
<p>
If you make changes to files, they will show up in <code>git status</code> as changed files, as shown here:
</p>
<pre>jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ vi README.md 
jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git status
# On branch tut-example
# Changes to be committed:
#   (use "git reset HEAD &lt;file&gt;..." to unstage)
#
#	new file:   something_new.txt
#
# Changes not staged for commit:
#   (use "git add &lt;file&gt;..." to update what will be committed)
#   (use "git checkout -- &lt;file&gt;..." to discard changes in working directory)
#
#	modified:   README.md
#
</pre>
<p>
As you can see, I edited the <code>README.md</code> file, and the call to <code>git status</code> shows that file as modified. If you want to review the changes you made, use the <code>git diff</code> command:
</p>
<pre>jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git diff
diff --git a/README.md b/README.md
index 4fbbd57..e197d3b 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,8 @@ of all the settable attributes for this cookbook.
 
 Note that all attributes are in the `default["openstack"]` "namespace"
 
+TODO(jaypipes): Should we list all the attributes in the README?
+
 Libraries
 =========
</pre>
<p>
If you are happy with the changes, you’re now ready to commit those changes to source control. Call <code>git commit</code>, like so:
</p>
<pre>git commit -a
</pre>
<p>
This will open up your text editor and present you with an area to write your commit message describing the contents of your patch. Commit messages should be properly formatted and abide by the <a href="https://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages">upstream conventions</a>. Feel free to read that link, but here is a brief rundown of stuff to keep in mind:</p>
<ul>
<li>Make the first line of the commit message 50 chars or less</li>
<li>Separate the first line from the rest of the commit message with a blank newline</li>
<li>Make the commit message descriptive of what the patch is and what the motivation for the patch was</li>
<li>Do <strong>NOT</strong> make the commit message into a list of the things in the patch you changed in each revision — we can already see what is contained in the patch</li>
</ul>
<p>
Save and close your editor to finalize the commit. Once successfully committed, you now need to push your changes to the Gerrit code review and patch management system on <code>review.openstack.org</code>. You do this using a call to <code>git review</code>.</p>
<p>
When you issue a call to <code>git review</code> for any of the cookbooks, a patch review is created in Gerrit. Behind the scenes, the git review plugin is simply doing the call for you to git push to the Gerrit remote. You can always see what git review is doing by passing the -v flag, like so:
</p>
<pre>jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git commit -a
[tut-example 66f844a] Simple patch for tutorial -- please IGNORE
 1 file changed, 2 insertions(+)
 create mode 100644 something_new.txt
jpipes@uberbox:~/gerrit-tut/cookbook-openstack-common$ git review -v
2013-05-20 12:48:54.333823 Running: git log --color=never --oneline HEAD^1..HEAD
2013-05-20 12:48:54.337044 Running: git remote
2013-05-20 12:48:54.339673 Running: git branch -a --color=never
2013-05-20 12:48:54.342580 Running: git rev-parse --show-toplevel --git-dir
2013-05-20 12:48:54.345139 Running: git remote update gerrit
Fetching gerrit
2013-05-20 12:48:55.475616 Running: git rebase -i remotes/gerrit/master
2013-05-20 12:48:55.616412 Running: git reset --hard ORIG_HEAD
2013-05-20 12:48:55.620552 Running: git config --get color.ui
2013-05-20 12:48:55.623098 Running: git log --color=always --decorate --oneline HEAD --not remotes/gerrit/master --
2013-05-20 12:48:55.626745 Running: git branch --color=never
2013-05-20 12:48:55.629703 Running: git log HEAD^1..HEAD
Using local branch name "tut-example" for the topic of the change submitted
2013-05-20 12:48:55.634665 Running: git push gerrit HEAD:refs/publish/master/tut-example
remote: Resolving deltas: 100% (2/2)
remote: Processing changes: new: 1, done    
remote: 
remote: New Changes:
remote:   https://review.openstack.org/29797
remote: 
To ssh://jaypipes@review.openstack.org:29418/stackforge/cookbook-openstack-common.git
 * [new branch]      HEAD -&gt; refs/publish/master/tut-example
2013-05-20 12:48:56.775939 Running: git rev-parse --show-toplevel --git-dir
</pre>
<p>
As you can see in the above output, a new patch review was created at the location https://review.openstack.org/29797. You can go to that URL and see the patch review, shown here before any comments or reviews have been made on the patch.
</p>
<p><a href="http://www.joinfu.com/wp-content/uploads/2013/05/gerrit-review-29797.png"><img alt="gerrit-review-29797" class="aligncenter size-full wp-image-427" height="750" src="http://www.joinfu.com/wp-content/uploads/2013/05/gerrit-review-29797.png" width="991"/></a></p>
<h2>Reviewing patches with Gerrit</h2>
<p>
Gerrit has three separate levels of reviews: <em>Verify</em>, <em>Code-Review</em>, and <em>Approve</em>.
</p>
<h3>The Verify (V) review level</h3>
<p>
The Verify level is limited to the Jenkins Gerrit user, which runs the automated tests that protect each cookbook repository’s master branch. These automated tests are known as <strong>gate tests</strong>.
</p>
<p>
When you push code to Gerrit, there are a set of automatic tests that are run against your code by <a href="https://jenkins.openstack.org/">Jenkins</a>. Jenkins is a continuous integration job system that the upstream OpenStack CI team has integrated into Gerrit so that projects managed by Gerrit may have a series of automated check jobs run against proposed patches to the project. Below, you can see that the Jenkins user in Gerrit has already executed two jobs — <strong><a href="https://jenkins.openstack.org/view/All/job/gate-cookbook-openstack-common-chef-lint/">gate-cookbook-openstack-common-chef-lint</a></strong> and <strong><a href="https://jenkins.openstack.org/view/All/job/gate-cookbook-openstack-common-chef-unit/">gate-cookbook-openstack-common-chef-unit</a></strong> — against the proposed code changes. The jobs (expectedly) both pass, as I haven’t actually changed anything in the code, only added a blank file and added a line to the README file.
</p>
<p><a href="http://www.joinfu.com/wp-content/uploads/2013/05/jenkins-jobs-29797.png"><img alt="jenkins-jobs-29797" class="aligncenter size-full wp-image-428" height="835" src="http://www.joinfu.com/wp-content/uploads/2013/05/jenkins-jobs-29797.png" width="896"/></a></p>
<p>
<em>Curious about how those gate jobs are set up</em>? Check out the <a href="https://github.com/openstack-infra/config">github.com openstack-infra/config project</a>. Hint: look at <a href="https://github.com/openstack-infra/config/blob/master/modules/openstack_project/files/jenkins_job_builder/config/macros.yaml#L79">these</a> <a href="https://github.com/openstack-infra/config/blob/master/modules/openstack_project/files/jenkins_job_builder/config/chef-jobs.yaml">two</a> files.
</p>
<p>
If the Jenkins jobs fail, you will see Jenkins issue a <strong color="red">-1 </strong> in the V column in the patch review. Any -1 from Jenkins as a result of a failed gate test will prevent the patch from being merged into the target branch, regardless of the reviews of any human.
</p>
<h3>The Code-Review (R) review level</h3>
<p>
Anyone who is logged in to Gerrit can review any proposed patch in Gerrit. To log in to Gerrit, click the “Sign In” link in the top right corner and log in using the Launchpad Single-Signon service. <em>Note</em>: This requires you to have an account on Launchpad.
</p>
<p>
Once logged in, you will see a “Review” button on each patch in the patchset. You can see this Review button in the images above. If you were the one that pushed the commit, you will also see buttons for “Abandon”, “Work in Progress”, and “Rebase Change”. The “Abandon” button simply lets you mark the patchset as abandoned and gets the patch off of the review radar. “Work in Progress” lets you mark the patchset as not ready for reviews, and “Rebase Change” is generally best left alone unless you know what you’re doing. <img alt=";)" class="wp-smiley" src="http://www.joinfu.com/wp-includes/images/smilies/icon_wink.gif"/>
</p>
<p>
Each file (including the commit message itself) has a corresponding link that you can view the diff of that file and add inline comments similar to how GitHub pull requests allow inline commenting. Simply double click directly below the line you wish to comment on, and a box for your comments will appear, as shown below:
</p>
<p><a href="http://www.joinfu.com/wp-content/uploads/2013/05/inline-review-29797.png"><img alt="inline-review-29797" class="aligncenter size-full wp-image-430" height="448" src="http://www.joinfu.com/wp-content/uploads/2013/05/inline-review-29797.png" width="897"/></a></p>
<p>
<strong>IMPORTANT NOTE</strong>: Unlike GitHub inline commenting on pull requests, your inline comments on Gerrit reviews are NOT viewable by others until you finalize your review by clicking the “Review” button. Your comments will appear in red as “Draft” comments on the main page of the patch review, as shown below:
</p>
<p><a href="http://www.joinfu.com/wp-content/uploads/2013/05/inline-draft-29797.png"><img alt="inline-draft-29797" class="aligncenter size-full wp-image-429" height="501" src="http://www.joinfu.com/wp-content/uploads/2013/05/inline-draft-29797.png" width="764"/></a></p>
<p>
To put in a review for the patch, click the “Review” button. You will see options for:</p>
<ul>
<li><strong>+1 Looks good to me, but someone else must approve</strong></li>
<li><strong>+0 No score</strong></li>
<li><strong>-1 I would prefer you didn’t merge this</strong></li>
</ul>
<p>If you are a core reviewer, in addition to the above three options, you will also see:</p>
<ul>
<li><strong>+2 Looks good to me (core reviewer)</strong></li>
<li><strong>-2 Do Not Merge</strong></li>
</ul>
<p>
There is also a comment are for you to put your review comments, which is directly above an area that shows all the inline comments you have made:
</p>
<p><a href="http://www.joinfu.com/wp-content/uploads/2013/05/review-29797.png"><img alt="review-29797" class="aligncenter size-full wp-image-431" height="561" src="http://www.joinfu.com/wp-content/uploads/2013/05/review-29797.png" width="475"/></a></p>
<p>
After selecting the review +/- that matches your overall thoughts on the patch, and entering any comment, click the “Publish Comments” button, and your review will show in the comments of the patch, as shown below:
</p>
<p><a href="http://www.joinfu.com/wp-content/uploads/2013/05/reviewed-29797.png"><img alt="reviewed-29797" class="aligncenter size-full wp-image-432" height="621" src="http://www.joinfu.com/wp-content/uploads/2013/05/reviewed-29797.png" width="723"/></a></p>
<h3>The Approve (A) review level</h3>
<p>
Members of the core review team also see a separate area in the review screen for the Approve (A) review level. This level tells Gerrit to either proceed with the merge of the patch into the target branch (+1 Approve) or to wait (0 No Score).
</p>
<p>
The general rule of thumb is that core reviewers should not hit +1 Approve until 2 or more core reviewers (can include the individual doing the +1 Approve) have added a +2 (R) to the patch in reviews. This rule is subject to the discretion of the core reviewer for trivial changes like typo fixes, etc.
</p>
<h2>Summary</h2>
<p>
I hope this tutorial has been a help for those new to the Gerrit and Jenkins integration used by the OpenStack upstream projects. Contributing to the Chef OpenStack cookbooks should be no different than contributing to the upstream OpenStack projects now, and additional gate tests — including full integration test runs using Vagrant or even a multi-node deployment — are on our TODO radar. Please sign up on the <a href="https://groups.google.com/forum/?fromgroups=#!forum/opscode-chef-openstack">OpenStack Chef mailing list</a> if you haven’t already. We look forward to your contributions!</p></div>
    </content>
    <updated>2013-05-20T17:37:29Z</updated>
    <category term="Chef"/>
    <category term="Git"/>
    <category term="openstack"/>
    <category term="Python"/>
    <category term="Ruby"/>
    <author>
      <name>jaypipes</name>
    </author>
    <source>
      <id>http://www.joinfu.com</id>
      <link href="http://www.joinfu.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.joinfu.com" rel="alternate" type="text/html"/>
      <subtitle>the art of sql</subtitle>
      <title>join-fu! » openstack</title>
      <updated>2013-05-22T20:10:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="fr-FR">
    <id>http://www.enovance.com/?p=5670</id>
    <link href="http://www.enovance.com/fr/blog/5670/how-to-create-specific-nova-flavors-for-tenants" rel="alternate" type="text/html"/>
    <title>How to create specific Nova flavors for tenants</title>
    <summary>In the case of a private Cloud, we recently had to create specific Nova flavors for one tenant, and didn’t want to expose this flavor to all tenants.   First of all, you need to know that by default only the « admin » tenant can manage flavors because of default policy in Nova : "compute_extension:flavormanage": "rule:admin_api" [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p style="text-align: justify;">In the case of a private Cloud, we recently had to create specific Nova flavors for one tenant, and didn’t want to expose this flavor to all tenants.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">First of all, you need to know that by default only the « <em>admin</em> » tenant can manage flavors because of default policy in Nova :</p>
<pre>"compute_extension:flavormanage": "rule:admin_api"</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">If you want to let the possibility to all tenants to create flavors, you can delete the rule to have :</p>
<pre>"compute_extension:flavormanage": ""<br/><br/></pre>
<p style="text-align: justify;">Now we are going to create a flavor :</p>
<pre>nova flavor-create flavor-name flavor-ID RAM-in-MB root-disk-in-GB VCPUs-number </pre>
<pre>--ephemeral ephemeral-disk-in-GB --swap swap-in-MB --is-public False</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><em>Example :</em></p>
<pre>nova flavor-create enocloud-xxl 50 32 200 8 --is-public False<br/><br/></pre>
<p style="text-align: justify;">The next step is to associate the flavor to the tenant :</p>
<pre>nova flavor-access-add &lt;flavor-id&gt; &lt;tenant-id&gt;</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><em>Example :</em></p>
<pre>nova flavor-access-add 50 4f1b0b9ce3354a439db8ef10cf456d6f</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Hope that helps !</p></div>
    </content>
    <updated>2013-05-20T14:44:53Z</updated>
    <category term="How to"/>
    <category term="OpenStack/Dev"/>
    <category term="nova"/>
    <category term="openstack"/>
    <author>
      <name>Emilien</name>
    </author>
    <source>
      <id>http://www.enovance.com</id>
      <link href="http://www.enovance.com/feed?category=openstackdev" rel="self" type="application/atom+xml"/>
      <link href="http://www.enovance.com" rel="alternate" type="text/html"/>
      <subtitle>Cloud &amp; Managed Services Provider</subtitle>
      <title>eNovance</title>
      <updated>2013-05-22T20:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.mirantis.com/?p=497010</id>
    <link href="http://www.mirantis.com/blog/openstack-project-technical-lead-interview-series-2-monty-taylor-openstack-cicontinuous-integration-project/" rel="alternate" type="text/html"/>
    <title>OpenStack Project Technical Lead Interview Series #2: Monty Taylor, OpenStack CI(Continuous Integration) Project</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Here’s the second in our series of interviews with OpenStack Project Technical Leads on the Mirantis blog. Our goal is to educate the broader tech community and help people understand how they can contribute to and benefit from OpenStack. Naturally, these are the opinions of the interviewee, not of Mirantis. We’ve edited the interview for [...]</p><p>The post <a href="http://www.mirantis.com/blog/openstack-project-technical-lead-interview-series-2-monty-taylor-openstack-cicontinuous-integration-project/">OpenStack Project Technical Lead Interview Series #2: Monty Taylor, OpenStack CI(Continuous Integration) Project</a> appeared first on <a href="http://www.mirantis.com">Mirantis</a>.</p><img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=197500&amp;k=14&amp;bu=http%3A%2F%2Fwww.mirantis.com&amp;r=http%3A%2F%2Fwww.mirantis.com%2Fblog%2Fopenstack-project-technical-lead-interview-series-2-monty-taylor-openstack-cicontinuous-integration-project%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://www.mirantis.com/feed/"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Here’s the second in our series of interviews with OpenStack Project Technical Leads on the Mirantis blog. Our goal is to educate the broader tech community and help people understand how they can contribute to and benefit from OpenStack. Naturally, these are the opinions of the interviewee, not of Mirantis. We’ve edited the interview for [...]</p><p>The post <a href="http://www.mirantis.com/blog/openstack-project-technical-lead-interview-series-2-monty-taylor-openstack-cicontinuous-integration-project/">OpenStack Project Technical Lead Interview Series #2: Monty Taylor, OpenStack CI(Continuous Integration) Project</a> appeared first on <a href="http://www.mirantis.com">Mirantis</a>.</p><img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=197500&amp;k=14&amp;bu=http%3A%2F%2Fwww.mirantis.com&amp;r=http%3A%2F%2Fwww.mirantis.com%2Fblog%2Fopenstack-project-technical-lead-interview-series-2-monty-taylor-openstack-cicontinuous-integration-project%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://www.mirantis.com/feed/"/></div>
    </content>
    <updated>2013-05-20T07:01:23Z</updated>
    <category term="Blog"/>
    <author>
      <name>Admin</name>
    </author>
    <source>
      <id>http://www.mirantis.com</id>
      <link href="http://www.mirantis.com/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mirantis.com" rel="alternate" type="text/html"/>
      <subtitle>Mirantis Inc.  - OpenStack Experts On-Demand. Openstack outsourcing and consulting. Openstack engineers and development for openstack software.</subtitle>
      <title>Mirantis » Blog</title>
      <updated>2013-05-22T23:21:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dachary.org/?p=1991</id>
    <link href="http://dachary.org/?p=1991" rel="alternate" type="text/html"/>
    <title>Virtualizing legacy hardware in OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">A five years old hardware is being decommissioned and hosts fourteen vservers on a Debian GNU/Linux lenny running a 2.6.26-2-vserver-686-bigmem linux kernel. The April non profit relies on these services (mediawiki, pad, mumble, etc. ) for the benefit of its … <a href="http://dachary.org/?p=1991">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A five years old hardware is being decommissioned and hosts fourteen <a href="http://linux-vserver.org/">vservers</a> on a <a href="http://www.debian.org/releases/lenny/">Debian GNU/Linux lenny</a> running a <b>2.6.26-2-vserver-686-bigmem</b> linux kernel. The <a href="http://april.org/">April</a> non profit relies on these services (mediawiki, pad, mumble, etc. ) for the benefit of its 5,000 members and many working groups. Instead of migrating each vserver individually to an OpenStack instance, it was decided that the vserver host would be copied over to an OpenStack instance.<br/>
The old hardware has 8GB of RAM, 150GB disk and a dual Xeon totaling 8 cores. The munin statistics show that no additional memory is needed, the disk is half full and an average of one core is used at all times. A 8GB RAM, 150GB disk and dual core openstack instance is prepared. The instance will be booted from a 150GB volume placed <a href="http://dachary.org/?p=1082">on the same hardware</a> to get maximum disk I/O speed.<br/>
After the volume is created, it is mounted from the OpenStack node and the disk of the old machine is rsync’ed to it. It is then booted after modifying a few files such as fstab. The OpenStack node is in the same rack and the same switch as the old hardware. The IP is removed from the interface of the old hardware and it is bound to the OpenStack instance. Because it is running on nova-network with multi-host activated, it is bound to the interface of the OpenStack node which can take over immediately. The public interface of the node is set as an ARP proxy to advertise the bridge where the instance is connected. The security group of the instance are disabled ( by opening all protocols and ports ) because a firewall is running in the instance.<br/>
<span id="more-1991"/></p>
<h3>Collocated hardware</h3>
<p>The OpenStack cluster used to migrate the legacy hardware is configured to allow the collocation of instances and volumes <a href="http://dachary.org/?p=1082">on the same hardware</a>. One OpenStack availability zone groups hardware located in the same rack and uses the same switch as the legacy hardware. This allows for a migration that does not involve changing the IP of the machine. If the OpenStack nodes were located in a different <a href="http://en.wikipedia.org/wiki/Autonomous_System_%28Internet%29">autonomous system</a>, a DNS change would be necessary and require additional preparations.</p>
<h3>Maintenance LAN connection</h3>
<p>The primary IP address used by the legacy hardware is also used by a number of services provided by the vservers it hosts. Moving this IP address to the OpenStack instance would mean losing access to the legacy hardware, without any hope to fallback, should something unexpected happen. Because both machines involved in the migration are connected to the same switch and use the same VLAN, an additional IP address is manually added to preserve communications:</p>
<pre>ns1 : ip addr add 10.222.222.1/24 dev eth0
yopo : ip addr add 10.222.222.2/24 dev eth0
</pre>
<h3>Preparations</h3>
<p>In the following, <b>desktop</b> is any machine on which there are enough credentials to either connect to the legacy machine using ssh, run nova commands or EC2 commands targeting the OpenStack cluster, <b>yopo</b> is the OpenStack node, <b>ns1</b> is the legacy hardware.</p>
<pre>desktop: euca-create-volume --zone bm0008 --size 150
+----+-----------+--------------+------+-------------+-------------+
| ID |   Status  | Display Name | Size | Volume Type | Attached to |
+----+-----------+--------------+------+-------------+-------------+
| 3f | available | None         | 150  | None        |             |
+----+-----------+--------------+------+-------------+-------------+
desktop: nova volume-list | grep " $(printf "%d" 0x3f) "
| 63 | available      | None             | 150  | None        |                                      |
</pre>
<p>The <b>bm0008</b> is the availability zone matching the OpenStack node known as <b>yopo</b>. Note that <strong>euca-create-volume</strong> which is an EC2 command reports the volume id as an exadecimal number but <b>nova volume-list</b> shows it as a decimal number. The hexadecimal form is used to name the LV volumes of the LVM backend. A partition table is then created on the 150GB volume and configured to have a single primary partition taking all the space.</p>
<pre>yopo: kpartx -av /dev/vg/volume-0000003f
yopo: mkfs.ext3 /dev/mapper/vg-volume--0000003f1
yopo: mount /dev/mapper/vg-volume--0000003f1 /mnt
yopo: rsync -i --exclude=/etc/fstab --exclude=70-persistent-net.rules \
 --exclude=/boot/grub \
 --exclude=/srv/backup \
  --exclude=/var/cache \
  --exclude=/var/lib/backuppc \
  --exclude=/var/tmp \
  --exclude=/proc \
  --exclude=/sys -avHS --delete --numeric-ids 10.222.222.1:/ /mnt/
</pre>
<p>The partition is  formatted with <b>ext3</b> instead of <b>ext4</b> to avoid any issues : the installed lenny from <b>ns1</b> only uses ext3. A copy of the <b>ns1</b> disk is made and excludes files that will either be replaced or contain data that are not worth replicating. </p>
<pre>yopo: echo 'proc /proc proc defaults 0 0' &gt; /mnt/etc/fstab
yopo: echo '/dev/vda1 / ext3 defaults,errors=remount-ro 0 1' &gt;&gt; /mnt/etc/fstab
</pre>
<p>The <b>fstab</b> is rewritten entirely to take into account the presence of a single partition ( as opposed to seven on <b>ns1</b> ) and a device name starting with <b>/dev/vd</b> instead of <b>/dev/hd</b> or <b>/dev/sd</b>. </p>
<pre>yopo: cp /mnt/boot/vmlinuz-2.6.26-2-vserver-686-bigmem /tmp
yopo: cp /mnt/boot/initrd.img-2.6.26-2-vserver-686-bigmem /tmp
yopo: umount
yopo: kpartx -dv /dev/vg/volume-0000003f
yopo: sed -i -e 's:kopt=.*:kopt=root=/dev/vda1' \
 -e 's/default=.*/default=0/' \
 -e 's/groot=.*/groot=(hd0,0)/' /boot/grub/menu.lst
yopo: echo '(hd0) /dev/vda' &gt; /mnt/boot/grub/device.map
yopo: kvm -m 1024 -drive file=/dev/mapper/vg-volume--0000003f,if=virtio,index=0 \
  -boot c -initrd /tmp/initrd.img-2.6.26-2-vserver-686-bigmem\
   -kernel /tmp/vmlinuz-2.6.26-2-vserver-686-bigmem -append 'root=/dev/vda1' \
  -net nic -net user -nographic -curses -monitor unix:/tmp/file.mon,server,nowait
curses: grub-install /dev/vda
curses: update-grub
curses: halt
</pre>
<p>Grub is installed on the disk by using <b>kvm</b> to actually boot the instance, using a curses based console instead of a VGA console. The grub menu is edited to update the <b>menu.lst</b> and the <b>device.map</b> to reflect the changes with the disk and the partition table.  The kernel and initrd are copied out of the file system imported from <b>ns1</b> to be given as arguments to <b>kvm</b> to allow it to boot under conditions that are close to the one existing on the legacy hardware. Once the machine is successfully booted, <b>grub-install</b> and <b>update-grub</b> are called to allow <b>kvm</b> to boot without an external kernel. It can be verified with:</p>
<pre>yopo: kvm -m 1024 -drive file=/dev/mapper/vg-volume--0000003f,if=virtio,index=0 \
  -boot c -net nic -net user -nographic \
  -curses -monitor unix:/tmp/file.mon,server,nowait
</pre>
<h3>Routing  the public IP</h3>
<p>The legacy installation for <b>ns1</b> does not obtain its IP address from DHCP and may contain a number of occurrence of this IP in various configuration files. The OpenStack node is configured to add a route dedicated to this IP by adding the following to <b>/etc/rc.local</b>.</p>
<pre>brctl addbr br2004
ip link set br2004 up
ip r add 88.191.240.4/32 dev br2004
</pre>
<p>The <b>br2004</b> bridge is dedicated to the tenant used to run the OpenStack instance, as shown by <b>2004</b> :</p>
<pre>desktop: keystone tenant-list | grep ' april '
| 7c918c873280465da3785f5699d48316 | april           | True    |
desktop: nova-manage network list | grep 7c918c873280465da3785f5699d48316
5 10.145.4.0/24 None 10.145.4.3 None None 2004 7c918c873280465da3785f5699d48316 20941588-2c35-40b3-9ecb-af87cadae446
</pre>
<p>The bridge can be created before OpenStack runs so that the public IP can be routed to it. The existing router will be used by OpenStack.</p>
<h3>Migrating</h3>
<p>The rsync command shown is run to update copy, without stoping any service. </p>
<pre>yopo: ssh 10.222.222.1 ip addr del 88.191.250.4/27 dev eth0
yopo: ssh 10.222.222.1 /etc/init.d/util-vserver stop
</pre>
<p>The rsync command is run again after stopping all vservers on <b>ns1</b> and removing the IP from the interface.</p>
<pre>yopo: umount /mnt
yopo: kpartx -dv /dev/vg/volume-0000003f
desktop: ssh controller.vm.april-int nova boot \
 --image 'CirrOS 0.3' \
 --block_device_mapping vda=63::0:0 \
 --flavor e.1-cpu.0GB-disk.8GB-ram \
 --key_name loic --availability_zone=bm0008 ns1 --poll
</pre>
<p>The partition is unmounted and the instance booted from the volume. It should recover as if a power failure happened.</p>
<pre>yopo: ip r add 88.191.240.4/32 dev br2004
</pre>
<p>After the public IP is routed to the bridge <b>br2004</b> to which the newly created instance is connected, the services should be up and communicated properly.</p>
<h3>Setup the arp proxy</h3>
<p>The interface of the OpenStack node that is used for floating IPs must be configured as an arp proxy.</p>
<pre>echo 1 &gt; /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 &gt; /proc/sys/net/ipv4/conf/br2004/proxy_arp
</pre>
<p>These lines are appended to <b>/etc/rc.local</b> so that they are run at boot time. The switch to which both machines were connected has an arp cache. It needs to be cleared so that it notices that packets must be sent to another MAC.</p>
<pre> ip addr add 88.191.250.4/32 dev eth0
arping -U 88.191.240.4 -I eth0
ip addr del 88.191.250.4/32 dev eth0
</pre></div>
    </content>
    <updated>2013-05-19T22:43:01Z</updated>
    <category term="Essex"/>
    <category term="debian"/>
    <category term="openstack"/>
    <author>
      <name>Loic Dachary</name>
    </author>
    <source>
      <id>http://dachary.org</id>
      <link href="http://dachary.org/?feed=rss2&amp;cat=32" rel="self" type="application/atom+xml"/>
      <link href="http://dachary.org" rel="alternate" type="text/html"/>
      <subtitle>Free Software Developer Journey</subtitle>
      <title>Loïc Dachary » openstack</title>
      <updated>2013-05-22T07:36:47Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.matthias-runge.de/?p=155</id>
    <link href="http://www.matthias-runge.de/2013/05/18/openstack-testing-session-flock/" rel="alternate" type="text/html"/>
    <title>OpenStack testing session @FLOCK</title>
    <summary>As you might heard, we at Fedora had FUDCons (Fedora Users and Developers conference), which is now replaced by a conference named Flock. The first one will be held in Charleston, South Carolina between Aug. 9th and 12th. 2013. Coming there is a unique chance this year, to meet many Fedora users and developers to [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>As you might heard, we at Fedora had FUDCons (Fedora Users and Developers conference), which is now replaced by a conference named <a href="http://flocktofedora.com/">Flock</a>. The first one will be held in Charleston, South Carolina between Aug. 9th and 12th. 2013. Coming there is a unique chance this year, to meet many Fedora users and developers to come together, discuss new ideas, work to make those ideas a reality, and continue to promote the core values of the Fedora Community: Freedom, Friends, Features, and First.</p>
<p>OpenStack is a somehow complex thing to setup and to integrate into Linux distributions. Thus, I proposed an <a href="http://flock-lmacken.rhcloud.com/proposals#50">OpenStack testing hackfest at Flock</a>, to test the latest build for Fedora, and also to bring users and developers together into one room. Currently, it is not decided, if this session is accepted, so please stay tuned.</p></div>
    </content>
    <updated>2013-05-18T12:17:43Z</updated>
    <category term="Fedora"/>
    <category term="OpenStack"/>
    <author>
      <name>mrunge</name>
    </author>
    <source>
      <id>http://www.matthias-runge.de</id>
      <link href="http://www.matthias-runge.de/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.matthias-runge.de" rel="alternate" type="text/html"/>
      <title>Matthias Runge » OpenStack</title>
      <updated>2013-05-18T13:16:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4208</id>
    <link href="http://www.openstack.org/blog/2013/05/openstack-community-weekly-newsletter-may-10-17/" rel="alternate" type="text/html"/>
    <title>OpenStack Community Weekly Newsletter (May 10-17)</title>
    <summary>OpenStack Compute (Nova) Roadmap for Havana The Havana design summit was held mid-April.  Since then the Nova team has been documenting the Havana roadmap and going full speed ahead on development of these features.  The list of features that developers have committed to completing for the Havana release is tracked using blueprints on Launchpad. At [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3><a href="http://russellbryantnet.wordpress.com/2013/05/13/openstack-compute-nova-roadmap-for-havana/">OpenStack Compute (Nova) Roadmap for Havana</a></h3>
<p>The Havana design summit was held mid-April.  Since then the Nova team has been documenting the Havana roadmap and going full speed ahead on development of these features.  The list of features that developers have committed to completing for the Havana release is tracked using <a href="https://blueprints.launchpad.net/nova/havana">blueprints on Launchpad</a>. At the time of writing, there are 74 blueprints listed that cover a wide range of development efforts. <a href="http://russellbryantnet.wordpress.com/">Russell Bryant</a>, Nova Tech Lead, highlights some of them.</p>
<h3><a href="http://engineering.cloudscaling.com/stacker-voices-thierry-carrez-openstack-foundation/">Stacker Voices: Thierry Carrez, OpenStack Foundation</a></h3>
<p>Thierry Carrez handles release management for the OpenStack Foundation and is chair of the project’s Technical Committee. Thierry was involved with the earliest incarnations of OpenStack while at Rackspace. Cloudscaling’s team caught up with him at the OpenStack Summit in Portland to get Thierry’s insights into the release cycle, governance and his wish list for the project.</p>
<h3><a href="http://www.enovance.com/fr/blog/5653/swiftsync-a-way-to-synchronize-two-swift-clusters-2">Swiftsync – A way to synchronize two swift clusters</a></h3>
<p>Enovance was asked to migrate and synchronize two swift clusters in order to provide a customer a way to handle a swift migration easily. For that they started a project called <a href="https://github.com/enovance/swiftsync">swiftsync</a> hosted in github.</p>
<h2>Tips ‘n Tricks</h2>
<ul>
<li>By <a href="http://ceph.com/">Ceph</a>: <a href="http://ceph.com/dev-notes/incremental-snapshots-with-rbd/">Incremental Snapshots with RBD</a></li>
<li>By <a href="http://www.enovance.com/">eNovance</a>: <a href="http://www.enovance.com/fr/blog/5653/swiftsync-a-way-to-synchronize-two-swift-clusters-2">Swiftsync – A way to synchronize two swift clusters</a></li>
<li>By <a href="http://dachary.org/">Loïc Dachary</a>: <a href="http://dachary.org/?p=1961">Disaster recovery on host failure in OpenStack</a></li>
</ul>
<h2>Security Issues</h2>
<ul>
<li><a href="http://lists.openstack.org/pipermail/openstack-announce/2013-May/000102.html">Nova fails to verify image virtual size (CVE-2013-2096) </a></li>
</ul>
<h2>OpenStack In The Wild</h2>
<p>A new section of the weekly newsletter dedicated to users of OpenStack. If you want to showcase how OpenStack helps you (or you know somebody that uses OpenStack) please let us know: <a href="mailto:communitymngr@openstack.org">email</a>, <a href="http://twitter.com/openstack">twitter</a>, <a href="http://www.reddit.com/r/openstack/">reddit</a> or <a href="http://en.wikipedia.org/wiki/IP_over_Avian_Carriers">avian carrier</a> will do).</p>
<ul>
<li><a href="http://www.dailyhostnews.com/canadian-web-hosting-to-launch-public-cloud-built-on-openstack-software?utm_source=feedburner&amp;utm_medium=twitter&amp;utm_campaign=Feed%3A+DailyHostNews+%28DailyHostNews%29">Canadian Web Hosting to Launch Public Cloud Built on OpenStack Software</a></li>
</ul>
<h2>Upcoming Events</h2>
<ul>
<li><a href="http://www.meetup.com/OpenStack-Ireland/events/116567022/" target="_blank">OpenStack Dublin Meetup</a> May 22, 2013 – Dublin, Ireland <a href="http://www.meetup.com/OpenStack-Ireland/events/116567022/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/Openstack-London/events/116975682/" target="_blank">3rd London OpenStack Meetup</a> May 23, 2013 – London, UK <a href="http://www.meetup.com/Openstack-London/events/116975682/" target="_blank">Details</a></li>
<li><a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">OpenStack DACH Day</a> May 24, 2013 – Berlin Fairgrounds <a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/Indian-OpenStack-User-Group/events/117132352/" target="_blank">OpenStack India Meetup</a> May 26, 2013 – Bangalore, India at Anuta Network <a href="http://www.meetup.com/Indian-OpenStack-User-Group/events/117132352/" target="_blank">Details</a></li>
<li><a href="http://www.openstack-israel.org/" target="_blank">OpenStack Israel</a> May 27, 2013 – Tel-Aviv, Israel <a href="http://www.openstack-israel.org/" target="_blank">Details</a></li>
<li><a href="http://aosug.openstack.org.au/" target="_blank">Australian OpenStack User Group tri-city Meetup</a> May 27, 2013 – Australia <a href="http://aosug.openstack.org.au/" target="_blank">Details</a></li>
<li><a href="http://www.cebit.com.au/" target="_blank">OpenStack at CeBit Australia</a> May 28 – 30, 2013 – Sidney, Australia <a href="http://www.cebit.com.au/" target="_blank">Booth in Hall 4</a></li>
<li><a href="http://openstackceeday.com/" target="_blank">OpenStack CEE Day</a> May 29, 2013 – Budapest, Hungary <a href="http://openstackceeday.com/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Building an OpenStack Cloud</a> May 30, 2013 – Chicago, IL <a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">OpenStack meeting in Munich</a> Jun 11, 2013 – Munich, Germany <a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">Details</a></li>
<li><a href="http://www.datacenterdynamics.com/fr/conferences/2013/paris-2013" target="_blank">DatacenterDynamics Converged</a> Jun 11, 2013 – Paris, France <a href="http://www.datacenterdynamics.com/fr/conferences/2013/paris-2013" target="_blank">Details</a></li>
<li><a href="http://event.gigaom.com/structure/" target="_blank">GigaOM Structure</a> Jun 19 – 20, 2013 – San Francisco, CA <a href="http://event.gigaom.com/structure/" target="_blank">Details</a></li>
<li><a href="https://wiki.openstack.org/wiki/DevCamp/EssenGermany2013" target="_blank">OpenStack DevCamp Essen</a> Jun 21 – 23, 2013 – Essen, Germany <a href="https://wiki.openstack.org/wiki/DevCamp/EssenGermany2013" target="_blank">Details</a></li>
<li><a href="http://2013.pycon-au.org/programme/schedule/friday" target="_blank">PyCon Australia – OpenStack Miniconf</a> Jul 05, 2013 – Hobart, Australia <a href="http://2013.pycon-au.org/programme/schedule/friday" target="_blank">Details</a></li>
<li><a href="http://www.oscon.com/oscon2013" target="_blank">OSCON 2013</a> Jul 22 – 26, 2013 – Portland, OR <a href="http://www.oscon.com/oscon2013" target="_blank">Details</a></li>
</ul>
<h2>Other News</h2>
<ul>
<li><a href="http://robhirschfeld.com/2013/05/17/crowbar-cuts-openstack-grizzly/">Crowbar cuts OpenStack Grizzly (“pebbles”) branch &amp; seeks community testing</a></li>
<li><a href="http://www.mirantis.com/blog/segregation-in-grizzly-availability-zones-versus-host-aggregates/">OpenStack Grizzly Webinar Preview: Availability Zones vs. Host Aggregates</a></li>
<li><a href="http://kashyapc.wordpress.com/2013/05/16/nested-virtualization-kvm-intel-with-vmcs-shadowing/">Nested Virtualization — KVM, Intel, with VMCS Shadowing</a></li>
<li><a href="http://dachary.org/?p=1978">OpenStack Upstream University training</a></li>
<li><a href="https://www.berrange.com/posts/2013/05/13/a-new-configurable-cgroups-layout-for-libvirt-with-qemu-kvm-lxc/">A new (configurable) cgroups layout for libvirt with QEMU, KVM &amp; LXC</a></li>
<li><a name="9048"/><a href="http://lists.openstack.org/pipermail/openstack-dev/2013-May/009048.html">How to guarantee success of the I Design Summit in HK </a></li>
<li>OpenStack Project Meeting:<a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-05-14-21.00.html">Summary</a> and <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-05-14-21.00.log.html">full logs</a>.</li>
</ul>
<h2>Welcome New Developers</h2>
<ul>
<li>Hugh Saunders</li>
<li>Bruno Semperlotti</li>
<li>YAMAMOTO Takashi, VALinux</li>
<li>Fujioka Yuuichi, NEC</li>
</ul>
<h2>Got answers?</h2>
<p><a href="https://ask.openstack.org/">Ask OpenStack</a> is the go-to destination for OpenStack users. Interesting questions waiting for answers:</p>
<ul>
<li><a href="https://ask.openstack.org/question/1315/trying-to-run-pki_setup-for-keystone-however-the-command-doesnt-exist/">Trying to run pki_setup for keystone however the command doesn’t exist</a></li>
<li><a href="https://ask.openstack.org/question/1313/authentication-credentials-are-being-ignored/">Authentication credentials are being ignored</a></li>
<li><a href="https://ask.openstack.org/question/1311/instance-failed-to-start-qemu-img-could-not-openno-such-file-or-directory/">Instance failed to start “qemu-img: Could not open…No such file or directory”</a></li>
<li><a href="https://ask.openstack.org/question/1302/how-to-attach-volume-for-instance-iso-on-devhda/">How to attach volume for instance (iso) on /dev/hda</a></li>
<li><a href="https://ask.openstack.org/question/1282/can-openstack-choose-the-physical-resources-to-boot-a-vm/">Can Openstack Choose the physical resources to boot a VM?</a></li>
<li><a href="https://ask.openstack.org/question/1258/what-causes-cloud-init-nonet-gave-up-waiting-for-a-network-device/">What causes “cloud-init-nonet gave up waiting for a network device”?</a></li>
</ul>
<p><em>The weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</em></p></div>
    </content>
    <updated>2013-05-17T21:53:24Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://robhirschfeld.com/?p=2287</id>
    <link href="http://robhirschfeld.com/2013/05/17/crowbar-cuts-openstack-grizzly/" rel="alternate" type="text/html"/>
    <title>Crowbar cuts OpenStack Grizzly (“pebbles”) branch &amp; seeks community testing</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Crowbar team (I work for Dell) continues to drive towards “zero day” deployment readiness. Our Hadoop deployments are tracking Dell | Cloudera Hadoop-powered releases within a month and our OpenStack releases harden within three months. During the OpenStack summit, … <a href="http://robhirschfeld.com/2013/05/17/crowbar-cuts-openstack-grizzly/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2287&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://robhirschfeld.files.wordpress.com/2013/04/pebbles-cut.jpg"><img alt="Pebbles Cut" class="alignright size-thumbnail wp-image-2289" height="84" src="http://robhirschfeld.files.wordpress.com/2013/04/pebbles-cut.jpg?w=150&amp;h=84" width="150"/></a>The Crowbar team (<a href="http://dell.com/crowbar">I work for Dell</a>) continues to drive towards “zero day” deployment readiness. Our Hadoop deployments are tracking <a href="http://dell.com/hadoop">Dell | Cloudera Hadoop</a>-powered releases within a month and <a href="http://dell.com/openstack">our OpenStack releases</a> harden within three months.</p>
<p>During the <a href="http://robhirschfeld.com/2013/04/23/openstack-enters-rapids-with-grizzly-watch-for-strong-currents-hidden-rocks-eddies/" title="As OpenStack enters rapids with Grizzly, watch for strong currents, hidden rocks &amp;&#xA0;eddies.">OpenStack summit</a>, we cut our <a href="https://github.com/crowbar/barclamp-crowbar/tree/release/pebbles/master">Grizzly branch (aka “pebbles”) </a>and switched over to the <a href="https://wiki.openstack.org/wiki/Packaging/Ubuntu">release packages</a>. Just a reminder, we <a href="http://robhirschfeld.com/2012/12/06/dilemma-openstack-folsom/" title="My Dilemma with Folsom &#x2013; why I want to jump to&#xA0;G">basically skipped Folsom</a>. While we’re still tuning out issues on OpenStack Networking (OVS+GRE) setup, we’re also looking for community to start testing and tuning the Chef deployment recipes.</p>
<blockquote><p>We’re<span style="font-size: 15px; line-height: 1.625;"> just sprints from release; consequently, it’s time for the Crowbar/OpenStack community to come and play! You can learn Grizzly and help tune the open source Ops scripts.</span></p></blockquote>
<p>While the Crowbar team has been generating a lot of noise around our Crowbar 2.0 work, we have not neglected progress on OpenStack Grizzly.  We’ve been building Grizzly deploys on the 1.x code base using <a href="http://www.confreaks.com/videos/1356-openstackfall2012-pull-from-source-in-cookbooks-for-folsom-deployment">pull-from-source</a> to ensure that we’d be ready for the release. For continuity, these same cookbooks will be the foundation of our CB2 deployment.</p>
<p>Features of Crowbar’s OpenStack Grizzly Deployments</p>
<ul>
<li>We’ve had <del>Nova</del> Compute, <del>Glance</del> Image, <del>Keystone</del> Identity, <del>Horizon</del> Dashboard, <del>Swift</del> Object and Tempest for a long time. Those, of course, have been updated to Grizzly.</li>
<li>Added Block Storage
<ul>
<li>importable <a href="http://ceph.com/">Ceph</a> Barclamp &amp; OpenStack Block Plug-in</li>
<li><a href="http://www.dell.com/equallogic">Equalogic </a>OpenStack Block Plug-in</li>
</ul>
</li>
<li>Added <del>Quantum</del> OpenStack Network Barclamp
<ul>
<li>Uses OVS + GRE for deployment</li>
</ul>
</li>
<li>10 GB networking configuration</li>
<li>Rabbit MQ as its own barclamp</li>
<li><del>Swift</del> Object Barclamps made a lot of progress in Folsom that translates to Grizzly
<ul>
<li>Apache Web Service</li>
<li>Rack awareness</li>
<li>HA configuration</li>
<li>Distribution Report</li>
</ul>
</li>
<li>“Under the covers” improvements for Crowbar 1.x
<ul>
<li>Substantial improvements in how we configure host networking</li>
<li>Numerous bug fixes and tweaks</li>
</ul>
</li>
<li>Pull from Source via the Git barclamp
<ul>
<li>Grizzly branch was switched to use Ubuntu &amp; SUSE packages</li>
</ul>
</li>
</ul>
<p>We’ve made substantial progress, but there are still gaps. We do not have upgrade paths from Essex or Folsom. While we’ve been adding fault-tolerance features, full automatic HA deployments are not included.</p>
<p>Please <a href="https://github.com/crowbar/crowbar/wiki/Dev-tool-build">build your own Crowbar ISO</a> or check our <a href="https://sourceforge.net/projects/crowbar/">new SoureForge download site</a> then join the Crowbar List and IRC to collaborate with us on OpenStack (or Hadoop or Crowbar 2). Together, <a href="http://robhirschfeld.com/2013/04/22/stack-shop-macklemore-thrift-shop/" title="&#x201C;Stack Shop&#x201D; cover of Macklemore&#x2019;s Thrift&#xA0;Shop">we will make this awesome</a>.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/robhirschfeld.wordpress.com/2287/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robhirschfeld.wordpress.com/2287/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2287&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-17T15:56:32Z</updated>
    <category term="Canonical"/>
    <category term="Crowbar"/>
    <category term="OpenStack"/>
    <category term="Grizzly"/>
    <category term="hadoop"/>
    <category term="ISO"/>
    <category term="Pebbles"/>
    <category term="Pull from source"/>
    <category term="release"/>
    <author>
      <name>Rob H</name>
    </author>
    <source>
      <id>http://robhirschfeld.com</id>
      <logo>http://0.gravatar.com/blavatar/0611d8ca437ffd3dbaebd30ab7aa4897?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</logo>
      <link href="http://robhirschfeld.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://robhirschfeld.com" rel="alternate" type="text/html"/>
      <link href="http://robhirschfeld.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://robhirschfeld.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Agile in the Clouds</subtitle>
      <title>Rob Hirschfeld » OpenStack</title>
      <updated>2013-05-22T21:37:13Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://rafstack.tumblr.com/post/50649493383</id>
    <link href="http://rafstack.tumblr.com/post/50649493383" rel="alternate" type="text/html"/>
    <title>OpenStack Rocks in Poland</title>
    <summary>Join the 1st OpenStack User Group Meetup in Szczecin (Poland) 06-06-2013, Technopark Pomerania,...</summary>
    <updated>2013-05-17T13:04:00Z</updated>
    <category term="OpenStack"/>
    <category term="Poland"/>
    <category term="CEE"/>
    <category term="Cloud"/>
    <category term="opensource"/>
    <source>
      <id>http://rafstack.tumblr.com/</id>
      <author>
        <name>Dell TechCenter</name>
      </author>
      <link href="http://tumblr.superfeedr.com/" rel="hub" type="text/html"/>
      <link href="http://rafstack.tumblr.com/" rel="alternate" type="text/html"/>
      <link href="http://rafstack.tumblr.com/rss" rel="self" type="application/rss+xml"/>
      <subtitle>I work with DELL Inc. as Global Community &amp; Content Manager for OpenStack and Hadoop. This blog contains OpenStack related posts I write for Dell TechCenter. www.delltechcenter.com Enjoy reading!</subtitle>
      <title>RafStack: Rafael's OpenStack Blog</title>
      <updated>2013-05-22T23:41:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.mirantis.com/?p=496336</id>
    <link href="http://www.mirantis.com/blog/segregation-in-grizzly-availability-zones-versus-host-aggregates/" rel="alternate" type="text/html"/>
    <title>OpenStack Grizzly Webinar Preview: Availability Zones vs. Host Aggregates</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>You've probably been wondering what to make of the new features that have surfaced in the OpenStack Grizzly release – the list is substantial. That's why on Thursday, May 23, I'll be presenting a live Mirantis webinar about this and many of OpenStack Grizzly’s other new capabilities. It's free – you can sign up on [...]</p><p>The post <a href="http://www.mirantis.com/blog/segregation-in-grizzly-availability-zones-versus-host-aggregates/">OpenStack Grizzly Webinar Preview: Availability Zones vs. Host Aggregates</a> appeared first on <a href="http://www.mirantis.com">Mirantis</a>.</p><img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=197500&amp;k=14&amp;bu=http%3A%2F%2Fwww.mirantis.com&amp;r=http%3A%2F%2Fwww.mirantis.com%2Fblog%2Fsegregation-in-grizzly-availability-zones-versus-host-aggregates%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://www.mirantis.com/feed/"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>



You've probably been wondering what to make of the new features that have surfaced in the OpenStack Grizzly release – the list is substantial. That's why on Thursday, May 23, I'll be presenting a live Mirantis webinar about this and many of OpenStack Grizzly’s other new capabilities. It's free – you can sign up on [...]</p><p>The post <a href="http://www.mirantis.com/blog/segregation-in-grizzly-availability-zones-versus-host-aggregates/">OpenStack Grizzly Webinar Preview: Availability Zones vs. Host Aggregates</a> appeared first on <a href="http://www.mirantis.com">Mirantis</a>.</p><img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=197500&amp;k=14&amp;bu=http%3A%2F%2Fwww.mirantis.com&amp;r=http%3A%2F%2Fwww.mirantis.com%2Fblog%2Fsegregation-in-grizzly-availability-zones-versus-host-aggregates%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://www.mirantis.com/feed/"/></div>
    </content>
    <updated>2013-05-16T17:13:21Z</updated>
    <category term="Blog"/>
    <author>
      <name>Nick Chase</name>
    </author>
    <source>
      <id>http://www.mirantis.com</id>
      <link href="http://www.mirantis.com/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mirantis.com" rel="alternate" type="text/html"/>
      <subtitle>Mirantis Inc.  - OpenStack Experts On-Demand. Openstack outsourcing and consulting. Openstack engineers and development for openstack software.</subtitle>
      <title>Mirantis » Blog</title>
      <updated>2013-05-22T23:21:09Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://kashyapc.wordpress.com/?p=1745</id>
    <link href="http://kashyapc.wordpress.com/2013/05/16/nested-virtualization-kvm-intel-with-vmcs-shadowing/" rel="alternate" type="text/html"/>
    <title>Nested Virtualization — KVM, Intel, with VMCS Shadowing</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">[Previous installments on Nested Virtualization with KVM and Intel.] This is part of some recent testing that I’ve been doing with upstream KVM (for 3.10.1). The threads linked here has initial tests bench-marking kernel compile (with make defconfig, a default … <a href="http://kashyapc.wordpress.com/2013/05/16/nested-virtualization-kvm-intel-with-vmcs-shadowing/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=kashyapc.wordpress.com&amp;blog=25732161&amp;post=1745&amp;subd=kashyapc&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>[<a href="http://kashyapc.wordpress.com/2013/02/12/nested-virtualization-with-kvm-and-intel-on-fedora-18/">Previous installments</a> <a href="http://kashyapc.wordpress.com/2012/01/14/nested-virtualization-with-kvm-intel/">on Nested Virtualization with KVM and Intel</a>.]</em></p>
<p>This is part of some recent testing that I’ve been doing with upstream KVM (for 3.10.1). The threads <a href="http://thread.gmane.org/gmane.comp.emulators.kvm.devel/109746">linked</a> <a href="http://thread.gmane.org/gmane.comp.emulators.kvm.devel/109668">here</a> has initial tests bench-marking kernel compile (with <code>make defconfig</code>, a default config file) times in L2. And some minimal <code>guestfish</code> appliance start-up <a href="https://www.redhat.com/archives/libguestfs/2013-May/msg00033.html">timings</a> in L1.</p>
<p>Some details:</p>
<ul type="square">
<li><a href="https://raw.github.com/kashyapc/nvmx-haswell/master/SETUP-nVMX.rst">Setup information</a> to test with VMCS (Virtual Machine Control Structure) Shadowing. In brief, VMCS Shadowing — a processor specific feature — as <a href="http://thread.gmane.org/gmane.comp.emulators.kvm.devel/108401">described</a> upstream, can reduce the overhead of nested virtualization by reducing the number of VMExits from L1 to L0.</li>
<li><a href="https://github.com/kashyapc/nvmx-haswell/tree/master/tests/scripts">Simple scripts</a> used to create L1 and L2.</li>
<li><a href="https://github.com/kashyapc/nvmx-haswell/tree/master/tests/libvirt-xmls-for-l1-l2">Libvirt XMLs</a> of L1, L2 guests, for reference.</li>
</ul>
<p>The gritty details of reasons for VMExits are described in <a href="http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html">Intel architecture manuals, Volume 3b, APPENDIX 1</a>.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/kashyapc.wordpress.com/1745/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kashyapc.wordpress.com/1745/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=kashyapc.wordpress.com&amp;blog=25732161&amp;post=1745&amp;subd=kashyapc&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-16T07:13:57Z</updated>
    <category term="Uncategorized"/>
    <category term="intel"/>
    <category term="kvm"/>
    <category term="nested virtualization"/>
    <category term="OpenStack"/>
    <author>
      <name>kashyapc</name>
    </author>
    <source>
      <id>http://kashyapc.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://kashyapc.wordpress.com/tag/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://kashyapc.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://kashyapc.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://kashyapc.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <title>Kashyap Chamarthy » OpenStack</title>
      <updated>2013-05-21T12:46:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://robhirschfeld.com/?p=2358</id>
    <link href="http://robhirschfeld.com/2013/05/15/topkred/" rel="alternate" type="text/html"/>
    <title>Thanks! I’m enjoying my conversation with you</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I write because I love to tell stories and to think about how actions we take today will impact tomorrow.  Ultimately, everything here is about a dialog with you because you are my sounding board and my critic.  I appreciate … <a href="http://robhirschfeld.com/2013/05/15/topkred/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2358&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://kred.com/zehicle" target="_blank"><img alt="" class="alignright" height="215" src="http://pbcdn.peoplebrowsr.com/widget/kredtopbadge/zehicle/" width="205"/> </a> I write because I love to tell stories and to think about how actions we take today will impact tomorrow.  Ultimately, everything here is about a dialog with you because you are my sounding board and my critic.  I appreciate when people engage me about posts here and extend the conversation into other dimensions.  Feel free to call me on points and question my position – that’s what this is all about.</p>
<blockquote><p>Thank you for being at part of my blog and joining in.  I’m looking forward to hearing more from you.</p></blockquote>
<p>During the OpenStack Summit, I got to lead and participate in some excellent presentations and panels.  While my theme for this summit was <a href="http://robhirschfeld.com/2013/04/26/openstack-moves-toward-interopability/" title="OpenStack steps toward Interopability with Temptest, RAs &amp;&#xA0;RefStack.org">interoperability</a>, there are many other items discussed.</p>
<p>I hope you enjoy them.</p>
<ul>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/heat-refstack-a-reference-implementation-of-openstack">Heat RefStack – A reference implementation of OpenStack</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/panel-interoperability">Panel: Interoperability</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/openstack-the-next-10-years">OpenStack: The Next 10 Years</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/getting-from-grizzly-to-havana-a-devops-upgrade-pattern">Getting from Grizzly to Havana: A DevOps Upgrade Pattern</a></li>
</ul>
<p>Did one of these topics stand out?  Is there something I missed?  Please let me know!</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/robhirschfeld.wordpress.com/2358/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robhirschfeld.wordpress.com/2358/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2358&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-16T03:48:58Z</updated>
    <category term="DevOps"/>
    <category term="OpenStack"/>
    <category term="OpenStack Design Summit"/>
    <category term="Future"/>
    <category term="Interop"/>
    <category term="Kred"/>
    <category term="Summit"/>
    <category term="Upgrade"/>
    <author>
      <name>Rob H</name>
    </author>
    <source>
      <id>http://robhirschfeld.com</id>
      <logo>http://0.gravatar.com/blavatar/0611d8ca437ffd3dbaebd30ab7aa4897?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</logo>
      <link href="http://robhirschfeld.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://robhirschfeld.com" rel="alternate" type="text/html"/>
      <link href="http://robhirschfeld.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://robhirschfeld.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Agile in the Clouds</subtitle>
      <title>Rob Hirschfeld » OpenStack</title>
      <updated>2013-05-22T21:37:13Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dachary.org/?p=1978</id>
    <link href="http://dachary.org/?p=1978" rel="alternate" type="text/html"/>
    <title>OpenStack Upstream University training</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Upstream University training for OpenStack contributors include a live session where students contribute to a Lego town. They have to comply with the coding standards imposed by the existing buildings. More than fifteen participants created an impressive city within a … <a href="http://dachary.org/?p=1978">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://upstream-university.org/">Upstream University</a> <a href="http://www.youtube.com/watch?v=27RFn6ASemk">training for OpenStack contributors</a> include a live session where students contribute to a Lego town. They have to comply with the coding standards imposed by the existing buildings. More than fifteen participants created an impressive city within a few hours during the session held in may 2013. The images speak for themselves. The <a href="http://upstream-university.org/apply/">next sessions</a> will be in Paris in June and Portland in July.<br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-07.jpg"><img alt="" class="alignleft size-full wp-image-1985" height="450" src="http://dachary.org/wp-uploads/2013/05/upun-lego-07.jpg" title="upun-lego-07" width="800"/></a><br/>
<span id="more-1978"/><br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-06.jpg"><img alt="" class="alignleft size-full wp-image-1984" src="http://dachary.org/wp-uploads/2013/05/upun-lego-06.jpg" title="upun-lego-06"/></a><br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-05.jpg"><img alt="" class="alignleft size-full wp-image-1984" src="http://dachary.org/wp-uploads/2013/05/upun-lego-05.jpg" title="upun-lego-05"/></a><br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-04.jpg"><img alt="" class="alignleft size-full wp-image-1984" src="http://dachary.org/wp-uploads/2013/05/upun-lego-04.jpg" title="upun-lego-04"/></a><br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-03.jpg"><img alt="" class="alignleft size-full wp-image-1984" src="http://dachary.org/wp-uploads/2013/05/upun-lego-03.jpg" title="upun-lego-03"/></a><br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-02.jpg"><img alt="" class="alignleft size-full wp-image-1984" src="http://dachary.org/wp-uploads/2013/05/upun-lego-02.jpg" title="upun-lego-02"/></a><br/>
<a href="http://dachary.org/wp-uploads/2013/05/upun-lego-01.jpg"><img alt="" class="alignleft size-full wp-image-1984" src="http://dachary.org/wp-uploads/2013/05/upun-lego-01.jpg" title="upun-lego-01"/></a></p></div>
    </content>
    <updated>2013-05-14T19:49:27Z</updated>
    <category term="Upstream University"/>
    <category term="openstack"/>
    <author>
      <name>Loic Dachary</name>
    </author>
    <source>
      <id>http://dachary.org</id>
      <link href="http://dachary.org/?feed=rss2&amp;cat=32" rel="self" type="application/atom+xml"/>
      <link href="http://dachary.org" rel="alternate" type="text/html"/>
      <subtitle>Free Software Developer Journey</subtitle>
      <title>Loïc Dachary » openstack</title>
      <updated>2013-05-22T07:36:47Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://engineering.cloudscaling.com/?p=162</id>
    <link href="http://engineering.cloudscaling.com/stacker-voices-thierry-carrez-openstack-foundation/" rel="alternate" type="text/html"/>
    <title>Stacker Voices: Thierry Carrez, OpenStack Foundation</title>
    <summary>Thierry Carrez handles release management for the OpenStack Foundation and is chair of the project’s Technical Committee. Thierry was involved with the earliest incarnations of OpenStack while at Rackspace. We caught up with him at the OpenStack Summit in Portland to get Thierry’s insights into the release cycle, governance and his wish list for the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p dir="ltr"><a href="http://engineering.cloudscaling.com/stacker-voices-thierry-carrez-openstack-foundation/thierry-carrez/" rel="attachment wp-att-171"><img alt="Thierry Carrez" class="wp-image-171 alignleft" height="128" src="http://engineering.cloudscaling.com/wp-content/uploads/2013/04/Thierry-Carrez-300x183.png" width="210"/></a>Thierry Carrez handles release management for the OpenStack Foundation and is chair of the project’s Technical Committee. Thierry was involved with the earliest incarnations of OpenStack while at Rackspace. We caught up with him at the OpenStack Summit in Portland to get Thierry’s insights into the release cycle, governance and his wish list for the project.</p>
<p><b><b> </b></b></p>
<p dir="ltr">In the video, we discuss:</p>
<ul>
<li>
<p dir="ltr">drivers behind the shift from a 3-month to a 6-month release cycle for OpenStack</p>
</li>
<li>
<p dir="ltr">managing the release cycle as OpenStack has grown from two to nine projects</p>
</li>
<li>
<p dir="ltr">the logic behind aligning the release cycle with the semi-annual Summits</p>
</li>
<li>
<p dir="ltr">the role of CI in improving interoperability and quality across all the projects</p>
</li>
<li>
<p dir="ltr">complementary roles of the board (resources, brand, trademark) and the technical committee (meritocracy of developers and code quality)</p>
</li>
<li>
<p dir="ltr">importance of motivating corporate contributors to invest more in long-term, strategic projects like documentation, security, QA, and test suite</p>
</li>
</ul>
<p><b><b> </b></b></p>
<p dir="ltr"><b> </b>Check out the video, below. Or, <a href="http://www.youtube.com/watch?v=YQTRSfY6Auw" target="_blank">watch on YouTube</a>.</p>
<p>&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/YQTRSfY6Auw" width="560"&gt;&lt;/iframe&gt;</p></div>
    </content>
    <updated>2013-05-14T14:30:47Z</updated>
    <category term="OpenStack"/>
    <author>
      <name>Randy Bias</name>
    </author>
    <source>
      <id>http://engineering.cloudscaling.com</id>
      <link href="http://engineering.cloudscaling.com" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/SimplicityScales" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Simplicity Scales</subtitle>
      <title>Cloudscaling Engineering</title>
      <updated>2013-05-21T16:07:34Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://ceph.com/?p=3258</id>
    <link href="http://ceph.com/dev-notes/incremental-snapshots-with-rbd/" rel="alternate" type="text/html"/>
    <title>Incremental Snapshots with RBD</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">While Ceph has a wide range of use cases, the most frequent application that we are seeing is that of block devices as data store for public and private clouds managed by OpenStack, CloudStack, Eucalyptus, and OpenNebula. This means that we frequently get questions about things like geographic replication, backup, and disaster recovery (or some [...]<img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=268973&amp;k=14&amp;bu=http%3A%2F%2Fceph.com&amp;r=http%3A%2F%2Fceph.com%2Fdev-notes%2Fincremental-snapshots-with-rbd%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://ceph.com/feed/"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>While Ceph has a wide range of use cases, the most frequent application that we are seeing is that of block devices as data store for public and private clouds managed by OpenStack, CloudStack, Eucalyptus, and OpenNebula.  This means that we frequently get questions about things like geographic replication, backup, and disaster recovery (or some combination therein, given the amount of overlap on these topics).  While a full-featured, robust solution to geo-replication is currently being hammered out there are a number of different approaches already being tinkered with (like Sebastien Han’s <a href="http://www.sebastien-han.fr/blog/2013/01/28/ceph-geo-replication-sort-of/">setup with DRBD</a> or the upcoming work <a href="http://permalink.gmane.org/gmane.comp.file-systems.ceph.devel/12238">using RGW</a>).  </p>
<p>However, since one of the primary focuses in managing a cloud is the manipulation of images, the solution to disaster recovery and general backup can often be quite simplistic.  Incremental snapshots can fill this, and several other, roles quite well.  To that end I wanted to share a few thoughts from RBD developer Josh Durgin for those of you who may have missed his <a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/new-features-for-ceph-with-cinder-and-beyond">great talk</a> at the OpenStack Developer Summit a few weeks ago.</p>
<p><span id="more-3258"/></p>
<p>For the purposes of disaster recovery, the idea is that you could run two simultaneous Ceph clusters in different geographic locations and instead of copying a new snapshot each time, you could simply generate and transfer a delta.  The incantation would look something like this:</p>
<pre class="code">rbd export-diff --from-snap snap1 pool/image@snap2 pool_image_snap1_to_snap2.diff
</pre>
<p>This creates a simple binary file that stores the following information:</p>
<ul>
<li>original snapshot name (if applicable)</li>
<li>end snapshot name</li>
<li>size of the image at ending snapshot</li>
<li>the diff between snapshots</li>
</ul>
<p>The format of this file can be seen in the <a href="http://ceph.com/docs/master/dev/rbd-diff/">RBD doc</a>.</p>
<p>After exporting a diff you could either simply back up the file somewhere offsite or import the diff on top of the existing image on a remote Ceph cluster.</p>
<pre class="code">rbd import-diff /path/to/diff backup_image
</pre>
<p>This will write the contents of the differential to the backup image and create a snapshot with the same name as the original ending snapshot. It will fail and do nothing if a snapshot with this name already exists. Since overwriting the same data is idempotent, it’s safe to have an import-diff interrupted in the middle.</p>
<p>These commands can work with stdin and stdout as well, so you could do something like:</p>
<pre class="code">rbd export-diff --from-snap snap1 pool/image@snap2 - | ssh user@second_cluster rbd import-diff - pool2/image
</pre>
<p>You can see which extents changed (in plain text, json, or xml) via:</p>
<pre class="code">rbd diff --from-snap snap1 pool/image@snap2 --format plain
</pre>
<p>There are a couple of limitations in the current implementation, however.</p>
<ol>
<li>There’s no guarantee you’re importing a diff onto an image in the right state (i.e. the same image at the same snapshot as the diff was exported from).</li>
<li>There’s no way to inspect the diff files to see what snapshots they refer to, so you’d have to depend on the filename containing that information.</li>
</ol>
<p>While the implementation is still relatively simple, you can see how this could be quite useful in managing not only cloud images, but any of your Ceph block devices.  This functionality hit the streets with the recent ‘<a href="http://ceph.com/releases/v0-61-cuttlefish-released/">cuttlefish</a>‘ stable release, but if you have questions or enhancement requests please let us know.</p>
<p>To learn more about some of the new things coming in future versions of Ceph you can check out the current <a href="http://www.inktank.com/about-inktank/roadmap/">published roadmap</a> of work Inktank is planning on contributing.  Also if you missed the  virtual <a href="http://ceph.com/events/ceph-developer-summit/">Ceph Developer Summit</a>, the videos have been posted for review.  In the meantime, if you have questions, comments, or anything for the good of the cause feel free to stop by our <a href="irc://irc.oftc.net/ceph">irc channel</a> or drop a note to one of the <a href="http://ceph.com/resources/mailing-list-irc/">mailing lists</a>.  </p>
<pre class="outline">scuttlemonkey out</pre>
<img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=268973&amp;k=14&amp;bu=http%3A%2F%2Fceph.com&amp;r=http%3A%2F%2Fceph.com%2Fdev-notes%2Fincremental-snapshots-with-rbd%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://ceph.com/feed/"/></div>
    </content>
    <updated>2013-05-14T14:02:34Z</updated>
    <category term="Dev notes"/>
    <category term="backup"/>
    <category term="cloudstack"/>
    <category term="eucalyptus"/>
    <category term="opennebula"/>
    <category term="openstack"/>
    <category term="rbd"/>
    <category term="snapshots"/>
    <author>
      <name>scuttlemonkey</name>
    </author>
    <source>
      <id>http://ceph.com</id>
      <link href="http://ceph.com/community/blog/tag/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://ceph.com" rel="alternate" type="text/html"/>
      <title>Ceph » openstack</title>
      <updated>2013-05-22T09:26:48Z</updated>
    </source>
  </entry>

  <entry xml:lang="fr-FR">
    <id>http://www.enovance.com/?p=5653</id>
    <link href="http://www.enovance.com/fr/blog/5653/swiftsync-a-way-to-synchronize-two-swift-clusters-2" rel="alternate" type="text/html"/>
    <title>Swiftsync – A way to synchronize two swift clusters</title>
    <summary>We’ve been faced to a challenge to migrate and synchronize two swift clusters in order to provide a customer a way to handle a swift migration easily.   For that we have created a project called swiftsync hosted in github: https://github.com/enovance/swiftsync The swiftsync project provides two binaries called :   swsync (The synchronizer) swfiller (A swift [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p style="text-align: justify;">We’ve been faced to a challenge to migrate and synchronize two swift clusters in order to provide a customer a way to handle a swift migration easily.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">For that we have created a project called swiftsync hosted in github: https://github.com/enovance/swiftsync</p>
<p style="text-align: justify;">The swiftsync project provides two binaries called :</p>
<p style="text-align: justify;"> </p>
<ul style="text-align: justify;">
<li>swsync (The synchronizer)</li>
<li>swfiller (A swift filler)</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">swfiller is a tool designed to ease you the filling process of a swift cluster. This tool can be useful for testing the swsync capabilities on a test platform before using it on a production platform.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The second tool called swsync is the synchronization tool. It will migrate all swift content from an origin server to a destination server using only the API of the both proxy servers. Content that will be synchronized is the following :</p>
<ul style="text-align: justify;">
<li>account and account metadata</li>
<li>container and container metadata</li>
<li>object and object metadata</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">swsync will take care of data (accounts metadata, containers/objects, containers/objects metadata) that are already stored on destination cluster in order to speed up and optimize data copying. Indeed only data that is more recent on origin will be synchronized. The first run of swsync will migrate all data from origin to destination but next runs will only migrate modified data. The process is as follow :</p>
<ul style="text-align: justify;">
<li>will synchronize account metadata if they has changed on origin</li>
<li>will delete container on destination if no longer exists on origin</li>
<li>will create container on destination if not exists</li>
<li>will synchronize destination container metadata if not same as origin container.</li>
<li>will remove container object if no longer exists in origin container</li>
<li>will synchronize object and metadata object if the last-modified header is the latest on the origin.</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">swsync has been designed to be run and run again and not ensuring that the first pass goes well, if for example there is a network failure swsync will just skip it and hope to do it on the next run. So the tool can for instance be launched by a cron job to perform a diff synchronization each night.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">swsync will need to use a user that own the ResellerAdmin role. This role will let the user perform all kind of API operations on all swift account so swsync will be able to explore all origin and destination accounts to evaluate which data it need to synchronize.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Both tools come with unit and functional tests. Unit tests are managed by tox as all openstack projects.</p>
<p style="text-align: justify;">Important thing to mention is that the synchronization tool is currently a work in progress and has not been really tested on a cluster that own a huge amount of data.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Have a look to the project README file for further informations about the project.</p></div>
    </content>
    <updated>2013-05-14T07:40:10Z</updated>
    <category term="Cloud Open Source"/>
    <category term="English"/>
    <category term="Infrastructures"/>
    <category term="Non class&#xE9;"/>
    <category term="openstack swift"/>
    <author>
      <name>Fabien</name>
    </author>
    <source>
      <id>http://www.enovance.com</id>
      <link href="http://www.enovance.com/feed?category=openstackdev" rel="self" type="application/atom+xml"/>
      <link href="http://www.enovance.com" rel="alternate" type="text/html"/>
      <subtitle>Cloud &amp; Managed Services Provider</subtitle>
      <title>eNovance</title>
      <updated>2013-05-22T20:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>https://www.berrange.com/?p=809</id>
    <link href="https://www.berrange.com/posts/2013/05/13/a-new-configurable-cgroups-layout-for-libvirt-with-qemu-kvm-lxc/" rel="alternate" type="text/html"/>
    <title>A new (configurable) cgroups layout for libvirt with QEMU, KVM &amp; LXC</title>
    <summary>Several years ago I wrote a bit about libvirt and cgroups in Fedora 12. Since that time, much has changed, and we’ve learnt alot about the use of cgroups, not all of it good. Perhaps the biggest change has been the arrival of systemd, which has brought cgroups to the attention of a much wider [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Several years ago <a href="https://www.berrange.com/posts/2009/12/03/using-cgroups-with-libvirt-and-lxckvm-guests-in-fedora-12/">I wrote a bit</a> about libvirt and cgroups in Fedora 12. Since that time, much has changed, and we’ve learnt alot about the use of cgroups, not all of it good.</p>
<p>Perhaps the biggest change has been the arrival of systemd, which has brought cgroups to the attention of a much wider audience. One of the biggest positive impacts of systemd on cgroups, has been a formalization of how to <a href="http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups">integrate with cgroups</a> as an application developer. Libvirt of course follows these cgroups guidelines, has had input into their definition &amp; continues to work with the systemd community to improve them.</p>
<p>One of the things we’ve learnt the hard way is that the kernel implementation of control groups is not without cost, and the way applications use cgroups can have a direct impact on the performance of the system. The kernel developers have done a great deal of work to improve the performance and scalability of cgroups but there will always be a cost to their usage which application developers need to be aware of. In broad terms, the performance impact is related to the number of cgroups directories created and particularly to their depth.</p>
<p>To cut a long story short, it became clear that the directory hierarchy layout libvirt used with cgroups was seriously sub-optimal, or even outright harmful. Thus in libvirt 1.0.5, we introduced some <a href="http://libvirt.org/cgroups.html">radical changes to the layout</a> created.</p>
<p>Historically libvirt would create a cgroup directory for each virtual machine or container, at a path <code>$LOCATION-OF-LIBVIRTD/libvirt/$DRIVER-NAME/$VMNAME</code>. For example, if libvirtd was placed in <code>/system/libvirtd.service</code>, then a QEMU guest named “web1″ would live at <code>/system/libvirtd.service/libvirt/qemu/web1</code>. That’s 5 levels deep already, which is not good.</p>
<p>As of libvirt 1.0.5, libvirt will create a cgroup directory for each virtual machine or container, at a path <code>/machine/$VMNAME.libvirt-$DRIVER-NAME</code>. First notice how this is now completely disassociated from the location of libvirtd itself. This allows the administrator greater flexibility in controlling resources for virtual machines independently of system services. Second notice that the directory hierarchy is only 2 levels deep by default, so a QEMU guest named “web” would live at <code>/machine/web1.libvirt-qemu</code></p>
<p>The final important change is that the location of virtual machine / container can now be configured on a per-guest basis in the XML configuration, to override the default of <code>/machine</code>. So if the guest config says</p>
<pre>  &lt;resource&gt;
    &lt;partition&gt;/virtualmachines/production&lt;/partition&gt;
  &lt;/resource&gt;</pre>
<p>then libvirt will create the guest cgroup directory <code>/virtualmachines.partition/production.partition/web1.libvirt-qemu</code>. Notice that there will always be a <code>.partition</code> suffix on these user defined directories. Only the default top level directories <code>/machine</code>, <code>/system</code> and <code>/user</code> will be without a suffix. The suffix ensures that user defined directories can never clash with anything the kernel will create. The systemd PaxControlGroups will be updated with this &amp; a few escaping rules soon.</p>
<p>There is still more we intend todo with cgroups in libvirt, in particular adding APIs for creating &amp; managing these partitions for grouping VMs, so you don’t need to go to a tool outside libvirt to create the directories.</p>
<p>One final thing, libvirt now has <a href="http://libvirt.org/cgroups.html">a bit of documentation about its cgroups usage</a> which will serve as the base for future documentation in this area.</p></div>
    </content>
    <updated>2013-05-13T20:59:19Z</updated>
    <category term="Fedora"/>
    <category term="libvirt"/>
    <category term="OpenStack"/>
    <category term="Virt Tools"/>
    <category term="cgroups"/>
    <category term="partitions"/>
    <category term="resource"/>
    <category term="systemd"/>
    <author>
      <name>Daniel Berrange</name>
    </author>
    <source>
      <id>https://www.berrange.com</id>
      <link href="https://www.berrange.com/topics/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://www.berrange.com" rel="alternate" type="text/html"/>
      <subtitle>Writing about open source software, virtualization &amp; more</subtitle>
      <title>Daniel P. Berrangé » OpenStack</title>
      <updated>2013-05-13T21:36:18Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://russellbryantnet.wordpress.com/?p=345</id>
    <link href="http://russellbryantnet.wordpress.com/2013/05/13/openstack-compute-nova-roadmap-for-havana/" rel="alternate" type="text/html"/>
    <title>OpenStack Compute (Nova) Roadmap for Havana</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The Havana design summit was held mid-April.  Since then we have been documenting the Havana roadmap and going full speed ahead on development of these features.  The list of features that developers have committed to completing for the Havana release is tracked using blueprints on Launchpad. At the time of writing, we have 74 blueprints […]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=russellbryantnet.wordpress.com&amp;blog=35218887&amp;post=345&amp;subd=russellbryantnet&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Havana design summit was held mid-April.  Since then we have been documenting the Havana roadmap and going full speed ahead on development of these features.  The list of features that developers have committed to completing for the Havana release is tracked using <a href="https://blueprints.launchpad.net/nova/havana">blueprints on Launchpad</a>. At the time of writing, we have 74 blueprints listed that cover a wide range of development efforts.  Here are some highlights in no particular order:</p>
<h2>Database Handling</h2>
<p>Vish Ishaya made a change at the very beginning of the development cycle that will allow us to <a href="https://blueprints.launchpad.net/nova/+spec/backportable-db-migrations">backport database migrations</a> to the Grizzly release if needed. This is needed in case we need to backport a bug fix that requires a migration.</p>
<p>Dan Smith and Chris Behrens are working on a <a href="https://blueprints.launchpad.net/nova/+spec/unified-object-model">unified object model</a>. One of the things that has been in the way of rolling upgrades of a Nova deployment is that the code and the database schema are very tightly coupled. The primary goal of this effort is to decouple these things. This effort is bringing in some other improvements, as well, including better object serialization handling for rpc, as well as object versioning.</p>
<p>Boris Pavlovic continues to do a lot of cleanup of database support in Nova.  He’s <a href="https://blueprints.launchpad.net/nova/+spec/db-api-tests">adding tests</a> (and <a href="https://blueprints.launchpad.net/nova/+spec/db-api-tests-on-all-backends">more tests</a>), adding <a href="https://blueprints.launchpad.net/nova/+spec/db-enforce-unique-keys">unique constraints</a>, <a href="https://blueprints.launchpad.net/nova/+spec/db-session-cleanup">improving session handling</a>, and <a href="https://blueprints.launchpad.net/nova/+spec/db-improve-archiving">improving archiving</a>.</p>
<p>Chris Behrens has been working on a <a href="https://blueprints.launchpad.net/nova/+spec/db-mysqldb-impl">native MySQL database driver</a> that performs much better than the SQLAlchemy driver for use in large scale deployments.</p>
<p>Mike Wilson is working on supporting <a href="https://blueprints.launchpad.net/nova/+spec/db-slave-handle">read-only database slaves</a>. This will allow distributing some queries to other database servers to help scaling in large scale deployments.</p>
<h2>Bare Metal</h2>
<p>The Grizzly release of Nova included the bare metal provisioning driver. Interest in this functionality has been rapidly increasing. Devananda van der Veen proposed that the bare metal provisioning code be <a href="http://https://blueprints.launchpad.net/nova/+spec/deprecate-baremetal-driver">split out into a new project</a> called Ironic. The new project was <a href="http://http://eavesdrop.openstack.org/meetings/tc/2013/tc.2013-05-07-20.01.html">approved for incubation</a> by the OpenStack Technical Committee last week. Once this has been completed, there will be a driver in Nova that talks to the Ironic API. The Ironic API will present some additional functionality that doesn’t make sense to use to present in the Compute API in Nova.</p>
<p>Prior to the focus shift to Ironic, some new features were added to the bare metal driver. USC-ISI <a href="https://blueprints.launchpad.net/nova/+spec/add-tilera-to-baremetal">added support for Tilera</a> and Devananda added a feature that allows you to <a href="https://blueprints.launchpad.net/nova/+spec/baremetal-force-node">request a specific bare metal node</a> when provisioning a server.</p>
<h2>Version 3 (v3) of the Compute API</h2>
<p>The Havana release will include <a href="https://blueprints.launchpad.net/nova/+spec/nova-v3-api">a new revision of the compute REST API</a> in Nova. This effort is being led by Christopher Yeoh, with help from others. The v3 API will include <a href="https://blueprints.launchpad.net/nova/+spec/v3-api-extension-framework">a new framework for implementing extensions</a>, <a href="https://blueprints.launchpad.net/nova/+spec/v3-api-extension-versioning">extension versioning</a>, and a whole bunch of cleanup: (<a href="https://blueprints.launchpad.net/nova/+spec/v3-api-remove-project-id">1</a>) (<a href="https://blueprints.launchpad.net/nova/+spec/v3-api-expected-errors">2</a>) (<a href="https://blueprints.launchpad.net/nova/+spec/v3-api-inconsistencies">3</a>) (<a href="https://blueprints.launchpad.net/nova/+spec/v3-api-return-codes">4</a>).</p>
<h2>Networking</h2>
<p>The OpenStack community has been maintaining two network stacks for some time. Nova includes the nova-network service. Meanwhile, the OpenStack Networking project has been developed from scratch to support much more than nova-network does. Nova currently supports both. OpenStack Networking is expected to reach and surpass feature parity with nova-network in the Havana cycle. As a result, it’s time to deprecate <a href="https://blueprints.launchpad.net/nova/+spec/deprecate-nova-network">nova-network</a>. Vish Ishaya (from the Nova side) and Gary Kotton (from the OpenStack Networking side) have agreed to take on the challenging task of figuring out how to migrate existing deployments using nova-network to an updated environment that includes OpenStack Networking.</p>
<h2>Scheduling</h2>
<p>The Havana roadmap includes a mixed bag of scheduler features.</p>
<p>Andrew Laski is going to make the changes required so that the scheduler becomes exclusively a <a href="https://blueprints.launchpad.net/nova/+spec/query-scheduler">resource that gets queried</a>. Currently, when starting an instance, the request is handed off to the scheduler, which then hands it off to the compute node that is selected. This change will make it so proxying through nova-scheduler is no longer done. This will mean that <em>every</em> operation that uses the scheduler will interact with it the same way, as opposed to some operations querying and others proxying.</p>
<p>Phil Day will be adding an API extension that allows you to <a href="https://blueprints.launchpad.net/nova/+spec/scheduler-hints-api">discover which scheduler hints are supported</a>.  Phil is also looking at adding a way to <a href="https://blueprints.launchpad.net/nova/+spec/whole-host-allocation">allocate an entire host</a> to a single tenant.</p>
<p>Inbar Shapira is looking at allowing <a href="https://blueprints.launchpad.net/nova/+spec/multiple-scheduler-drivers">multiple scheduling policies</a> to be in effect at the same time.  This will allow you to have different sets of scheduler filters activated depending on some type of criteria (perhaps the requested availability zone).</p>
<p>Rerngvit Yanggratoke is implementing support for <a href="https://blueprints.launchpad.net/nova/+spec/utilization-based-scheduling">weighting scheduling decisions based on the CPU utilization</a> of existing instances on a host.</p>
<h2>Migrations</h2>
<p>Nova includes support for different types of migrations. We have cold migrations (migrate) and live migrations (live-migrate). We also have resize and evactuate, which are very related functions. The code paths for all of these features have evolved separately. It turns out that we can rework all of these things to share a lot of code. While we’re at it, we are restructuring the way these operations work to be primarily driven by the nova-conductor service.  This will allow the tasks to be tracked in a single place, as opposed to the flow of control being passed around between compute nodes. Having compute nodes tell each other what to do is also a very bad thing from a security perspective. These efforts are well underway. Tiago Rodrigues de Mello is working on <a href="https://blueprints.launchpad.net/nova/+spec/cold-migrations-to-conductor">moving cold migrations to nova-conductor</a> and John Garbutt is working on <a href="https://blueprints.launchpad.net/nova/+spec/live-migration-to-conductor">moving live migrations</a>. All of this is tracked under the <a href="https://blueprints.launchpad.net/nova/+spec/unified-migrations">parent blueprint for unified migrations</a>.</p>
<h2>And More!</h2>
<p>This post doesn’t include every feature on the roadmap. You can find that <a href="https://blueprints.launchpad.net/nova/havana">here</a>. I fully expect that more will be added to this list as Havana progresses. We don’t always know what features are being worked on in advance. If you have another feature you would like to propose, let’s talk about it on <a href="http://lists.openstack.org/pipermail/openstack-dev/">the openstack-dev list</a>!</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/russellbryantnet.wordpress.com/345/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/russellbryantnet.wordpress.com/345/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=russellbryantnet.wordpress.com&amp;blog=35218887&amp;post=345&amp;subd=russellbryantnet&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-13T19:02:41Z</updated>
    <category term="OpenStack"/>
    <author>
      <name>russellbryant</name>
    </author>
    <source>
      <id>http://russellbryantnet.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://russellbryantnet.wordpress.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://russellbryantnet.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://russellbryantnet.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://russellbryantnet.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Open Source Software Engineering</subtitle>
      <title>Russell Bryant » OpenStack</title>
      <updated>2013-05-22T14:20:55Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://dachary.org/?p=1961</id>
    <link href="http://dachary.org/?p=1961" rel="alternate" type="text/html"/>
    <title>Disaster recovery on host failure in OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The host bm0002.the.re becomes unavailable because of a partial disk failure on an Essex based OpenStack cluster using LVM based volumes and multi-host nova-network. The host had daily backups using rsync / and each LV was copied and compressed. Although … <a href="http://dachary.org/?p=1961">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The host bm0002.the.re becomes unavailable because of a partial disk failure on an Essex based OpenStack cluster using LVM based volumes and multi-host nova-network. The host had daily backups using <b>rsync /</b> and each LV was copied and compressed. Although the disk is failing badly, the host is not down and some reads can still be done. The nova services are shutdown, the host disabled using <b>nova-manage</b> and an attempt is made to recover from partially damaged disks and LV, when it leads to better results than reverting to yesterday’s backup.<br/>
<span id="more-1961"/></p>
<h3>restoring an instance from backup</h3>
<p>The host is marked as unavailable</p>
<pre>nova-manage service disable --host=bm0002.the.re --service=nova-compute
nova-manage service disable --host=bm0002.the.re --service=nova-network
nova-manage service disable --host=bm0002.the.re --service=nova-volume
</pre>
<p>and shows as such when listed</p>
<pre># nova-manage service list --host=bm0002.the.re
Binary           Host    Zone Status     State Updated_At
nova-compute     bm0002.the.re  bm0002  disabled   XXX   2013-05-11 09:18:25
nova-network     bm0002.the.re  bm0002  disabled   XXX   2013-05-11 09:18:30
nova-volume      bm0002.the.re  bm0002  disabled   XXX   2013-05-11 09:18:33
</pre>
<p>It can be removed completely later by modifying the mysql database directly. The april-ci instance was running on bm0002.the.re:</p>
<pre># nova list --name april-ci
+--------------------------------------+----------+---------+--------------------------------------+
|                  ID                  |   Name   |  Status |               Networks               |
+--------------------------------------+----------+---------+--------------------------------------+
| 4e8a8126-b27d-4c9e-abeb-4dc574c54254 | april-ci | SHUTOFF | novanetwork=10.145.9.5, 176.31.18.26 |
+--------------------------------------+----------+---------+--------------------------------------+
</pre>
<p>It is artificially moved to a host that is enabled:</p>
<pre>mysql -e "update instances set host = 'bm0001.the.re', availability_zone = 'bm0001' where hostname = 'april-ci'" nova
</pre>
<p>and deleted</p>
<pre>nova delete april-ci
</pre>
<p>Assuming the content of failed host  was backed up entirely ( i.e. rsync / ), the april-ci disk is located using the <b>id</b> shown above as the output of <b>nova list</b></p>
<pre># grep 4dc574c54254 /var/lib/nova/instances/*/*.xml
/var/lib/nova/instances/instance-000001de/libvirt.xml:    &lt;uuid&gt;4e8a8126-b27d-4c9e-abeb-4dc574c54254&lt;/uuid&gt;
</pre>
<p>and the corresponding disk is turned into a minimal file system</p>
<pre>chroot /backup/bm0002.the.re
mount -t proc none /proc
qemu-nbd --port 20000 /var/lib/nova/instances/instance-000001de/disk &amp;
nbd-client localhost 20000 /dev/nbd0
pv /dev/nbd0 &gt; april-ci.april-ci.img
fsck -fy $(pwd)/april-ci.april-ci.img
resize2fs -M april-ci.april-ci.img
exit
</pre>
<p>and uploaded to glance, using the same kernel and initrd, as shown with <b>nova image-show original-image-of-april-ci</b></p>
<pre>glance add name="april-ci-2013-05-11" disk_format=ami container_format=ami \
 kernel_id=2e714ea3-45e5-4bb8-ab5d-92bfff64ad28 \
 ramdisk_id=6458acca-24ef-4568-bb2b-e52322a5a11c &lt; /backup/bm0002.the.re/april-ci.april-ci.img
</pre>
<p>it is then rebooted using the same flavor</p>
<pre>nova boot --image 'april-ci-2013-05-11' \
  --flavor e.1-cpu.10GB-disk.1GB-ram \
  --key_name loic --availability_zone=bm0001 --poll april-ci
</pre>
<h3>recovering from a partially damaged logical volume</h3>
<p>A 30GB volume contains bad blocks toward the end ( after 26GB ) but it was not full. A <b>fsck</b> is run on a copy of the disk to check how much the recovery process would lose. It turns out to be less than a hundred files in a non-critical area. A new disk of the same size is allocated on another machine with</p>
<pre># euca-create-volume --zone bm0001 --size 30
VOLUME  vol-0000005b    30      bm0001  creating        2013-05-11T11:22:19.889Z
</pre>
<p>and the content of the damaged volume are copied over, until it fails with an I/O error.</p>
<pre>ssh -A root@bm0001.the.re
ssh bm0002.the.re pv /dev/nova-volumes/volume-00000143 | \
 pv &gt; /dev/nova-volumes/volume-0000005b
</pre>
<p>and it is repaired</p>
<pre>fsck -fy /dev/nova-volumes/volume-0000005b
</pre>
<p>The volume residing on the failed host is removed directly from the database</p>
<pre>mysql -e "update volumes set deleted = 1 where id = 30" nova
</pre>
<h3>recovering from a partially damanged instance disk</h3>
<p>An instance disk has a few failed blocks and may be recovered if the others are copied over. Because <b>rsync</b> is more resilient to I/O errors than <b>dd</b> or <b>pv</b>, it is used to recover as much as possible with:</p>
<pre># ssh -A root@bm0002.the.re
# rsync --inplace --progress /var/lib/nova/instances/instance-00000089/disk root@bm0001.the.re:/backup/bm0002.the.re/var/lib/nova/instances/instance-00000089/disk
  1843396608 100%    8.41MB/s    0:03:28 (xfer#1, to-check=0/1)
rsync: read errors mapping "/mnt/var/lib/nova/instances/instance-00000089/disk": Input/output error (5)
WARNING: disk failed verification -- update retained (will try again).
disk
  1843396608 100%   37.37MB/s    0:00:47 (xfer#2, to-check=0/1)
rsync: read errors mapping "/var/lib/nova/instances/instance-00000089/disk": Input/output error (5)
ERROR: disk failed verification -- update retained.
sent 1843836447 bytes  received 858892 bytes  7000741.32 bytes/sec
total size is 1843396608  speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
</pre>
<p>It is then turned into a file using <b>nbd</b> as shown above and checked for errors:</p>
<pre># fsck -fy $(pwd)/openstack.jenkins.img
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/openstack.jenkins.img: recovering journal
Clearing orphaned inode 117551 (uid=0, gid=0, mode=0100644, size=0)
Clearing orphaned inode 9764 (uid=0, gid=0, mode=0100644, size=1393052)
Clearing orphaned inode 9765 (uid=0, gid=0, mode=0100644, size=302040)
Clearing orphaned inode 7050 (uid=105, gid=109, mode=0100644, size=0)
Clearing orphaned inode 8841 (uid=0, gid=0, mode=0100644, size=81800)
Clearing orphaned inode 10235 (uid=0, gid=0, mode=0100644, size=253328)
Clearing orphaned inode 10240 (uid=0, gid=0, mode=0100644, size=180624)
Clearing orphaned inode 8840 (uid=0, gid=0, mode=0100644, size=874608)
Clearing orphaned inode 6469 (uid=0, gid=0, mode=0100755, size=1245180)
Clearing orphaned inode 10739 (uid=0, gid=0, mode=0100644, size=18192)
Clearing orphaned inode 10927 (uid=0, gid=0, mode=0100644, size=19908)
Clearing orphaned inode 10754 (uid=0, gid=0, mode=0100644, size=100820)
Clearing orphaned inode 10738 (uid=0, gid=0, mode=0100644, size=11468)
Clearing orphaned inode 10926 (uid=0, gid=0, mode=0100644, size=31568)
Clearing orphaned inode 10956 (uid=0, gid=0, mode=0100644, size=18780)
Clearing orphaned inode 10958 (uid=0, gid=0, mode=0100644, size=22312)
Clearing orphaned inode 10723 (uid=0, gid=0, mode=0100644, size=13976)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (2299561, counted=2283092).
Fix? yes
Free inodes count wrong (538192, counted=534536).
Fix? yes
/openstack.jenkins.img: ***** FILE SYSTEM WAS MODIFIED *****
/openstack.jenkins.img: 52984/587520 files (0.3% non-contiguous), 338348/2621440 blocks
</pre>
<p>If the lossage is better than recovering from yesterday's backup, the instance is rebooting using this copy.</p></div>
    </content>
    <updated>2013-05-11T14:09:26Z</updated>
    <category term="Essex"/>
    <category term="debian"/>
    <category term="openstack"/>
    <author>
      <name>Loic Dachary</name>
    </author>
    <source>
      <id>http://dachary.org</id>
      <link href="http://dachary.org/?feed=rss2&amp;cat=32" rel="self" type="application/atom+xml"/>
      <link href="http://dachary.org" rel="alternate" type="text/html"/>
      <subtitle>Free Software Developer Journey</subtitle>
      <title>Loïc Dachary » openstack</title>
      <updated>2013-05-22T07:36:47Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4204</id>
    <link href="http://www.openstack.org/blog/2013/05/openstack-community-weekly-newsletter-may-3-10/" rel="alternate" type="text/html"/>
    <title>OpenStack Community Weekly Newsletter (May 3 – 10)</title>
    <summary>OpenStack 2013.1.1 released 2013.1.1 release, the latest in the series of stable releases. These releases are bugfix updates to Grizzly and are intended to be relatively risk free with no intentional regressions or API changes. A total of 85 bugs have been fixed in this release. OpenStack Grizzly documentation released We have released a version [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3><a href="http://lists.openstack.org/pipermail/openstack-announce/2013-May/000100.html">OpenStack 2013.1.1 released </a></h3>
<p>2013.1.1 release, the latest in the series of stable releases. These releases are bugfix updates to Grizzly and are intended to be relatively risk free with no intentional regressions or API changes. A total of 85 bugs have been fixed in this release.</p>
<h3><a href="http://lists.openstack.org/pipermail/openstack-announce/2013-May/000097.html">OpenStack Grizzly documentation released</a></h3>
<p>We have released a version of the OpenStack official documentation for grizzly and it is now available at <a href="http://docs.openstack.org/grizzly.">http://docs.openstack.org/grizzly.</a> We continue to update docs through our continuous publishing process so feedback is always welcome. If you have questions about how OpenStack documentation is maintained or would like to get involved, see <a href="http://wiki.openstack.org/Documentation/HowTo.">http://wiki.openstack.org/Documentation/HowTo.</a> We had nearly 80 contributors to the documentation for the Grizzly release. Thanks to everyone who helped create and maintain accurate information for OpenStack.</p>
<h3><a href="http://lists.openstack.org/pipermail/community/2013-May/000252.html">Guidelines for answering question on Ask</a></h3>
<p>It’s time we start collecting guidelines for the moderators so we keep having a very informative tool, with consistently good questions and answers. This wiki page hosts the draft of the Guidelines for Moderators <a href="https://wiki.openstack.org/wiki/Community/AskModerators">https://wiki.openstack.org/wiki/Community/AskModerators</a>. Comments welcome before they’re moved to their natural home on Ask OpenStack.</p>
<h3><a href="http://www.openstack.org/blog/2013/05/discussions-at-breakfast-with-the-board-openstack-april-2013-summit/">Discussions at Breakfast with the Board – OpenStack April 2013 Summit</a></h3>
<p>The summary written by OpenStack Foundation’s Board of Directors of the things discussed during the Breakfast with the Bard in Portland, ranging from marketing to wifi, transparency to elections to what makes a contribution. A must read.</p>
<h3><a href="http://sebastien-han.fr/blog/2013/05/07/use-existing-rbd-images-and-put-it-into-glance/">Use existing RBD images and put it into Glance</a></h3>
<p>What if Glance, the OpenStack Image Service, was capable of converting images within its store, say from QCOW2 image to a RAW? Waiting for this capability to be added, <a href="http://sebastien-han.fr/">Sébastien Han</a> plays with a scenario where you have a KVM cluster backed by a Ceph Cluster and your CTO wants you to migrate the whole environment to OpenStack. Science fiction in action.</p>
<h2>Security Issues</h2>
<ul>
<li><a href="http://lists.openstack.org/pipermail/openstack-announce/2013-May/000098.html">Nova uses insecure keystone middleware tmpdir by default (CVE-2013-2030) </a></li>
<li><a href="http://lists.openstack.org/pipermail/openstack-announce/2013-May/000099.html">Keystone tokens not immediately invalidated when user is deleted (CVE-2013-2059)</a></li>
</ul>
<h2>OpenStack In The Wild</h2>
<p>A new section of the weekly newsletter dedicated to users of OpenStack. If you want to showcase how OpenStack helps you (or you know somebody that uses OpenStack) please let us know: <a href="mailto:communitymngr@openstack.org">email</a>, <a href="http://twitter.com/openstack">twitter</a>, <a href="http://www.reddit.com/r/openstack/">reddit</a> or <a href="http://en.wikipedia.org/wiki/IP_over_Avian_Carriers">avian carrier</a> will do). More content from Portland Summit:</p>
<ul>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/using-openstack-in-a-traditional-hosting-environment">Using OpenStack In A Traditional Hosting Environment</a> by EIG/Bluehost</li>
</ul>
<h2>Upcoming Events</h2>
<ul>
<li><a href="http://www.meetup.com/openstack-atlanta/events/107062982/" target="_blank">OpenStack Atlanta Meetup</a> May 16, 2013 – Atlanta, USA <a href="http://www.meetup.com/openstack-atlanta/events/107062982/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/OpenStack-Ireland/events/116567022/" target="_blank">OpenStack Dublin Meetup</a> May 22, 2013 – Dublin, Ireland <a href="http://www.meetup.com/OpenStack-Ireland/events/116567022/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/Openstack-London/events/116975682/" target="_blank">3rd London OpenStack Meetup</a> May 23, 2013 – London, UK <a href="http://www.meetup.com/Openstack-London/events/116975682/" target="_blank">Details</a></li>
<li><a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">OpenStack DACH Day</a> May 24, 2013 – Berlin Fairgrounds <a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/Indian-OpenStack-User-Group/events/117132352/" target="_blank">OpenStack India Meetup</a> May 26, 2013 – Bangalore, India at Anuta Network <a href="http://www.meetup.com/Indian-OpenStack-User-Group/events/117132352/" target="_blank">Details</a></li>
<li><a href="http://www.openstack-israel.org/" target="_blank">OpenStack Israel</a> May 27, 2013 – Tel-Aviv, Israel <a href="http://www.openstack-israel.org/" target="_blank">Details</a></li>
<li><a href="http://aosug.openstack.org.au/" target="_blank">Australian OpenStack User Group tri-city Meetup</a> May 27, 2013 – Australia <a href="http://aosug.openstack.org.au/" target="_blank">Details</a></li>
<li><a href="http://www.cebit.com.au/" target="_blank">OpenStack at CeBit Australia</a> May 28 – 30, 2013 – Sidney, Australia <a href="http://www.cebit.com.au/" target="_blank">Booth in Hall 4</a></li>
<li><a href="http://openstackceeday.com/" target="_blank">OpenStack CEE Day</a> May 29, 2013 – Budapest, Hungary <a href="http://openstackceeday.com/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Building an OpenStack Cloud</a> May 30, 2013 – Chicago, IL <a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">OpenStack meeting in Munich</a> Jun 11, 2013 – Munich, Germany <a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">Details</a></li>
<li><a href="http://event.gigaom.com/structure/" target="_blank">GigaOM Structure</a> Jun 19 – 20, 2013 – San Francisco, CA <a href="http://event.gigaom.com/structure/" target="_blank">Details</a></li>
<li><a href="https://wiki.openstack.org/wiki/DevCamp/EssenGermany2013" target="_blank">OpenStack DevCamp Essen</a> Jun 21 – 23, 2013 – Essen, Germany <a href="https://wiki.openstack.org/wiki/DevCamp/EssenGermany2013" target="_blank">Details</a></li>
<li><a href="http://2013.pycon-au.org/programme/schedule/friday" target="_blank">PyCon Australia – OpenStack Miniconf</a> Jul 05, 2013 – Hobart, Australia <a href="http://2013.pycon-au.org/programme/schedule/friday" target="_blank">Details</a></li>
<li><a href="http://www.oscon.com/oscon2013" target="_blank">OSCON 2013</a> Jul 22 – 26, 2013 – Portland, OR <a href="http://www.oscon.com/oscon2013" target="_blank">Details</a></li>
</ul>
<h2>Other News</h2>
<ul>
<li><a href="http://julien.danjou.info/blog/2013/rant-about-github-pull-request-workflow-implementation">Rant about Github pull-request workflow implementation</a></li>
<li><a href="http://lists.openstack.org/cgi-bin/mailman/private/marketing/2013-May/000054.html">Open Marketing Meeting – May 15 </a></li>
<li><a href="http://markmail.org/message/h3k6tmoatgbfe5an">Fixes and upgrades to Search on OpenStack Activity Board</a></li>
<li>OpenStack Project Meeting: <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-05-07-21.02.html">Summary</a> and <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-05-07-21.02.log.html">full logs</a>.</li>
</ul>
<h2>Welcome New Developers</h2>
<ul>
<li>Matt Wagner, Redhat</li>
</ul>
<h2>Got answers?</h2>
<p><a href="https://ask.openstack.org/">Ask OpenStack</a> is the go-to destination for OpenStack users. Interesting questions waiting for answers:</p>
<ul>
<li><a href="https://ask.openstack.org/question/992/can-i-still-use-nova-network-in-grizzly/">Can I still use nova-network in Grizzly?</a></li>
<li><a href="https://ask.openstack.org/question/261/vm-stops-boot-right-after-initializing-tun/">VM stops boot right after initializing tun</a></li>
<li><a href="https://ask.openstack.org/question/661/why-do-i-get-could-not-find-token-error-using-swift-with-s3-api/">Why do I get “Could not find token” error using Swift with s3 API?</a></li>
<li><a href="https://ask.openstack.org/question/534/how-do-i-effectively-disableenable-a-tenant-using-the-api/">How do I effectively disable/enable a tenant using the API?</a></li>
<li><a href="https://ask.openstack.org/question/815/how-do-i-debug-nova-service-with-eclipse-and-pydev/">How do I debug Nova service with eclipse and pydev</a></li>
<li><a href="https://ask.openstack.org/question/963/what-causes-error-service-n-net-is-not-running-when-running-stacksh/">What causes error “service n-net is not running” when running stack.sh?</a></li>
<li><a href="https://ask.openstack.org/question/989/how-to-list-server-id-using-python-novaclient-python-api/">How to list Server Id using python-novaclient Python API?</a></li>
<li><a href="https://ask.openstack.org/question/947/is-it-possible-to-modify-a-network-while-in-use/">Is it possible to modify a network while in use?</a></li>
<li><a href="https://ask.openstack.org/question/945/how-to-set-up-metadata-service-on-a-flat-network/">How to set up metadata service on a flat network?</a></li>
<li><a href="https://ask.openstack.org/question/910/keystone-remove_user-command-removing-all-users-not-just-the-specified-ones/">Keystone remove_user command removing ALL users not just the specified ones</a></li>
<li><a href="https://ask.openstack.org/question/815/how-do-i-debug-nova-service-with-eclipse-and-pydev/">How do I debug Nova service with eclipse and pydev</a></li>
<li><a href="https://ask.openstack.org/question/813/enable_tenant_tunnels-ovs-version-check-in-compute-fails/">ENABLE_TENANT_TUNNELS, OVS Version check in Compute fails</a></li>
<li><a href="https://ask.openstack.org/question/695/how-to-make-openstack_auth-the-default-authentication-backend-for-django-admin/">How to make openstack_auth the default authentication backend for django admin?</a></li>
</ul>
<p><em>The weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</em></p>
<p> </p></div>
    </content>
    <updated>2013-05-10T23:44:50Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://julien.danjou.info/blog/2013/rant-about-github-pull-request-workflow-implementation</id>
    <link href="http://julien.danjou.info/blog/2013/rant-about-github-pull-request-workflow-implementation" rel="alternate" type="text/html"/>
    <title>Rant about Github pull-request workflow implementation</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>One of my recent innocent tweet about <em>Gerrit vs Github</em> triggered much more
reponses and debate that I expected it to. I realize that it might be worth
explaining a bit what I meant, in a text longer than 140 characters.</p>
<blockquote class="twitter-tweet illustration">
<p>
I'm having a hard time now contributing to projects not using Gerrit. Github
isn't that good.</p>— Julien Danjou (@juldanjou)
<a href="https://twitter.com/juldanjou/status/332076595521146881">May 8, 2013</a></blockquote>

&lt;script async="async" charset="utf-8" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;

<h1>The problems with Github pull-requests</h1>
<p><img class="illustration pull-right" src="http://julien.danjou.info/media/images/github.svg" width="150"/></p>
<p>I always looked at Github from a distant eye, mainly because I always
disliked their pull-request handling, and saw no value in the social hype it
brings. Why?</p>
<h2>One click away isn't one click effort</h2>
<p>The pull-request system looks like an incredible easy way to contribute to
any project hosted on Github. You're a click away to send your contribution
to any software. But the problem is that any worthy contribution isn't an
effort of a single click.</p>
<p>Doing any proper and useful contribution to a software is never done right
the first time. There's a dance you will have to play. A slowly rhythmed
back and forth between you and the software maintainer or team. You'll have
to dance it until your contribution is correct and can be merged.</p>
<p>But as a software maintainer, not everybody is going to follow you on this
choregraphy, and you'll end up with pull-request you'll never get finished
unless you wrap things up yourself. So the gain in pull-requests here, isn't
really bigger than a good bug report in most cases.</p>
<p>This is where the social argument of Github isn't anymore. As soon as you're
talking about projects bigger than a color theme for your favorite text
editor, this feature is overrated.</p>
<h2>Contribution rework</h2>
<p>If you're lucky enough, your contributor will play along and follow you on
this pull-request review process. You'll make suggestions, he will listen
and will modify his pull-request to follow your advice.</p>
<p>At this point, there's two technics he can use to please you.</p>
<h3>Technic #1: the Topping</h3>
<p>Github's pull-requests invite you to send an entire branch, eclipsing the
fact that it is composed of several commits. The problem is that a lot of
one-click-away contributors do not masterize Git and/or do not make efforts
to build a logical patchset, and nothing warns them that their branch
history is wrong. So they tend to change stuff around, commit, make a
mistake, commit, fix this mistake, commit, etc. This kind of branch is
composed of the whole brain's construction process of your contributor, and
is a real pain to review. To the point I quite often give up.</p>
&lt;figure&gt;
<img class="illustration" src="http://julien.danjou.info/media/images/blog/2013/github-pull-request-iterative.png"/>
&lt;figcaption&gt;
A typical case: 3 commits to build a 4 lines long file.
&lt;/figcaption&gt;
&lt;/figure&gt;

<p>Without Github, the old method that all software used, and that many
software still use (e.g. Linux), is to send a patch set over e-mail (or any
other medium like Gerrit). This method has one positive effect, that it
forces the contributor to acknowledge the list of commits he is going to
publish. So, if the contributor he has fixup commits in his history, they
are going to be seen as first class citizen. And nobody is going to want to
see that, neither your contributor, nor the software maintainers. Therefore,
such a system tend to push contributors to write atomic, logical and
self-contained patchset that can be more easily reviewed.</p>
<h3>Technic #2: the History Rewriter</h3>
<p>This is actually the good way to build a working and logical patchset using
Git. Rewriting history and amending problematic patches using the famous
<em>git rebase --interactive</em> trick.</p>
<p>The problem is that if your contributor does this and then repush the branch
composing your pull-request to Github, you will both lose the previous
review done, each time. There's no history on the different versions of the
branch that has been pushed.</p>
<p>In the old alternative system like e-mail, no information is lost when
reworked patches are resent, obviously. This is far better because it eases
the following of the iterative discussions that the patch triggered.</p>
<p>Of course, it would be possible for Github to enhance this and fix it, but
currently it doesn't handle this use case correctly..</p>
&lt;figure&gt;
<a href="https://github.com/hylang/hy/pull/157">
<img class="illusration" src="http://julien.danjou.info/media/images/blog/2013/hylang-pull-request-157.png"/>
</a>
&lt;figcaption&gt;
Exercise for the doubtful readers: good luck finding all revisions of my
patch in the pull-request #157 of Hy.&lt;/figcaption&gt;
&lt;/figure&gt;

<h1>A quick look at OpenStack workflow</h1>
<p><img class="illustration pull-right" src="http://julien.danjou.info/media/images/projects/openstack.png" width="150"/></p>
<p>It's not a secret for anyone that I've been contributing to OpenStack as a
daily routine for the last 18 months. The more I contribute, the more I like
the contribution workflow and process. It's already
<a href="https://wiki.openstack.org/wiki/Gerrit_Workflow">well and longly described on the wiki</a>,
so I'll summarize here my view and what I like about it.</p>
<h2>Gerrit</h2>
<p>To send a contribution to any OpenStack project, you need to pass via
Gerrit. This is way simpler than doing a pull-request on Github actually,
all you have to do is do your commit(s), and type
<a href="https://pypi.python.org/pypi/git-review"><em>git review</em></a>. That's it. Your
patch will be pushed to Gerrit and available for review.</p>
<p>Gerrit allows other developers to review your patch, add comments anywhere
on it, and score your patch up or down. You can build any rule you want for
the score needed for a patch to be merged; OpenStack requires one positive
scoring from two core developers before the patch is merged.</p>
<p>Until a patch is validated, it can be reworked and amended locally using
Git, and then resent using
<em>git review</em> again. That simple.
The historic and the different version of the patches are available, with
the whole comments. Gerrit doesn't lose any historic information on your
workflow.</p>
<p>Finally, you'll notice that this is actually the same kind of workflow
projects use when they work by patch sent over e-mail. Gerrit just build a
single place to regroup and keep track of patchsets, which is really handy.
It's also much easier for people to actually send patch using a command line
tool than their MUA or <em>git send-email</em>.</p>
<h2>Gate testing</h2>
<p>Testing is mandatory for any patch sent to OpenStack. Unit tests and
functionnals test are run for <em>each version of each patch of the patchset</em>
sent. And until your patch passes all tests, it will be <em>impossible</em> to
merge it.
Yes, this implies that all patches in a patchset must be working commits and
can be merged on their own, without the entire patchset going in! With such
a restricution, it's impossible to have "fixup commits" merged in your
project and pollute the history and the testability of the project.</p>
<p>Once your patch is validated by core developers, the system checks that
there is not any merge conflicts. If there's not, tests are re-run, since
the branch you are pushing to might have changed, and if everything's fine,
the patch is merged.</p>
<p>This is an uncredible force for the quality of the project. This implies
that no broken patchset can ever sneak in, and that the project pass always
all tests.</p>
<h1>Conclusion: accessibility vs code review</h1>
<p>In the end, I think that one of the key of any development process, which is
code review, is not well covered by Github pull-request system. It is, along
with history integrity, damaged by the goal of making contributions easier.</p>
<p>Choosing between these features is probably a trade-off that each project
should do carefully, considering what are its core goals and the quality of
code it want to reach.</p>
<p>I tend to find that OpenStack found one of the best trade-off available
using Gerrit and plugging testing automation via Jenkins on it, and I would
probably recommend it for any project taking seriously code reviews and
testing.</p></div>
    </content>
    <updated>2013-05-10T17:55:00Z</updated>
    <published>2013-05-10T17:55:00Z</published>
    <category label="Github" scheme="/blog/tags" term="github"/>
    <category label="Openstack" scheme="/blog/tags" term="openstack"/>
    <category label="Gerrit" scheme="/blog/tags" term="gerrit"/>
    <author>
      <name>Julien Danjou</name>
    </author>
    <source>
      <id>http://julien.danjou.info/blog/tags/openstack.xml</id>
      <link href="http://julien.danjou.info/blog/tags/openstack.xml" rel="self" type="application/atom+xml"/>
      <link href="http://julien.danjou.info/blog/" rel="alternate" type="text/html"/>
      <title>jd:/dev/blog</title>
      <updated>2013-05-22T14:45:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4186</id>
    <link href="http://www.openstack.org/blog/2013/05/discussions-at-breakfast-with-the-board-openstack-april-2013-summit/" rel="alternate" type="text/html"/>
    <title>Discussions at Breakfast with the Board – OpenStack April 2013 Summit</title>
    <summary>It is an exciting time to be part of the OpenStack community.  It was a great conference with lots of momentum around OpenStack.  The speed and growth of the community is amazing. Tuesday morning during the Summit, we continued the tradition of Breakfast With The Board (BwtB).  We wish to thank all who participated.  As board members we very much appreciated your comments of [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>It is an exciting time to be part of the OpenStack community.  It was a great conference with lots of momentum around OpenStack.  The speed and growth of the community is amazing.</p>
<p>Tuesday morning during the Summit, we continued the tradition of Breakfast With The Board (BwtB).  We wish to thank all who participated.  As board members we very much appreciated your comments of support, feedback and ideas.  We heard many positive and encouraging comments  and participated in many lively discussions.</p>
<p>Through this writeup we would like to share what we heard.   There was a wide variety of topics discussed, including:</p>
<p><strong>Summit Design Session Growing Pains</strong><br/>
Despite a variety of changes tested and introduced over the past Summits, accommodating all who wish to participate in the Summit design sessions continue to exhibit growing pains.  The design sessions are “intended to be small, focused developer working sessions where the roadmap is set by active contributors on the project.”  With such a description it is easy to see why so many business persons, users, and developers want to participate or listen in. Yet the fear is that a varied large audience will decrease session output.</p>
<p>Many ideas were voiced at the BwtB as to how to address the issue, including room moderators, attendee prioritization, seating arrangements and session segregation.</p>
<p><strong>“Scotty we need more power er WIFI”</strong><br/>
While the conference survey will prioritize on  what items will be most relevant to improve for the next Summit, one of the vocal suggestion at the BwtB was the never ending need for more WIFI.  We techies live on WIFI.</p>
<p><strong>Who the heck is…</strong><br/>
Leading the list for reasons to attend the Summit is to simply meet people we work with on IRC and other community channels.  A simple suggestion was made that we add IRC nicks in a nice big font to the front and back of the conference badges. 50% of the time you see the back of someone’s badge and don’t know who they are.</p>
<p><strong>Traveling to the Fall Summit</strong><br/>
For those traveling to the fall Summit from the North America, concerns over prohibitive travel costs was raised.  Determining a Summit location is made up of many different factors.  Cost of travel being one.    A Summit location effects attendance, whether it be in Portland or Hong Kong.  Balancing that cost can be tricky.   The planning committee investigations concluded that attendees will find that the travel rates will not be the feared prohibitive if they do some research and book early.</p>
<p><strong>Driving Priorities</strong><br/>
Several discussions evolved around the idea of how customer priorities are injected into each projects focus and features. Typically in a corporate development model such interests are captured and formulated into the development model through Product Owners (PO) or Product Managers (PM).  How does this map to the OpenStack model?  Which is easily generalized to how does this map to the open source world?</p>
<p>At the BwtB, several of the discussions converged on the notion of contribution.  Contribution either in the form of code, leadership or voice.  One company simply cannot pretend to make choices for resources in another company. At most you can find other resources from a  company which share a problem you are helping describe and therefore solve.</p>
<p>A familiar saying in the open source world is “scratch the itch”.  It is this saying which has driven open source developers for years.  If you find a need that nothing out there can meet, write a solution yourself or better yet voice the need to help find those who share in the need and write a solution together contributing in ways that leverage your experience and expertise or providing support to those who can contribute for you.</p>
<p><strong>Big Vision</strong><br/>
Also discussed at the BwtB was the notion of having the TC play more of a role across the various projects, for things like security and API versioning, aligning and setting direction across the groups. Citing the need for the TC (or someone at least) to give more cross project consideration for:<br/>
API compatibility and consistency<br/>
architectural consistency<br/>
security<br/>
Input from Users to guide our path</p>
<p><strong>Align the Doc</strong><br/>
Opinions voiced concerns that the documentation lags the implementations.  So how do we  make the OpenStack documentation more up-to-date and improve quality and timelines?  That was the question raised by attendees at the BwtB.  Offered suggestions included a requirement for documentation changes to be checked in concurrent with the code, rather than just setting a flag that the doc’s might be effected.</p>
<p><strong>What comprises OpenStack?</strong><br/>
A couple of tables discussed the current progress around the current Core/Integrated/Incubated framework with input on moving forward; people seem to prefer the kernel/drivers analogy. There is confusion regarding the new approach to core-integrated-incubation,  what the differences are, who gets seats on the TC, etc.  Early and continued discussions at Technical Committee and Board on this are important for next phases of the effort. It is important  to ensure that the TC and Board sign off on all steps with formal statements by the foundation when we arrive at any and all conclusions.</p>
<p><strong>Interoperability</strong><br/>
There is a lot of interop interest. Folks at the BwtB seemed to be mostly happy with the refstack approach. They voiced opinions about whether API-based interop or same-codebase interop is appropriate in various projects and for having verification teams for plug-ins.</p>
<p><strong>Marketing OpenStack</strong><br/>
Where does OpenStack as the data center operating system model go?  How to support that?  Marketing discussions ranged across several of the tables.  Including a conversation at one of the tables  on how to best explain OpenStack to CIO/IT Directors. Participants in the discussion felt that the video overviews available on the OpenStack website as well as the user stories presented at the Summit Keynotes were of great help.</p>
<p>Others pondered why FUD is generated by open source competition with a  lack of sense of those for who their competition really should be (proprietary software).</p>
<p>And others voiced concern over perceptions around OpenStack.  These perceptions include, complexity, talent shortages, security gaps and that it takes too many people to run OpenStack.  Such perceptions create a barrier to adoption.</p>
<p><strong>Transparency</strong><br/>
The Board at its February meeting, launch a committee to improve transparency and foster collaboration between the foundation members and members of the board, technical committee, user committee and other committees.  Members of the committee took the opportunity to discuss, at their tables, the committee ideas and efforts.  Everyone is all for transparency and seeking a balance between transparency and compromising the strategic position of the project was accepted as an important consideration. The ombudsman and staggered release were seen as valid solutions.</p>
<p>Attendees also voiced the importance for direct participation within project processes.  It is important that the TC and board to listen to what the project have to say.</p>
<p><strong>Elections</strong><br/>
The Board at its February meeting also launched an effort to improve the Individual member election process.  The board members engaged in this effort took the opportunity to gather feedback at the BwtB on the ideas and efforts underway.  Many were pleased that a schedule for implementation of changes is being set and were pleased with the efforts so far.</p>
<p><strong>Conclusion</strong><br/>
As you can see there was a wide range of topics raised and discussed.  Each of which could be worthy of a full writeup on its own. As a board we appreciate the input.  We will delve into the issues further and will use this input to guide the prioritization of our efforts.  So again thank you for your participation. We look forward to the next BwtB at the fall Summit.</p>
<p>Regards,</p>
<p>OpenStack Board of Directors</p></div>
    </content>
    <updated>2013-05-08T16:09:06Z</updated>
    <category term="community"/>
    <category term="Development"/>
    <category term="Event"/>
    <category term="Governance"/>
    <category term="OpenStack Update"/>
    <category term="Summit"/>
    <category term="Uncategorized"/>
    <author>
      <name>OpenStack Board</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://sebastien-han.fr/blog/2013/05/07/use-existing-rbd-images-and-put-it-into-glance</id>
    <link href="http://sebastien-han.fr/blog/2013/05/07/use-existing-rbd-images-and-put-it-into-glance/" rel="alternate" type="text/html"/>
    <title>Use existing RBD images and put it into Glance</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img class="center" src="http://sebastien-han.fr/images/glance-location-rbd.jpg" title="Use existing RBD images and put it into Glance"/></p>

<p>The title of the article is not that explicit, actually I had trouble to find a proper one. Thus let me clarify a bit. Here is the context I was wondering if Glance was capable of converting images within its store. The quick answer is no, but I think such feature is worth to be implemented. Glance could be able to convert a QCOW2 image to a RAW format. Usually if you already have an image within let’s say a Ceph cluster (RBD), you have to download the image (since you probably don’t have the source image file anymore), then manually convert it with qemu-img (QCOW2 –&gt; RAW) and eventually import it into Glance. Enough talk about this, I’ll address this in a future article. For now let’s stick to the first matter. Imagine that you have a KVM cluster backed by a Ceph Cluster and your CTO wants you to migrate the whole environment to OpenStack because it’s trendy (joking, OpenStack just rocks!). You’re not going to backup all your images and then build a new cluster or something like that, you might want OpenStack (Glance) to be aware of your Ceph cluster. Generally speaking you <em>just</em> have to connect Glance to one of your image pool. After this, the only thing to do is to create (it’s more registering the images ID and metadata than creating a new image) into Glance. No worries here’s the explanation. Longest introduction ever.</p>




<p>In this article, I’m assuming that Glance is already connected to Ceph and to the proper RBD pool. Before starting anything, please understand that <strong>within the current Grizzly stable branch, the RBD backend is not implemented</strong>. That’s funny because we don’t need that much to implement it. The bug report is on <a href="https://bugs.launchpad.net/glance/+bug/1176994">launchpad</a> and the proposed feature is under review on <a href="https://review.openstack.org/#/c/28325/">Gerrit</a>.</p>

<p>However if you want to enable the fix now:</p>

<ul>
<li>Go to the line <strong>278</strong> of <code>/opt/stack/glance/glance/api/v1/images.py</code></li>
<li>Then simply edit the line like so:</li>
</ul>


&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class="python"><span class="line"><span class="k">for</span> <span class="n">scheme</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'s3'</span><span class="p">,</span> <span class="s">'swift'</span><span class="p">,</span> <span class="s">'http'</span><span class="p">,</span> <span class="s">'rbd'</span><span class="p">]:</span>
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;


<h2>Let’s test this!</h2>

<p>Get the image size from the rbd client:</p>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>rbd -p images info ubuntu-raw
</span><span class="line">rbd image <span class="s1">'ubuntu-raw'</span>:
</span><span class="line">size 2048 MB in 512 objects
</span><span class="line">order 22 <span class="o">(</span>4096 KB objects<span class="o">)</span>
</span><span class="line">block_name_prefix: rb.0.3ded.2eb141f2
</span><span class="line">format: 1
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;


<p>Eventually create/register the new image:</p>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>glance image-create --size 2147483648 --name ubuntu-rbd --store rbd --disk-format raw --container-format ovf --location rbd://ubuntu-raw
</span><span class="line">+------------------+--------------------------------------+
</span><span class="line">| Property         | Value                                |
</span><span class="line">+------------------+--------------------------------------+
</span><span class="line">| checksum         | None                                 |
</span><span class="line">| container_format | ovf                                  |
</span><span class="line">| created_at       | 2013-05-06T15:29:26                  |
</span><span class="line">| deleted          | False                                |
</span><span class="line">| deleted_at       | None                                 |
</span><span class="line">| disk_format      | raw                                  |
</span><span class="line">| id               | 0d47c421-b079-44ff-bcc5-ee711d500512 |
</span><span class="line">| is_public        | False                                |
</span><span class="line">| min_disk         | 0                                    |
</span><span class="line">| min_ram          | 0                                    |
</span><span class="line">| name             | ubuntu-rbd-hack                      |
</span><span class="line">| owner            | 19292b3b597b4ecc9a41103cc312a42f     |
</span><span class="line">| protected        | False                                |
</span><span class="line">| size             | 2147483648                           |
</span><span class="line">| status           | active                               |
</span><span class="line">| updated_at       | 2013-05-06T15:29:26                  |
</span><span class="line">+------------------+--------------------------------------+
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;


<p><span class="text_quote">R </span>Note about the URI from the <code>--location</code> option, there are 2 way to build it, it can be:</p>

<ul>
<li><code>rbd://&lt;fsid&gt;/&lt;pool&gt;/&lt;image&gt;/&lt;snapshot&gt;</code></li>
<li><code>rbd://&lt;image-name&gt;</code> ; Glance will figured out the pool since you put it into the Glance configuration.</li>
</ul>


<p><strong>It either 1 or 4 field(s).</strong></p>

<br/>


<blockquote><p>Of course the example was only with one image but the method will definitely work for a whole Ceph cluster with tons of images!</p></blockquote></div>
    </content>
    <updated>2013-05-07T15:15:00Z</updated>
    <source>
      <id>http://sebastien-han.fr/</id>
      <author>
        <name>Sébastien Han</name>
      </author>
      <link href="http://sebastien-han.fr/atom.xml" rel="self" type="application/atom+xml"/>
      <link href="http://sebastien-han.fr/" rel="alternate" type="text/html"/>
      <title>Sébastien Han - Openstack</title>
      <updated>2013-05-13T09:51:23Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://sebastien-han.fr/blog/2013/05/06/ha-from-devoops-side-openstack-summit-video</id>
    <link href="http://sebastien-han.fr/blog/2013/05/06/ha-from-devoops-side-openstack-summit-video/" rel="alternate" type="text/html"/>
    <title>HA from DevOops side: OpenStack summit video</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>It’s a bit late that I’m happy to share our talk (with <a href="http://my1.fr/">Emilien Macchi</a>) at the OpenStack Summit. Ok that was my first talk, so please be gentle ^<sup>.</sup> In the meantime, here the video. In this presentation, we shared 2 HA reference architectures for OpenStack.</p>

<div class="embed-video-container">&lt;iframe src="http://www.youtube.com/embed/HJaLvid0X9U"&gt;&lt;/iframe&gt;</div>


<p>Slides are available on <a href="http://www.slideshare.net/enovance/summit-portland-ha-from-dev-ops-side">Slideshare</a></p>

&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="446" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/19054325" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" width="595"&gt;&lt;/iframe&gt;


<p/>

<br/>


<blockquote><p>See you in Hong Kong! Cheers!</p></blockquote></div>
    </content>
    <updated>2013-05-06T14:52:00Z</updated>
    <source>
      <id>http://sebastien-han.fr/</id>
      <author>
        <name>Sébastien Han</name>
      </author>
      <link href="http://sebastien-han.fr/atom.xml" rel="self" type="application/atom+xml"/>
      <link href="http://sebastien-han.fr/" rel="alternate" type="text/html"/>
      <title>Sébastien Han - Openstack</title>
      <updated>2013-05-13T09:51:23Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4182</id>
    <link href="http://www.openstack.org/blog/2013/05/openstack-community-weekly-newsletter-apr-25-may-3/" rel="alternate" type="text/html"/>
    <title>OpenStack Community Weekly Newsletter (Apr 25 – May 3)</title>
    <summary>Introducing Murano: Bringing Windows Environments to OpenStack In response to growing demand for deploying and running Windows based applications on OpenStack cloud, the team at Mirantis started Murano: a native OpenStack component that enables fast provisioning and operation of Windows Environments on demand. Who Wrote OpenStack Grizzly Docs? Sneaking a peek at the numbers for [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3><a href="http://www.mirantis.com/blog/introducing-murano-bringing-windows-environment-to-openstack/">Introducing Murano: Bringing Windows Environments to OpenStack</a></h3>
<p>In response to growing demand for deploying and running Windows based applications on OpenStack cloud, the team at Mirantis started <a href="https://wiki.openstack.org/wiki/Murano">Murano</a>: a native OpenStack component that enables fast provisioning and operation of Windows Environments on demand.</p>
<h3><a href="http://justwriteclick.com/2013/04/26/who-wrote-openstack-grizzly-docs/">Who Wrote OpenStack Grizzly Docs?</a></h3>
<p>Sneaking a peek at the numbers for documentation along with the code should show us pointers about docs keeping up with code. <a href="http://justwriteclick.com/">Anne Gentle</a> dives into the documentation with data and insights.</p>
<h3><a href="https://wiki.openstack.org/wiki/Release_Naming#.22I.22_release_cycle_naming">“I” release cycle naming</a></h3>
<p>The next OpenStack summit will happen in Hong Kong. That creates a pretty challenging naming problem, since there is no word starting with “i’ in classic transliteration of Chinese words. So the Technical Committee is willing to bend the rules <i>a little</i> to extend the range of candidates… Feel free to add suggestions to the list on the wiki.</p>
<h3><a href="http://engineering.cloudscaling.com/stacker-voices-monty-taylor-hp/">Stacker Voices: Monty Taylor, HP</a></h3>
<p><a href="http://engineering.cloudscaling.com/">Cloudscaling Engineering</a> talked with Monty Taylor of HP (reaching rockstar status also with a <a href="http://www.wired.com/">wired.com</a> <a href="http://www.wired.com/wiredenterprise/2013/04/new-hackers-taylor/">profile</a> this week) at the OpenStack Summit in Portland. Monty leads the CI (continuous innovation) project for OpenStack. In that role, he and his group have built testing systems that have made it possible for the OpenStack project to scale from a few dozen contributors for the Bexar release to more than 700 developers now pushing hundreds of patches daily to OpenStack. Watch the video <a href="http://www.youtube.com/watch?v=eqw4zxqPelc" target="_blank">on YouTube</a>.</p>
<h3><a href="http://markmail.org/message/kjv4kry67732nawb">A little tracing hack</a></h3>
<p>Timothy Daly at Yahoo! added metrics and tracing for OpenStack and released <a href="https://github.com/timjr/tomograph">tomograph</a>: a tool to see what and how OpenStack is doing behind the curtains.</p>
<h3><a href="http://www.openstack.org/blog/2013/05/contribute-to-openstack-activity-board/">Contribute to OpenStack Activity Board</a></h3>
<p>We’ve released the <a href="http://activity.openstack.org/data/display/WIKIDS/Home">complete documentation</a> for <a href="http://activity.openstack.org/data/">OpenStack Insights</a>, with binaries and source code downloadable from <a href="https://sourceforge.net/projects/wikidsopenstack">Sourceforge</a> while the <a href="http://activity.openstack.org/dash/">OpenStack Dash</a> tools are the vanilla <a href="http://metricsgrimoire.github.io/">MetricsGrimoire</a> set <a href="https://github.com/MetricsGrimoire">hosted on github</a>. The code is free as in freedom so you’re welcome to play with it.</p>
<h3><a href="http://cloudystuffhappens.blogspot.com/2013/04/how-to-run-pylint-with-few-false.html">How to run pylint with few false positives</a></h3>
<p>Testing your python code can get complex and with pylint, you <em>will </em>see false positives, meaning it will complain some lines as bugs that are actually correct. lintstack is designed to address this problem: <strong>reduce false positives from pylint as much as possible without sacrificing accuracy</strong>. <a href="http://cloudystuffhappens.blogspot.com/search/label/openstack">Yun Mao</a> describes how lintstack works.</p>
<h2>Report from Previous Events</h2>
<ul>
<li>By <a href="http://aababilov.wordpress.com/">Alessio Ababilov</a>: <a href="http://aababilov.wordpress.com/2013/05/02/openstack-summit-april-2013-a-first-experience/">OpenStack Summit April 2013: a First Experience</a></li>
<li>By <a href="http://www.buildcloudstorage.com/">Amar Kapadia</a>: <a href="http://blogs.evault.com/cloud-connected-recovery/cloud-connected-storage/openstack-swift-comes-of-age-with-the-grizzly-release/">Coming of Age of Swift </a>.</li>
</ul>
<h2>Tips and Tricks</h2>
<ul>
<li>By <a href="http://adam.younglogic.com/">Adam Young</a>: <a href="http://adam.younglogic.com/2013/05/kerberizing-postgresql-with-freeipa-for-keystone/">Kerberizing PostgreSQL with FreeIPA for Keystone</a></li>
<li>By <a href="http://giuliofidente.com/">Giulio Fidente</a>: <a href="http://giuliofidente.com/2013/04/openstack-cinder-add-more-volume-nodes.html">OpenStack Cinder – Add more volume nodes</a></li>
<li>By <a href="http://blog.flaper87.org/">Flavio Percoco</a>: <a href="http://blog.flaper87.org/post/517c3ea50f06d3497faffe5a/">Dynamic TTL Collection in Mongodb for Marconi</a></li>
</ul>
<h2>OpenStack In The Wild</h2>
<p>A new section of the weekly newsletter dedicated to users of OpenStack. If you want to showcase how OpenStack helps you (or you know somebody that uses OpenStack) please let us know: <a href="mailto:communitymngr@openstack.org">email</a>, <a href="http://twitter.com/openstack">twitter</a>, <a href="http://www.reddit.com/r/openstack/">reddit</a> or <a href="http://en.wikipedia.org/wiki/IP_over_Avian_Carriers">avian carrier</a> will do). Meanwhile watch the keynotes from Portland Summit:</p>
<ul>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-bloomberg-user-spotlight">Bloomberg User Spotlight</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-comcast-user-spotlight">Keynote: Comcast User Spotlight</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-best-buy-user-spotlight">Keynote: Best Buy User Spotlight</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-clouds-in-high-energy-physics">Keynote: Clouds in High Energy Physics</a></li>
<li><a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-openstack-at-the-national-security-agency-nsa">Keynote: OpenStack at the National Security Agency (NSA)</a></li>
</ul>
<h2>Upcoming Events</h2>
<ul>
<li><a href="http://www.meetup.com/OpenStack-DACH/events/108876542/" target="_blank">OpenStack meeting in Cologne</a> May 04, 2013 – Cologne, Germany <a href="http://www.meetup.com/OpenStack-DACH/events/108876542/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/openstack-atlanta/events/107062982/" target="_blank">OpenStack Atlanta Meetup</a> May 16, 2013 – Atlanta, USA <a href="http://www.meetup.com/openstack-atlanta/events/107062982/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/OpenStack-Ireland/events/116567022/" target="_blank">OpenStack Dublin Meetup</a> May 22, 2013 – Dublin, Ireland <a href="http://www.meetup.com/OpenStack-Ireland/events/116567022/" target="_blank">Details</a></li>
<li><a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">OpenStack DACH Day</a> May 24, 2013 – Berlin Fairgrounds <a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/Indian-OpenStack-User-Group/events/117132352/" target="_blank">OpenStack India Meetup</a> May 26, 2013 – Bangalore, India at Anuta Network <a href="http://www.meetup.com/Indian-OpenStack-User-Group/events/117132352/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/IGTCloud/events/99146542/" target="_blank">OpenStack Israel</a> May 27, 2013 – Tel-Aviv, Israel <a href="http://www.openstack-israel.org/" target="_blank">Details</a></li>
<li><a href="http://www.openstack.org/" target="_blank">OpenStack CEE Day</a> May 29, 2013 – Budapest <a href="http://www.openstack.org/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Building an OpenStack Cloud</a> May 30, 2013 – Chicago, IL <a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">OpenStack meeting in Munich</a> Jun 11, 2013 – Munich, Germany <a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">Details</a></li>
<li><a href="http://event.gigaom.com/structure/" target="_blank">GigaOM Structure</a> Jun 19 – 20, 2013 – San Francisco, CA <a href="http://event.gigaom.com/structure/" target="_blank">Details</a></li>
<li><a href="http://www.oscon.com/oscon2013" target="_blank">OSCON 2013</a> Jul 22 – 26, 2013 – Portland, OR <a href="http://www.oscon.com/oscon2013" target="_blank">Details</a></li>
</ul>
<h2>Other News</h2>
<ul>
<li>A brief introduction to <a href="http://www.enovance.com/fr/blog/5641/keystone-pki-tokens">Keystone and PKI Tokens</a></li>
<li><a href="http://blog.flaper87.org/post/517da0e10f06d35562ce7376/">Glance wants to go public</a>: the future of OpenStack Image Service</li>
<li><a href="http://secstack.org/2013/04/openstack-common-vulnerability-database/">OpenStack Common Vulnerability Database</a></li>
<li>OpenStack Project Meeting: <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-04-30-21.02.html">Summary</a> and <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-04-30-21.02.log.html">full logs</a>
<ul>
<li><i>HELP</i>: please participate to the thread that Gabriel started on <a href="http://markmail.org/message/xn7cyjskq2wznqhj">API version discovery</a></li>
</ul>
</li>
</ul>
<h2>Welcome New Developers</h2>
<ul>
<li>Shawn Hartsock, VMwware</li>
<li>David Martin, redbrick health</li>
</ul>
<h2>Got answers?</h2>
<p><a href="https://ask.openstack.org/">Ask OpenStack</a> is the go-to destination for OpenStack users. Interesting questions waiting for answers:</p>
<ul>
<li><a href="https://ask.openstack.org/question/758/openstack-tries-to-use-cachenone-when-using-glusterfs-when-it-should-be-writethrough/">openstack tries to use cache=none when using glusterfs, when it should be writethrough</a></li>
<li><a href="https://ask.openstack.org/question/669/ceilometer-binapitestcase-fails-with-503-error-connecting-to-localhost/">Ceilometer BinApiTestCase fails with 503 error connecting to localhost</a></li>
<li><a href="https://ask.openstack.org/question/661/why-do-i-get-could-not-find-token-error-using-swift-with-s3-api/">Why do I get “Could not find token” error using Swift with s3 API?</a></li>
<li><a href="https://ask.openstack.org/question/651/what-p2v-physical-to-virtual-capabilities-does-openstack-have/">What p2v (physical to Virtual) capabilities does OpenStack have?</a></li>
<li><a href="https://ask.openstack.org/question/755/why-isnt-openstack-swift-sending-metrics-to-statsd-server/">Why isn’t OpenStack Swift sending metrics to Statsd server?</a></li>
<li><a href="https://ask.openstack.org/question/747/package-openstack-keystone-isnt-signed-with-proper-key-installing-openstack-on-centos-64/">“Package ‘openstack-keystone’ isn’t signed with proper key” installing OpenStack on CentOS 6.4</a></li>
</ul>
<p><em>The weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</em></p></div>
    </content>
    <updated>2013-05-03T23:48:02Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://robhirschfeld.com/?p=2299</id>
    <link href="http://robhirschfeld.com/2013/05/03/we-need-better-gold-member-criteria-to-help-building-openstack-culture/" rel="alternate" type="text/html"/>
    <title>We need better Gold Member criteria to help building OpenStack culture</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">During last OpenStack board meeting, we started a dialog that will be continued over the rest of the year.  It concerns how/if we should apply our criteria to measure the contributions of companies that are applying to become Gold members. … <a href="http://robhirschfeld.com/2013/05/03/we-need-better-gold-member-criteria-to-help-building-openstack-culture/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2299&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://robhirschfeld.files.wordpress.com/2013/05/bunny-slippers.jpg"><img alt="bunny slippers" class="alignright size-thumbnail wp-image-2344" height="112" src="http://robhirschfeld.files.wordpress.com/2013/05/bunny-slippers.jpg?w=150&amp;h=112" width="150"/></a>During last <a href="https://wiki.openstack.org/wiki/Governance/Foundation/14Apr2013BoardMeeting">OpenStack board meeting</a>, we started a dialog that will be continued over the rest of the year.  It concerns how/if we should apply <a href="https://wiki.openstack.org/wiki/Governance/Foundation/PotentialMemberCriteria">our criteria to measure the contributions</a> of companies that are applying to become Gold members.</p>
<p>I believe that we should see many contribution “footprints” for companies in Foundation leadership positions.  These footprints do not have to be code in github: there are many visible ways to contribute to OpenStack including internal installs, delivered product, community meetups, open source support around code, service to the community through speaking and sponsoring and, of course, code too.</p>
<blockquote><p>At this point in the OpenStack evolution, there is so much going on that it is easy to leave footprints because there are so many ways to engage.  Footprints are tangible evidence of community leadership and the currency of collaboration.  OpenStack thrives because we are committed to working together, being transparent in our actions and providing service to the project beyond our own needs.</p></blockquote>
<p><span style="font-size: 13px; line-height: 19px;">I believe OpenStack Foundation’s new gold members will are great additions to our growing community; however, we need to be increasingly deliberate in accepting new Gold members to make sure that they have a history of demonstrating a culture of open source leadership and contribution.  </span></p>
<p><span style="font-size: 13px; line-height: 19px;">These applications deserve careful consideration for several reasons:</span></p>
<ol>
<li>there are a limited number of gold level positions (16 of the 24 are now occupied)</li>
<li>there is no practical way to remove a gold member (but only 8 are elected to the board)</li>
<li>there is a perception (by the applicants) that they gain additional credibility through gold membership</li>
<li>gold and platinum members are the leaders of our community so everyone will models their behavior</li>
</ol>
<p>It is important to remember that there is no limit or barrier (beyond $) to joining at the corporate sponsors level. So, being a gold member means that companies are seeking a broader leadership role in the project.</p>
<p><span style="font-size: 13px; line-height: 19px;">Over the next months, Simon Anderson (committee chair, <a href="http://dreamhost.com">Dreamhost</a>) will be leading me and several other board members in an effort to refine of our Gold member review criteria.  I’ll post own list shortly and I’m interested in hearing from you about what type of “footprints” we should be considered in this process.</span></p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/robhirschfeld.wordpress.com/2299/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robhirschfeld.wordpress.com/2299/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2299&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-03T15:00:55Z</updated>
    <category term="Joseph George"/>
    <category term="OpenStack"/>
    <category term="OpenStack Board"/>
    <category term="OpenStack Design Summit"/>
    <category term="Board"/>
    <category term="community"/>
    <category term="Footprints"/>
    <category term="Foundation"/>
    <category term="Gold Member"/>
    <author>
      <name>Rob H</name>
    </author>
    <source>
      <id>http://robhirschfeld.com</id>
      <logo>http://0.gravatar.com/blavatar/0611d8ca437ffd3dbaebd30ab7aa4897?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</logo>
      <link href="http://robhirschfeld.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://robhirschfeld.com" rel="alternate" type="text/html"/>
      <link href="http://robhirschfeld.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://robhirschfeld.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Agile in the Clouds</subtitle>
      <title>Rob Hirschfeld » OpenStack</title>
      <updated>2013-05-22T21:37:13Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://aababilov.wordpress.com/?p=224</id>
    <link href="http://aababilov.wordpress.com/2013/05/02/openstack-summit-april-2013-a-first-experience/" rel="alternate" type="text/html"/>
    <title>OpenStack Summit April 2013: a First Experience</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">In April 2013, I have visited OpenStack summit in Portland, Oregon. It was my first OpenStack summit and my first trip to USA, so it was more that just impressive. […]<img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=aababilov.wordpress.com&amp;blog=34918830&amp;post=224&amp;subd=aababilov&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>In April 2013, I have visited OpenStack summit in Portland, Oregon. It was my first OpenStack summit and my first trip to USA, so it was more that just impressive.</p>
<p style="text-align: center;"><a href="https://lh5.googleusercontent.com/-N7uDubQp9Io/UYKZVR7dQpI/AAAAAAAAAG0/6VSlzzeWBpE/w703-h458/portland-havana.jpg"><img alt="" class="aligncenter" height="458" src="https://lh5.googleusercontent.com/-N7uDubQp9Io/UYKZVR7dQpI/AAAAAAAAAG0/6VSlzzeWBpE/w703-h458/portland-havana.jpg" width="703"/></a></p>
<p>The summit was devoted to Havana being the next OpenStack release. As you can see, it would have been well-grounded to locate the summit somewhere in Florida, but Oregon has been ok, too, – just look at that forest in the vicinity of Pacific Ocean.</p>
<p><a href="https://lh3.googleusercontent.com/-6IhiSjU8gVs/UYKda4gUePI/AAAAAAAAAHg/EFvLa2PfLQY/w387-h516/DSC00361.JPG"><img alt="" class="aligncenter" height="516" src="https://lh3.googleusercontent.com/-6IhiSjU8gVs/UYKda4gUePI/AAAAAAAAAHg/EFvLa2PfLQY/w387-h516/DSC00361.JPG" width="387"/></a></p>
<p>Somebody may find Portland a grey and distressing city, but I liked it. Portland is a green and tidy city very different from my native Kharkov.</p>
<p style="text-align: center;"><a href="https://lh4.googleusercontent.com/-G-5aTQzKb2I/UYKedhMIynI/AAAAAAAAAHs/LwLRy-vmJVo/w688-h516/DSC00123.JPG"><img alt="" class="aligncenter" height="516" src="https://lh4.googleusercontent.com/-G-5aTQzKb2I/UYKedhMIynI/AAAAAAAAAHs/LwLRy-vmJVo/w688-h516/DSC00123.JPG" width="688"/></a></p>
<p style="text-align: left;">A poster reminded how many companies take part in OpenStack.</p>
<p><a href="https://lh6.googleusercontent.com/-7BRAFROTupg/UYLTTzO7p4I/AAAAAAAAAJA/0dRdRyfSJME/w688-h516/IMG_20130415_094828.jpg"><img alt="" class="aligncenter" height="516" src="https://lh6.googleusercontent.com/-7BRAFROTupg/UYLTTzO7p4I/AAAAAAAAAJA/0dRdRyfSJME/w688-h516/IMG_20130415_094828.jpg" width="688"/></a></p>
<p>You can imagine how exciting it was to see people that have reviewed my code all these years I take part in OpenStack; people that have written tons of commits themselves and whose everyday job is taking care of OpenStack and making global architecture decisions: <a href="https://www.nebula.com/blog/">Devin Carlen</a>, <a href="https://twitter.com/heckj">Joe Heck</a>, <a href="http://doughellmann.com/">Doug Hellmann</a>, <a href="http://www.openstack.org/blog/author/thierry/">Thierry Carrez</a>, <a href="https://github.com/bcwaldon">Brian Waldon</a>, <a href="https://github.com/markwash">Mark Washenberger</a>, <a href="https://github.com/dtroyer">Dean Troyer</a>, and many others – that’s difficult to mention them all.</p>
<p>OpenStack reports could be roughly divided in two parts. Reports of the first kind were full of prominent slides – you could occasionally notice a unicorn.</p>
<p><a href="https://lh4.googleusercontent.com/-tvnI8a1_seE/UYLUnwPOE_I/AAAAAAAAAKE/To7XVerr8VI/w557-h417-p-o/IMG_20130416_102700.jpg"><img alt="" class="aligncenter" height="417" src="https://lh4.googleusercontent.com/-tvnI8a1_seE/UYLUnwPOE_I/AAAAAAAAAKE/To7XVerr8VI/w557-h417-p-o/IMG_20130416_102700.jpg" width="557"/></a>But I preferred other reports -</p>
<p><a href="https://lh6.googleusercontent.com/-UbbuCCtzkRc/UYLUkRSRdOI/AAAAAAAAAJ0/sPTeQBl8V8A/w688-h516/DSC00164.JPG"><img alt="" class="aligncenter" height="516" src="https://lh6.googleusercontent.com/-UbbuCCtzkRc/UYLUkRSRdOI/AAAAAAAAAJ0/sPTeQBl8V8A/w688-h516/DSC00164.JPG" width="688"/></a>…and I was not alone -</p>
<p><a href="https://lh5.googleusercontent.com/-QRL5QdtfGOM/UYLUm5FAdqI/AAAAAAAAAJ8/yK9Con3xZ-8/w688-h516/DSC00128.JPG"><img alt="" class="aligncenter" height="516" src="https://lh5.googleusercontent.com/-QRL5QdtfGOM/UYLUm5FAdqI/AAAAAAAAAJ8/yK9Con3xZ-8/w688-h516/DSC00128.JPG" width="688"/></a></p>
<p>One of the main OpenStack-oriented directions in Grid Dynamics (my company) is <a href="http://www.griddynamics.com/solutions/altai-private-cloud-for-developers/">Altai</a> - a private cloud for developers. It consists of several parts:</p>
<ul>
<li><span style="line-height: 13px;">OpenStack services (nova, glance, keystone);</span></li>
<li>Focus – the Altai Dashboard;</li>
<li>Nova DNS – a service giving DNS names to instances;</li>
<li>Nova Billing – a lightweight service for billing instances and images;</li>
<li>notifier daemons sending mail about instance state changes and hardware nodes state.</li>
</ul>
<p>Altai services use a dedicated client library to make OpenStack API calls. This library contains the <a href="http://openstackgd.wordpress.com/2013/01/12/preconditions-for-common-openstack-client-library/">common parts</a> of  novaclient and keystoneclient with several enhancements. I have written it in June 2012, but I had no support for this library in the community for a long time. Thanks to the summit, I took part in <a href="https://github.com/openstack/python-openstackclient">openstackclient</a> discussion and got to know that such library is desirable, so, recently I have rewritten my old code thus releasing openstack.common.apiclient – a common client library - and making novaclient and keystoneclient use it. I would like to thank <a href="https://github.com/dtroyer">Dean Troyer</a> who kindly reviewed my code and inspired my further work.</p>
<p><a href="https://lh4.googleusercontent.com/-TS0ReRthg0w/UYLAF2GXb2I/AAAAAAAAAIA/t40BcahKTF4/w688-h516/DSC00136.JPG"><img alt="" class="aligncenter" height="516" src="https://lh4.googleusercontent.com/-TS0ReRthg0w/UYLAF2GXb2I/AAAAAAAAAIA/t40BcahKTF4/w688-h516/DSC00136.JPG" width="688"/></a></p>
<p>New Altai Dashboard version, Focus2, is a very smooth and modern-looking solution (take a look at its <a href="http://spugachev-gd.github.io/focus-ui-proposal/index.html">mockups</a>) and it has a <a href="https://github.com/altai/focus2/">reference implementation</a>, and Grid Dynamics delegation proposed it as a possible direction of Horizon evolution.</p>
<p>After visiting <a href="http://doughellmann.com/">Doug Hellmann</a>‘s introduction to Ceilometer, it became clearer that this project is a robust and powerful metering solution. It can give the second wind to <a href="http://github.com/altai/nova-billing">Nova Billing</a> that concentrates on billing only being a small (63 KiB vs 1.5 MiB of Ceilometer code) server with good test coverage.</p>
<p><a href="http://github.com/altai/nova-dns">Nova DNS</a> is an event-based server that manages DNS records when instances are created, destroyed, started, or stopped. It can be used out of the box until <a href="https://launchpad.net/moniker">moniker</a> will be more feature-rich solution.</p>
<p>Looking at the summit, I see how interesting and significant it was for me and I am proud to be a member of OpenStack community together with intelligent and experienced people I have met.</p>
<p>Finally, I would like to thank my colleagues Dmitry Maslennikov and Nikita Savin who made my journey possible and so pleasant.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/aababilov.wordpress.com/224/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aababilov.wordpress.com/224/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=aababilov.wordpress.com&amp;blog=34918830&amp;post=224&amp;subd=aababilov&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-05-02T20:24:56Z</updated>
    <category term="OpenStack"/>
    <category term="openstack"/>
    <author>
      <name>aababilov</name>
    </author>
    <source>
      <id>http://aababilov.wordpress.com</id>
      <logo>http://s2.wp.com/i/buttonw-com.png</logo>
      <link href="http://aababilov.wordpress.com/category/openstack-2/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://aababilov.wordpress.com" rel="alternate" type="text/html"/>
      <link href="http://aababilov.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://aababilov.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>A blog about IT, clouds, and my favourite Linux</subtitle>
      <title>Alessio Ababilov's Blog » OpenStack</title>
      <updated>2013-05-16T12:51:52Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-1855272325744698559.post-7523590159154569134</id>
    <link href="http://www.buildcloudstorage.com/feeds/7523590159154569134/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.buildcloudstorage.com/2013/05/openstack-swift-comes-of-age-with.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/1855272325744698559/posts/default/7523590159154569134" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/1855272325744698559/posts/default/7523590159154569134" rel="self" type="application/atom+xml"/>
    <link href="http://www.buildcloudstorage.com/2013/05/openstack-swift-comes-of-age-with.html" rel="alternate" type="text/html"/>
    <title>OpenStack Swift Comes of Age with the Grizzly Release</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div dir="ltr" style="text-align: left;"><span style="">I recently wrote an EVault blog about the recent OpenStack Summit and the <a href="http://blogs.evault.com/cloud-connected-recovery/cloud-connected-storage/openstack-swift-comes-of-age-with-the-grizzly-release/">Coming of Age of Swift </a>. The blog talks about the dynamics around Swift at the OpenStack Summit rather than talking about specific  feature of Grizzly (which has been covered by a number of blogs &amp; articles). </span><span style="color: #1f497d; font-family: Calibri, sans-serif; font-size: 15px;">For example, I talk the various unconference sessions which were of very high quality. </span><span style="color: #1f497d; font-family: Calibri, sans-serif; font-size: 11pt;">Please check out the <a href="http://blogs.evault.com/cloud-connected-recovery/cloud-connected-storage/openstack-swift-comes-of-age-with-the-grizzly-release/">blog</a>.</span></div></div>
    </content>
    <updated>2013-05-02T18:12:25Z</updated>
    <published>2013-05-02T01:22:00Z</published>
    <author>
      <name>Amar Kapadia</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/17701726309248214254</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-1855272325744698559</id>
      <author>
        <name>Amar Kapadia</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/17701726309248214254</uri>
      </author>
      <link href="http://www.buildcloudstorage.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/1855272325744698559/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://www.buildcloudstorage.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Thoughts on Cloud Storage
by Amar Kapadia</subtitle>
      <title>Build Cloud Storage</title>
      <updated>2013-05-10T00:20:55Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4141</id>
    <link href="http://www.openstack.org/blog/2013/05/germany-israel-hungary-openstack-events/" rel="alternate" type="text/html"/>
    <title>Germany, Israel &amp; Hungary – OpenStack Events</title>
    <summary>Jonathan Bryce and a few members of the OpenStack Foundation team will be heading to Europe later this month to attend three key regional events. Jonathan and other noteworthy members of the OpenStack community will be speaking at each event. If you are in the area and would like to learn more about OpenStack or [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Jonathan Bryce and a few members of the OpenStack Foundation team will be heading to Europe later this month to attend three key regional events. Jonathan and other noteworthy members of the OpenStack community will be speaking at each event. If you are in the area and would like to learn more about OpenStack or network with others in the community – please plan to attend!</p>
<p>Help us spread the word, and we hope to see you there!</p>
<p><b>Berlin, Germany – Friday, May 24</b></p>
<p style="text-align: left;"><a href="http://openstackdach2013.eventbrite.com"><img alt="Screen Shot 2013-05-02 at 11.20.29 AM" class="alignnone size-medium wp-image-4163" height="97" src="http://www.openstack.org/blog/wp-content/uploads/2013/05/Screen-Shot-2013-05-02-at-11.20.29-AM-300x97.png" width="300"/></a></p>
<p><a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm">OpenStack DACH Day 2013</a> will provide attendees with first­hand insights from OpenStack developers and enterprises that are successfully using OpenStack in production environments for both private and public clouds. The lineup includes speakers from industry leaders including:</p>
<ul>
<li>Jonathan Bryce, OpenStack Foundation</li>
<li>Kurt Garloff, Deutsche Telekom AG</li>
<li>Monty Taylor, HP</li>
<li>Bernhard Wiedemann &amp; Sascha Peilicke, SUSE</li>
<li>Muharem Hrnjadovic, Rackspace Cloud</li>
<li>Dr. Wolfgang Schulze, Inktank</li>
<li>Tobias Riedel, Netways</li>
<li>Dr. Udo Seidel, Amadeus Data Processing</li>
</ul>
<p>Register to Attend:</p>
<ul>
<li>When: Friday, May 24, 2013</li>
<li>Where: Berlin Fairgrounds (Messegelände unter dem Funkturm), Hall 7, as part of LinuxTag</li>
<li>Tickets: Registration is free, and there 200 tickets available at <a href="http://openstackdach2013.eventbrite.com/">http://openstackdach2013.eventbrite.com</a></li>
</ul>
<p><b>Tel Aviv, Israel – Monday, May 27</b></p>
<p><a href="http://www.openstack-israel.org"><img alt="Screen Shot 2013-05-02 at 10.51.04 AM" class="alignnone size-medium wp-image-4149" height="102" src="http://www.openstack.org/blog/wp-content/uploads/2013/05/Screen-Shot-2013-05-02-at-10.51.04-AM-300x102.png" width="300"/></a></p>
<p>Join the OpenStack community for the third <a href="http://www.openstack-israel.org">OpenStack Israel</a> event, co-organized by OpenStack community supporters IGTCloud and GigaSpaces. The event is sponsored by the OpenStack Foundation and includes speakers from across the OpenStack community. Hear about OpenStack’s newest Grizzly release from the source, deep-dive into the Quantum network, learn about the new Cinder storage, hear what others are doing with OpenStack technology with real-life case studies from Intel, Liveperson and Alcatel, and meet the top industry leaders from IBM, HP, Rackspace, RedHat, GigaSpaces, DreamHost, Radware, Ravello, Mirantis, Cloudsoft and Hastexo.</p>
<p>Register to Attend:</p>
<ul>
<li>When: Monday, May 27, 2013</li>
<li>Where: Herzilya Arts Center at 15 Jabotinsky Street in Herzilya, Israel</li>
<li>Tickets: Registration is free, but there are only 300 tickets available, so register quickly! <a href="http://www.openstack-israel.org/">http://www.openstack-israel.org</a></li>
</ul>
<p><b>Budapest, Hungary – Wednesday, May 29</b></p>
<p><a href="http://openstackceeday.com"><img alt="Screen Shot 2013-05-02 at 10.50.39 AM" class="alignnone size-medium wp-image-4148" height="117" src="http://www.openstack.org/blog/wp-content/uploads/2013/05/Screen-Shot-2013-05-02-at-10.50.39-AM-300x117.png" width="300"/></a></p>
<p>Join us for <a href="http://openstackceeday.com">OpenStack CEE Day</a> – a large-scale one day user conference for the Central &amp; Eastern European region. Attendees will get insights to OpenStack from industry-leading keynote speakers, as well as user case studies, workshops and deep dive sessions. The OpenStack CEE Day welcomes users, prospective users, ecosystem members, partners, developers and everyone who is excited about OpenStack’s open source cloud innovation.</p>
<p>Register to Attend:</p>
<ul>
<li>When: Wednesday, May 29</li>
<li>Where: The Boscolo Hotel,1073 Budapest, Erzsébet körút 9-11</li>
<li>Tickets: Registration is now open – <a href="http://openstackceeday.eventbrite.com">http://openstackceeday.eventbrite.com</a></li>
</ul>
<p>####</p>
<p><strong>Check out the latest hastexo blog post about each of these events – <a href="http://www.hastexo.com/blogs/florian/2013/05/02/its-may-it-must-be-openstack-month"><em>It’s May. It must be OpenStack Month! </em></a></strong></p>
<p><strong>Follow <a href="https://twitter.com/OpenStack">@OpenStack </a>on Twitter</strong> <strong>for the latest news.</strong></p></div>
    </content>
    <updated>2013-05-02T16:48:56Z</updated>
    <category term="community"/>
    <category term="Event"/>
    <category term="Uncategorized"/>
    <author>
      <name>cmassey</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.hastexo.com/blogs/florian/tag/openstack/413 at http://www.hastexo.com</id>
    <link href="http://www.hastexo.com/blogs/florian/2013/05/02/its-may-it-must-be-openstack-month" rel="alternate" type="text/html"/>
    <title>It's May. It must be OpenStack Month!</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This month my own schedule, and that of hastexo, is full of OpenStack. Here are the details.</p>
<p/><div class="field field-type-filefield field-field-image">
    <div class="field-items">
            <div class="field-item odd">
                    <img alt="" class="imagecache imagecache-sidebar imagecache-default imagecache-sidebar_default" height="150" src="http://www.hastexo.com/system/files/imagecache/sidebar/OpenStack.png" title="" width="150"/>        </div>
        </div>
</div>
<p><a href="http://www.hastexo.com/blogs/florian/2013/05/02/its-may-it-must-be-openstack-month" target="_blank">read more</a></p></div>
    </summary>
    <updated>2013-05-02T16:03:56Z</updated>
    <category scheme="http://www.hastexo.com/category/tags/openstack" term="OpenStack"/>
    <author>
      <name>florian</name>
    </author>
    <source>
      <id>http://www.hastexo.com/blogs/florian/tag/openstack/feed</id>
      <link href="http://www.hastexo.com/blogs/florian/tag/openstack/feed" rel="alternate" type="text/html"/>
      <link href="http://www.hastexo.com/blogs/florian/tag/openstack/feed/" rel="self" type="application/rss+xml"/>
      <updated>2013-05-22T23:40:53Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://engineering.cloudscaling.com/?p=184</id>
    <link href="http://engineering.cloudscaling.com/the-trouble-with-link-bonding-lacp-lag/" rel="alternate" type="text/html"/>
    <title>The Trouble With Link Bonding (LACP, LAG)</title>
    <summary>One of our favorite sayings at Cloudscaling is “Simplicity Scales.” This saying has a slightly-less-well-known coda, “Complexity Fails.” Let’s walk through a real-world example of this. . Background In Open Cloud System (OCS), our high-availability (HA) strategy for services that have persistent datastores is to use a UCARP IP to make sure that one and [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p dir="ltr">One of our favorite sayings at Cloudscaling is “Simplicity Scales.” This saying has a slightly-less-well-known coda, “Complexity Fails.”</p>
<p dir="ltr">Let’s walk through a real-world example of this.</p>
<p dir="ltr"><span style="color: #ffffff;">.</span></p>
<p dir="ltr"><strong>Background</strong></p>
<p dir="ltr">In Open Cloud System (OCS), our high-availability (HA) strategy for services that have persistent datastores is to use a UCARP IP to make sure that one and only one of the backend servers is active at any given time. Then we replicate data between all the backend servers so that if one fails, another can take over the UCARP VIP and the cloud continues operating normally. UCARP works basically like VRRP – multiple devices share a virtual IP address (VIP) and communicate using CARP to figure out which one of them should be active at any given time.</p>
<p dir="ltr">The typical server in an OCS installation has four NICs: one (1G) for hardware management (IPMI), one (1G) for systems management (PXEbooting, chef), and two 10G NICs. In our canonical network design, one of these 10G NICs is used for intra-cloud traffic between VMs and storage resources, and the other is used for external access for VMs to talk to the Internet (or other resources outside the cloud).</p>
<p dir="ltr">Here is a diagram of the standard network layout without bonding.</p>
<p style="text-align: center;"><b><b><br/>
<img alt="" class="aligncenter" height="416px;" src="https://lh5.googleusercontent.com/kHsPEnKi7N3QH7sGF7RANoWKXxL_ADP0bhRZxDbia4kIdEeKosDfW03XdVlo5sIvOmxiuE_RvMdNo9tsQmwm-qwseUvIh4zmeZCBb_JXbBF2ptnmCdUPz_M" width="622px;"/><br/>
</b></b></p>
<p dir="ltr">This is a simple and well-understood network design, easily implemented with standard networking models that have been around for decades. But there’s another option for how OCS can be deployed: using bonded interfaces on the servers and port channels on the switches to take those two 10G NICs and make them appear as a single 20G network link, and pass both intra-cloud and external traffic across that higher-bandwidth virtual link. Many of our customers have preferred this option, which in theory provides higher burst bandwidth and greater resilience to failure of a NIC.  Bonding sounds great, right?</p>
<p dir="ltr">Diagram of the network architecture with bonding.</p>
<p style="text-align: center;"><b><b><br/>
<img alt="" class="aligncenter" height="447px;" src="https://lh4.googleusercontent.com/2Yc5-eXs6RJns80ncq4Uazt_cV9JdNPFRDWLsy-Mjr_iup7btVxCE6TmT3VbELYWk9Kh3SrNpQrMpfOdMDOYxyKi2ZYENpkIvEIkdWNBt3ye82CC9wwWmkY" width="620px;"/></b></b></p>
<p dir="ltr"><strong>The Trouble Begins</strong></p>
<p dir="ltr">Let me tell you a story. It’s kind of a detective story. Like everything else in OCS, we do extensive testing of our HA/failover solutions, and during such testing we discovered some odd behavior when running in bonded interface mode. In most of our tests, failover worked great. When a node failed, the other node would take over. Because everything had been replicated from the active node, no data was lost. When the failed node comes back up, it’s supposed to see the broadcasts from the existing master and join the cluster as a backup. This happened most of the time in our tests, but in a certain environment we saw the wrong behavior, where a failed node would come up and take over as master. In some cases, this could happen before replication had finished, which is obviously a big problem. After a ton of time spent debugging and a lot of red herrings, we finally figured out what was happening. If you use the default values for UCARP configurations, you get the following behavior when a node comes up and joins an existing cluster:</p>
<ul>
<li>
<p dir="ltr">new node listens for 3 seconds for an announcement from an existing master</p>
</li>
<li>
<p dir="ltr">if the new node does not hear such an announcement it promotes itself to master</p>
</li>
<li>
<p dir="ltr">also important, if a master node hears an announcement from another master, it will demote itself to backup IF the other master has a numerically higher IP address</p>
</li>
</ul>
<p><b><b> </b></b></p>
<p dir="ltr">Here’s what was happening. During the boot process on the new node, it was taking several seconds (more than three) for the port channel on the bonded interfaces to be setup between the server and the switch – until that happened each port had link, but no frames (or packets) were being passed. During this time, UCARP was starting and listening for announcements – announcements that it couldn’t see because they come over the bonded interface, which wasn’t working yet. After three seconds the node was declaring itself a master, then the port channel would finish coming up and now both the new node and the previous master see announcements from a second master. Because the new node has a numerically lower IP address the other master demotes itself and you wind up with the new node becoming master – potentially before it has replicated data back over from the previous master.</p>
<p dir="ltr">Following diagram depicts UCARP under normal conditions.</p>
<p style="text-align: center;"><b><b><br/>
<img alt="" class="aligncenter" height="316px;" src="https://lh3.googleusercontent.com/tJMQxhgk7JrkiEk0f-K3oJXKENgYRq6e5SJJ-SFpotUIdROpZ8KmBxYSPfiyLeKjFhg9rOkilEY_DZ195j0qAJ_JC6C_a7Uq3AbVDzryScW6eXYdmPws7DQ" width="429px;"/><br/>
</b></b></p>
<p dir="ltr">And under failure conditions.</p>
<p style="text-align: center;"><b><b><br/>
<img alt="" class="aligncenter" height="307px;" src="https://lh4.googleusercontent.com/up3E85pei7GAXSJcVSPeHGZR7Vm9-yndlbLdZwJSWKiBRUUTObWjxIi4N1IVycGoNW3J-WOVOM-jbgOw__MpJC4u7IZfrKXy7oDTlLXaxg6Xd7IAXKNRApY" width="419px;"/><br/>
</b></b></p>
<p dir="ltr">We never saw this behavior with unbonded interfaces, because there is no setup delay for the network in that case. The new node comes up, starts UCARP, hears the announcement from the previous master, and joins the cluster as a backup just like it’s supposed to. We also didn’t see this behavior with all models of network switches – some set up the port channels faster than others, and as long as it takes less than three seconds for the port channel to start passing traffic to the node, we see the proper behavior. We only saw it with a certain network switch that took more than three seconds, and we only had that switch in one test environment.</p>
<p><b><b> </b></b></p>
<p dir="ltr"><strong>Bringing It Home</strong></p>
<p dir="ltr">So back to “simplicity scales, complexity kills.” Interface bonding and port channels are newer technologies than basic switching and routing, and their implementation is more complicated on both the server and the switch sides. Because they are newer and more complex, the implementations from one vendor to another differ in significant ways (and have different bugs). In this case the complexity introduced by bonding introduced a new failure mode that manifested in way that is extremely hard to diagnose. Relying on simpler (and older) technologies can prevent having to deal with these kinds of hard-to-diagnose problems. For example, in other parts of OCS we use ECMP at layer 3 to provide HA to servers. This is a time-tested and well-understood mechanism that has been used by ISPs for HA for decades. We’re planning on switching our existing UCARP implementations to such a mechanism in the future, for what should by now be obvious reasons. <img alt=":)" class="wp-smiley" src="http://engineering.cloudscaling.com/wordpress/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p><b><b> </b></b></p>
<p dir="ltr"><strong>The Moral Of The Story: Keep It Simple</strong></p>
<p dir="ltr">The worst part about this story is that by adding something that was aimed at making the system more reliable (redundant NICs) we introduced a new failure mode (likely multiple new failure modes) that wound up making the system less reliable. This is unfortunately a common theme with HA strategies. What appears at first glance to be a great idea has unexpected (and often negative) consequences on the overall system. The best way to avoid this is to use the simplest and most time-tested strategies you can to keep your systems up and running.</p>
<p dir="ltr">Keep it simple, people. Simplicity scales.</p></div>
    </content>
    <updated>2013-05-02T14:28:32Z</updated>
    <category term="Networking"/>
    <author>
      <name>Paul Guth</name>
    </author>
    <source>
      <id>http://engineering.cloudscaling.com</id>
      <link href="http://engineering.cloudscaling.com" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/SimplicityScales" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Simplicity Scales</subtitle>
      <title>Cloudscaling Engineering</title>
      <updated>2013-05-21T16:07:34Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://adam.younglogic.com/?p=2614</id>
    <link href="http://adam.younglogic.com/2013/05/kerberizing-postgresql-with-freeipa-for-keystone/" rel="alternate" type="text/html"/>
    <title>Kerberizing PostgreSQL with FreeIPA for Keystone</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">There are many factors to weight when choosing which relational database management system (RDBMS) to deploy for a given application.  One reason I have been working with PostgreSQL for Keystone is that it support Kerberos Authentication. Why Kerberize Postgresql Direct … <a href="http://adam.younglogic.com/2013/05/kerberizing-postgresql-with-freeipa-for-keystone/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>There are many factors to weight when choosing which relational database management system (RDBMS) to deploy for a given application.  One reason I have been working with PostgreSQL for Keystone is that it support Kerberos Authentication.</p>
<p><span id="more-2614"/></p>
<h2>Why Kerberize Postgresql</h2>
<p>Direct access to the RDBMS might be required for many reasons.</p>
<ul>
<li>A shared instance between servers</li>
<li>The database might be in a large replicated cluster managed as a service for the enterprise</li>
<li>The database instance  might provide a read only snapshot of live data for reporting</li>
<li>Some applications might use the Database as a persistant RPC mechanism</li>
</ul>
<p>In the case of OpenStack, we want to make Keystone highly available.  As such, each Keystone instance will not get its own database instance, but instead will share a back end.</p>
<h2>Puppetized Install and Configuraton</h2>
<p>From a shell prompt:</p>
<pre class="brush:bash">Yum install puppet puppet-server tar postgresql
puppet module install puppetlabs/postgresql</pre>
<p>Create a site.pp file for applying gss api to the pg_hba.conf file:</p>
<pre class="brush:bash">class { 'postgresql::server':
  config_hash =&gt; {
    'ip_mask_deny_postgres_user' =&gt; '0.0.0.0/32',
    #do not explicitly set 'ip_mask_allow_all_users' 
    #and it will default to localhost only
    'listen_addresses'           =&gt; '*',
    'manage_redhat_firewall'     =&gt; true,
  },
}
postgresql::pg_hba_rule { 'allow application network to access app database':
  description =&gt; "Open up postgresql for access from 192.168.0/24",
  type =&gt; 'host',
  database =&gt; 'all',
  user =&gt; 'all',
  address =&gt; '192.168.0.0/24',
  auth_method =&gt; 'gss'
}

</pre>
<p>Apply it with</p>
<pre class="brush:bash"> puppet apply --verbose /root/site.pp
</pre>
<p>Check the postgres access controls in <a href="http://www.postgresql.org/docs/9.2/static/auth-pg-hba-conf.html">/var/lib/pgsql/data/pg_hba.conf</a><br/>
You need a line like this.</p>
<pre class="brush:bash">host    all     all     192.168.0.0/24  gss</pre>
<p>Make sure you don’t have some other rule that will conflict with it. For example, In an earlier pass I had to comment out:</p>
<pre class="brush:bash">#host   all     all     0.0.0.0/0       md5
#host   all     all     ::1/128 md5</pre>
<p>Which preceded it and were triggering a password request from the psql command.</p>
<p>Kerberos for Postgres: Create new service in IPA.</p>
<pre class="brush:bash">ipa service-add postgres/pg.openstack.freeipa.org
ipa-getkeytab -s ipa.openstack.freeipa.org -p postgres/pg.openstack.freeipa.org@OPENSTACK.FREEIPA.ORG  -k /var/lib/pgsql/data/pg.keytab
chown postgres:postgres /var/lib/pgsql/data/pg.keytab</pre>
<h2>Postgres Config</h2>
<p>Edit Postgresql.conf</p>
<p><a href="http://www.postgresql.org/docs/9.2/static/auth-methods.html#GSSAPI-AUTH" title="GSSAPI-AUTH for Postgres">The information to do this is out of the Postgres manual</a></p>
<pre class="brush:bash"># Kerberos and GSSAPI
krb_server_keyfile = '/var/lib/pgsql/data/pg.keytab'
krb_srvname = 'postgres'
host    all     all     192.168.0.0/24  krb5</pre>
<p>Firewall:</p>
<p>Either iptables open port 5432:</p>
<pre class="brush:bash">lokkit -p 5432:tcp</pre>
<p>Or open it with firewall-cmd:</p>
<pre class="brush:bash">firewall-cmd --add-port=5432/tcp</pre>
<p>To Test:</p>
<pre class="brush:bash">psql -h pg.openstack.freeipa.org -d keystone -U keystone</pre>
<p>Run klist afterwards to see the Postgres service ticket:</p>
<pre class="brush:bash">Ticket cache: FILE:/tmp/krb5cc_1615800001
Default principal: keystone@OPENSTACK.FREEIPA.ORG

Valid starting     Expires            Service principal
05/02/13 03:31:28  05/03/13 03:31:28  krbtgt/OPENSTACK.FREEIPA.ORG@OPENSTACK.FREEIPA.ORG
05/02/13 03:31:33  05/03/13 03:31:28  postgres/pg.openstack.freeipa.org@OPENSTACK.FREEIPA.ORG</pre>
<p>On the Keystone side install Postgres client libraries for Keystone</p>
<pre class="brush:bash">yum install python-psycopg2 postgresql</pre>
<p>In /etc/keystone/keystone.conf</p>
<pre class="brush:bash">connection = postgresql://pg.openstack.freeipa.org/keystone?krbsrvname=postgres</pre>
<p>Assuming you are going to run this for a non-interactive service, you will need a cron job to fetch the tgt on a regular basis.</p>
<pre class="brush:bash">crontab /etc/keystone/keystone.crontab
1 0,6,12,18 * * *   su - keystone -c "KRB5CCNAME=FILE:/tmp/krb5cc_1615800001 kinit keystone -k -t /var/kerberos/krb5/user/1615800001/client.keytab"</pre></div>
    </content>
    <updated>2013-05-02T14:21:19Z</updated>
    <category term="Database"/>
    <category term="FreeIPA"/>
    <category term="Kerberos"/>
    <category term="Openstack"/>
    <author>
      <name>Adam Young</name>
    </author>
    <source>
      <id>http://adam.younglogic.com</id>
      <link href="http://adam.younglogic.com/category/software/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://adam.younglogic.com" rel="alternate" type="text/html"/>
      <subtitle>The Notebook of a Programmer Climber Musician Ex-Soldier</subtitle>
      <title>Adam Young's Web Log » Openstack</title>
      <updated>2013-05-21T16:21:21Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://engineering.cloudscaling.com/?p=172</id>
    <link href="http://engineering.cloudscaling.com/stacker-voices-monty-taylor-hp/" rel="alternate" type="text/html"/>
    <title>Stacker Voices: Monty Taylor, HP</title>
    <summary>We talked with Monty Taylor of HP at the OpenStack Summit in Portland. Monty is the automation and deployment lead for cloud at HP. He’s also a member of both the OpenStack Technical Committee and the OpenStack Foundation Board of Directors. // Check out Monty’s feature profile by Cade Metz in Wired Enterprise yesterday. // [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p dir="ltr">We talked with Monty Taylor of HP at the OpenStack Summit in Portland. Monty is the automation and deployment lead for cloud at HP. He’s also a member of both the OpenStack Technical Committee and the OpenStack Foundation Board of Directors.</p>
<p dir="ltr">// Check out <a href="http://www.wired.com/wiredenterprise/2013/04/new-hackers-taylor/" target="_blank">Monty’s feature profile</a> by <a href="http://twitter.com/cademetz" target="_blank">Cade Metz</a> in Wired Enterprise yesterday. //</p>
<p dir="ltr"><a href="http://engineering.cloudscaling.com/stacker-voices-monty-taylor-hp/monty-taylor/" rel="attachment wp-att-168"><img alt="Monty Taylor" class=" wp-image-168 alignleft" height="130" src="http://engineering.cloudscaling.com/wp-content/uploads/2013/04/Monty-Taylor-300x206.png" width="189"/></a>Monty leads the CI (continuous innovation) project for OpenStack. In that role, he and his group have built testing systems that have made it possible for the OpenStack project to scale from a few dozen contributors for the Bexar release to more than 700 developers now pushing patches *daily* to the project.</p>
<p dir="ltr">Watch the video to learn more about:</p>
<ul>
<li>
<p dir="ltr">OpenStack’s integrated code review system and gated commits</p>
</li>
<li>
<p dir="ltr">running the CI system as a single app across two public clouds, with resources donated by HP, Rackspace and eNovance</p>
</li>
<li>
<p dir="ltr">merging about 150 patches each day into the code base, and the 500+ that don’t make it</p>
</li>
<li>
<p dir="ltr">how gated commits interact with the CI system</p>
</li>
<li>
<p dir="ltr">using Google’s <a href="https://code.google.com/p/gerrit/">Gerrit code review</a> system that feeds into Zuul for gating, which is connected to a <a href="http://jenkins-ci.org/">Jenkins server</a> with <a href="http://gearman.org/">Gearman worker support</a> for scaling</p>
</li>
<li>
<p dir="ltr">running tests in parallel with optimistic <a href="http://en.wikipedia.org/wiki/Pipeline_(computing)">pipelining</a> to save time</p>
</li>
</ul>
<p><b><b> </b></b>Check out the video, below. <a href="http://www.youtube.com/watch?v=eqw4zxqPelc" target="_blank">Or, watch on YouTube</a>.</p>
<p>&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/eqw4zxqPelc?feature=player_detailpage" width="640"&gt;&lt;/iframe&gt;</p></div>
    </content>
    <updated>2013-05-02T12:00:42Z</updated>
    <category term="OpenStack"/>
    <category term="Recommended Reading"/>
    <author>
      <name>Randy Bias</name>
    </author>
    <source>
      <id>http://engineering.cloudscaling.com</id>
      <link href="http://engineering.cloudscaling.com" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/SimplicityScales" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Simplicity Scales</subtitle>
      <title>Cloudscaling Engineering</title>
      <updated>2013-05-21T16:07:34Z</updated>
    </source>
  </entry>

  <entry xml:lang="fr-FR">
    <id>http://www.enovance.com/?p=5641</id>
    <link href="http://www.enovance.com/fr/blog/5641/keystone-pki-tokens" rel="alternate" type="text/html"/>
    <title>Keystone and PKI Tokens</title>
    <summary>PKI tokens has been implemented in keystone by Adam Young and others and was shipped for the OpenStack grizlly release. It is available since the version 2.0 API of keystone.   PKI is a beautiful acronym to Public-key infrastructure which according to wikipedia defines it like this : Public-key cryptography is a cryptographic technique that [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div>
<div>
<div>
<div>
<p style="text-align: justify;">PKI tokens has been implemented in keystone by <a href="http://adam.younglogic.com/" target="_blank">Adam Young</a> and others and was shipped for the OpenStack grizlly release. It is available since the version 2.0 API of keystone.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">PKI is a beautiful acronym to <a href="http://en.wikipedia.org/wiki/Public-key_infrastructure" target="_blank">Public-key infrastructure</a> which according to wikipedia defines it like this :</p>
<blockquote>
<p>Public-key cryptography is a cryptographic technique that enables users to securely communicate on an insecure public network, and reliably verify the identity of a user via digital signatures.</p>
<p> </p>
</blockquote>
<p style="text-align: justify;">As described more lengthy on this IBM <a href="https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_keystone_workflow_token_scoping?lang%3Den" target="_blank">blog post</a> keystone will start to generate a public and a private key and store it locally.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">When getting the first request the service (i.e: <a href="http://github.com/openstack/swift" target="_blank">Swift</a>) will go get the public certificate from keystone and store it locally for later use.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">When the user is authenticated and a PKI token needs to be generated, keystone will take the private key and encrypt the token and the metadata (i.e: roles, endpoints, services).</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The service by the mean of the auth_token middleware will decrypt the token with the public key and get the info to pass on to the service it set the *keystone.identity* WSGI environement variable to be used by the other middleware of the service in the paste pipeline.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The PKI tokens are then much more secure since the service can trust where the token is coming from and much more efficient since it doesn’t have to validate it on every request like done for UUID token.</p>
<h2 style="text-align: justify;">Auth token</h2>
<p style="text-align: justify;">This bring us to the auth_token middleware. The auth token middleware is a central piece of software of keystone to provide a generic middleware for other python WSGI services to integrate with keystone.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The auth_token middleware was moved in grizzly to the python-keystoneclient package, this allows us to don’t have to install a full keystone server package to use it (remember this is supposed to be integrated directly in services).</p>
<p style="text-align: justify;">You usually would add the auth_token middleware in your paste pipeline at the begining of it (there may be other middlewares before like logging, catch_errors and stuff so not quite the first one).</p>
<pre> </pre>
<pre>[filter:authtoken]
signing_dir = /var/cache/service
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = keystone_host
auth_port = keystone_public_port
auth_protocol = keystone_public_port
auth_uri = http://keystone_host:keystone_admin_port/
admin_tenant_name = service
admin_user = service_user
admin_password = service_password
</pre>
<pre> </pre>
<pre> </pre>
<p style="text-align: justify;">There is much more options to the auth_token middleware, I invite you to refer to your service documentation and read a bit the top of the auth_token file <a href="https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py" target="_blank">here</a>.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">When the service get a request with a <strong>X-Auth-Token</strong> header containing a PKI token the auth middleware will intercept it and start to do some works.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">It will validate the token by first md5/hexdigesting it, this is going to be the key in memcache as you may have seen the PKI token since containing all the metadatas can be very long and are too big to server as is for memcache.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">It will check if we have the key in memcache and if not start verify the signed token.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Before everything the token is checked if it was revoked (see my previous article about <a href="http://blog.chmouel.com/2013/04/22/howto-revoke-a-token-with-keystone-and-pki-v2-0-api/" target="_blank">PKI revoked tokens</a>). The way it’s getting the revoked token is to first check if the token revocation list is expired (by default it will do a refresh for it every seconds).</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">If it need to be refreshed it will do a request to the url ‘<em>/v2.0/tokens/revoked</em>‘ with an admin token to the keystone admin interface and get the list of revoked tokens.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The list get stored as well on disk for easy retrieval.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">If the token is not revoked it will convert the token to a proper CMS format and start verifying it.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Using the signing cert filename and the ca filename it will invoke the command line openssl CLI to do a cms -verify which will decode the cms token providing the decoded data. If the cert filename or the ca filename was missing it will fetch it again.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Fetching the signing cert will be done by doing a non authenticated query to the keystone admin url ‘<em>/v2.0/certificates/signing</em>‘. Same goes for the ca making a query to the keystone url ‘<em>/v2.0/certificates/ca</em>‘.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">When we have the decoded data we can now build our environement variable for the other inside the environement variable call keystone.token_info this will be used next by the other services middleware. Bunch of new headers will be added to the request with for example the User Project ID Project Name etc..</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The md5/hexdigest PKI token is then stored with the data inside memcache.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">And that’s it, there is much more information on the IBM blog post and on Adam’s blog I am mentionning earlier.</p>
</div>
</div>
</div>
</div></div>
    </content>
    <updated>2013-05-02T09:39:26Z</updated>
    <category term="Cloud Open Source"/>
    <category term="English"/>
    <category term="OpenStack/Dev"/>
    <category term="keystone"/>
    <category term="openstack"/>
    <author>
      <name>Chmouel</name>
    </author>
    <source>
      <id>http://www.enovance.com</id>
      <link href="http://www.enovance.com/feed?category=openstackdev" rel="self" type="application/atom+xml"/>
      <link href="http://www.enovance.com" rel="alternate" type="text/html"/>
      <subtitle>Cloud &amp; Managed Services Provider</subtitle>
      <title>eNovance</title>
      <updated>2013-05-22T20:12:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://blog.chmouel.com/?p=651</id>
    <link href="http://blog.chmouel.com/2013/05/02/keystone-pki-tokens-overview/" rel="alternate" type="text/html"/>
    <title>Keystone and PKI tokens overview</title>
    <summary>PKI tokens has been implemented in keystone by Adam Young and others and was shipped for the OpenStack grizlly release. It is available since the version 2.0 API of keystone. PKI is a beautiful acronym to Public-key infrastructure which according to wikipedia defines it like this : Public-key cryptography is a cryptographic technique that enables [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>PKI tokens has been implemented in keystone by <a href="http://adam.younglogic.com/">Adam Young</a> and others and was shipped for the OpenStack grizlly release. It is available since the version 2.0 API of keystone.</p>
<p>PKI is a beautiful acronym to <a href="http://en.wikipedia.org/wiki/Public-key_infrastructure">Public-key infrastructure</a> which according to wikipedia defines it like this :</p>
<blockquote><p>Public-key cryptography is a cryptographic technique that enables users to securely communicate on an insecure public network, and reliably verify the identity of a user via digital signatures.</p></blockquote>
<p>As described more lengthy on this IBM <a href="https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_keystone_workflow_token_scoping?lang%3Den">blog post</a> keystone will start to generate a public and a private key and store it locally.</p>
<p>When getting the first request the service (i.e: <a href="http://github.com/openstack/swift">Swift</a>) will go get the public certificate from keystone and store it locally for later use.</p>
<p>When the user is authenticated and a PKI token needs to be generated, keystone will take the private key and encrypt the token and the metadata (i.e: roles, endpoints, services).</p>
<p>The service by the mean of the auth_token middleware will decrypt the token with the public key and get the info to pass on to the service it set the *keystone.identity* WSGI environement variable to be used by the other middleware of the service in the paste pipeline.</p>
<p>The PKI tokens are then much more secure since the service can trust where the token is coming from and much more efficient since it doesn’t have to validate it on every request like done for UUID token.</p>
<h2>Auth token</h2>
<p>This bring us to the auth_token middleware. The auth token middleware is a central piece of software of keystone to provide a generic middleware for other python WSGI services to integrate with keystone.</p>
<p>The auth_token middleware was moved in grizzly to the python-keystoneclient package, this allows us to don’t have to install a full keystone server package to use it (remember this is supposed to be integrated directly in services).</p>
<p>You usually would add the auth_token middleware in your paste pipeline at the begining of it (there may be other middlewares before like logging, catch_errors and stuff so not quite the first one).</p>
<pre class="example">[filter:authtoken]
signing_dir = /var/cache/service
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = keystone_host
auth_port = keystone_public_port
auth_protocol = keystone_public_port
auth_uri = http://keystone_host:keystone_admin_port/
admin_tenant_name = service
admin_user = service_user
admin_password = service_password
</pre>
<p>There is much more options to the auth_token middleware, I invite you to refer to your service documentation and read a bit the top of the auth_token file <a href="https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py">here</a>.</p>
<p>When the service get a request with a <strong>X-Auth-Token</strong> header containing a PKI token the auth middleware will intercept it and start to do some works.</p>
<p>It will validate the token by first md5/hexdigesting it, this is going to be the key in memcache as you may have seen the PKI token since containing all the metadatas can be very long and are too big to server as is for memcache.</p>
<p>It will check if we have the key in memcache and if not start verify the signed token.</p>
<p>Before everything the token is checked if it was revoked (see my previous article about <a href="http://blog.chmouel.com/2013/04/22/howto-revoke-a-token-with-keystone-and-pki-v2-0-api/">PKI revoked tokens</a>). The way it’s getting the revoked token is to first check if the token revocation list is expired (by default it will do a refresh for it every seconds).</p>
<p>If it need to be refreshed it will do a request to the url ‘<em>/v2.0/tokens/revoked</em>‘ with an admin token to the keystone admin interface and get the list of revoked tokens.</p>
<p>The list get stored as well on disk for easy retrieval.</p>
<p>If the token is not revoked it will convert the token to a proper CMS format and start verifying it.</p>
<p>Using the signing cert filename and the ca filename it will invoke the command line openssl CLI to do a cms -verify which will decode the cms token providing the decoded data.  If the cert filename or the ca filename was missing it will fetch it again.</p>
<p>Fetching the signing cert will be done by doing a non authenticated query to the keystone admin url ‘<em>/v2.0/certificates/signing</em>‘. Same goes for the ca making a query to the keystone url ‘<em>/v2.0/certificates/ca</em>‘.</p>
<p>When we have the decoded data we can now build our environement variable for the other inside the environement variable call keystone.token_info this will be used next by the other services middleware. Bunch of new headers will be added to the request with for example the User Project ID Project Name etc..</p>
<p>The md5/hexdigest PKI token is then stored with the data inside memcache.</p>
<p>And that’s it, there is much more information on the IBM blog post and on Adam’s blog I am mentionning earlier.</p></div>
    </content>
    <updated>2013-05-02T08:00:15Z</updated>
    <category term="Keystone"/>
    <category term="Openstack"/>
    <author>
      <name>chmouel</name>
    </author>
    <source>
      <id>http://blog.chmouel.com</id>
      <link href="http://blog.chmouel.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://blog.chmouel.com" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle>Random and probably boring stuff.</subtitle>
      <title>Chmouel's Blog » Openstack</title>
      <updated>2013-05-13T21:36:10Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4137</id>
    <link href="http://www.openstack.org/blog/2013/05/contribute-to-openstack-activity-board/" rel="alternate" type="text/html"/>
    <title>Contribute to OpenStack Activity Board</title>
    <summary>We’ve released the complete documentation for OpenStack Insights, with binaries and source code downloadable from Sourceforge while the OpenStack Dash tools are the vanilla MetricsGrimoire set hosted on github. The code is free as in freedom so you’re welcome to play with it. We’re working to put both pieces of code in the hands of [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>We’ve released the <a href="http://activity.openstack.org/data/display/WIKIDS/Home">complete documentation</a> for <a href="http://activity.openstack.org/data/">OpenStack Insights</a>, with binaries and source code downloadable from <a href="https://sourceforge.net/projects/wikidsopenstack">Sourceforge</a> while the <a href="http://activity.openstack.org/dash/">OpenStack Dash</a> tools are the vanilla <a href="http://metricsgrimoire.github.io/">MetricsGrimoire</a> set <a href="https://github.com/MetricsGrimoire">hosted on github</a>. The code is free as in freedom so you’re welcome to play with it. We’re working to put both pieces of code in the hands of the OpenStack Infrastructure team soon.</p>
<p>Following up on the <a href="http://www.openstack.org/summit/portland-2013/session-videos/presentation/openstack-community-activity-board-and-metrics">long session</a> hosted during the  Summit in Portland and 1-on-1 discussions, I’ve created a new topic on the Development mailing list.  You can join the conversations about OpenStack metrics and the <a href="http://activity.openstack.org">Activity Board</a>  avoiding the high volume traffic on the Development list by subscribing only to the <strong>Metrics</strong> topic. You’ll receive only messages that have the words <em>[metrics]</em> or <em>[activity]</em> in the subject and nothing else.  Go to <a href="http://lists.openstack.org/cgi-bin/mailman/options/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/options/openstack-dev</a> to subscribe and pick “<em>Metrics</em>” among the topic categories you would like to subscribe to.</p>
<p>If you want to know how the <a href="http://activity.openstack.org/">OpenStack Activity Board</a> can help you understand your team’s activities in the project, build reports, integrate data from different sources, join the <a href="http://openstack.enterthemeeting.com/m/5QNKEX2G">webinar we’re hosting on May 9th</a>. We’ll keep ironing out the <a href="https://bugs.launchpad.net/openstack-community/+bugs?field.tag=activityboard">known issues</a> while we think about the future of the platform.</p></div>
    </content>
    <updated>2013-05-02T00:29:30Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Development"/>
    <category term="Measurement"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.mirantis.com/?p=489041</id>
    <link href="http://www.mirantis.com/blog/introducing-murano-bringing-windows-environment-to-openstack/" rel="alternate" type="text/html"/>
    <title>Introducing Murano: Bringing Windows Environments to OpenStack</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>At Mirantis, within our customer and partner base we see growing demand for deploying and running Windows based applications on OpenStack cloud. Today we are pleased to announce the forthcoming Murano project, which is designed to ease this process.  The main goal of this initiative is to create a native OpenStack component that enables fast [...]</p><p>The post <a href="http://www.mirantis.com/blog/introducing-murano-bringing-windows-environment-to-openstack/">Introducing Murano: Bringing Windows Environments to OpenStack</a> appeared first on <a href="http://www.mirantis.com">Mirantis</a>.</p><img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=197500&amp;k=14&amp;bu=http%3A%2F%2Fwww.mirantis.com&amp;r=http%3A%2F%2Fwww.mirantis.com%2Fblog%2Fintroducing-murano-bringing-windows-environment-to-openstack%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://www.mirantis.com/feed/"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>At Mirantis, within our customer and partner base we see growing demand for deploying and running Windows based applications on OpenStack cloud. Today we are pleased to announce the forthcoming Murano project, which is designed to ease this process.  The main goal of this initiative is to create a native OpenStack component that enables fast [...]</p><p>The post <a href="http://www.mirantis.com/blog/introducing-murano-bringing-windows-environment-to-openstack/">Introducing Murano: Bringing Windows Environments to OpenStack</a> appeared first on <a href="http://www.mirantis.com">Mirantis</a>.</p><img align="right" border="0" height="1" src="http://track.hubspot.com/__ptq.gif?a=197500&amp;k=14&amp;bu=http%3A%2F%2Fwww.mirantis.com&amp;r=http%3A%2F%2Fwww.mirantis.com%2Fblog%2Fintroducing-murano-bringing-windows-environment-to-openstack%2F&amp;bvt=rss&amp;p=wordpress" style="float: left;" width="1" xml:base="http://www.mirantis.com/feed/"/></div>
    </content>
    <updated>2013-04-30T21:22:36Z</updated>
    <category term="Blog"/>
    <category term="Technical"/>
    <category term="Murano"/>
    <category term="openstack"/>
    <category term="Windows"/>
    <author>
      <name>Georgy Okrokvertskhov</name>
    </author>
    <source>
      <id>http://www.mirantis.com</id>
      <link href="http://www.mirantis.com/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mirantis.com" rel="alternate" type="text/html"/>
      <subtitle>Mirantis Inc.  - OpenStack Experts On-Demand. Openstack outsourcing and consulting. Openstack engineers and development for openstack software.</subtitle>
      <title>Mirantis » Blog</title>
      <updated>2013-05-22T23:21:09Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:giuliofidente.com,2013-04-30:2013/04/openstack-cinder-add-more-volume-nodes.html</id>
    <link href="http://giuliofidente.com/2013/04/openstack-cinder-add-more-volume-nodes.html" rel="alternate" type="text/html"/>
    <title>OpenStack Cinder - Add more volume nodes</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>With this being the first of a short series, I'd like to publish some articles intendend to cover the required steps to configure <a class="reference external" href="https://wiki.openstack.org/wiki/Cinder">Cinder</a> (<a class="reference external" href="http://www.openstack.org">OpenStack</a> block storage service) in a mid/large deployment scenario. The idea is to discuss at least three topics: how to scale the service by adding more volume nodes; how to ensure high-availablity for the API and Scheduler sub-services; leverage the multi-backend feature landed in Grizzly.</p>
<p>I'm starting with this post on the scaling issue first. <a class="reference external" href="https://wiki.openstack.org/wiki/Cinder">Cinder</a> is composed of three main parts, the API server, the scheduler and the volume service. The volume service is some sort of abstraction layer between the API and the actual resources provider.</p>
<p>By adding more volume nodes into the environment you will be able to increase the total offering of block storage to the tenants. Each volume node can either provide volumes by allocating them locally or on a remote container like an NFS or GlusterFS share.</p>
<p>Some assumptions before getting into the practice:</p>
<ul class="simple">
<li>you're familiar with the general OpenStack architecture</li>
<li>you have at least one Cinder node configured and working as expected</li>
</ul>
<p>First thing to do on the candidate node is to install the required packages. I'm running the examples on CentOS and using the <a class="reference external" href="http://openstack.redhat.com">RDO</a> repository which makes this step as simple as:</p>
<pre class="literal-block"># yum install openstack-cinder
</pre>
<p>If you plan to host new volumes using the locally available storage dont' forget to create a volume group called <code>cinder-volumes</code> (the name can be configured via the <code>cinder_volume</code> parameter). Also don't forget to configure the <code>tgtd</code> to include the config files created dynamically by <a class="reference external" href="https://wiki.openstack.org/wiki/Cinder">Cinder</a>. Add a line like the following:</p>
<pre class="literal-block">include /etc/cinder/volumes/*
</pre>
<p>in your <code>/etc/tgt/targets.conf</code> file. Now enable and start the <code>tgtd</code> service:</p>
<pre class="literal-block"># chkconfig tgtd on
# service tgtd start
</pre>
<p>Amongst the three init services installed by <code>openstack-cinder</code> you only need to run <code>openstack-cinder-volume</code>, which gets configured in <code>/etc/cinder/cinder.conf</code>. Configure it to connect to the existing <a class="reference external" href="https://wiki.openstack.org/wiki/Cinder">Cinder</a> database (the db in use by the pre-existing node) and to the existing AMQP broker (again, in use by the pre-existing node) by setting the following:</p>
<pre class="literal-block">sql_connection=mysql://cinder:${CINDER_DB_PASSWORD}@${CINDER_DB_HOST}/cinder
qpid_hostname=${QPIDD_BROKER}
</pre>
<p>Set the credentials if needed and/or change the <code>rpc_backend</code> setting if you're not using <a class="reference external" href="http://qpid.apache.org/">Qpid</a> as your message broker. One more setting, not really required to change but worth checking if you're using the local resources:</p>
<pre class="literal-block">iscsi_ip_address=${TGTD_IP_ADDRESS}
</pre>
<p>That should match the public ip address of the volume node just installed. The iSCSI targets created locally using <code>tgtadm/tgtd</code> have to be reachable by the <a class="reference external" href="https://wiki.openstack.org/wiki/Nova">Nova</a> nodes. The IP address of each target is stored in the database with every volume created. The <code>iscsi_ip_address</code> prameter sets what is the IP address to be given to the initiators.</p>
<p>At this point you should be ready to start the volume service:</p>
<pre class="literal-block"># service openstack-cinder-volume start
</pre>
<p>Verify that it started by checking the logs (<code>/var/log/cinder/volume.log</code>) or by issueing on any <a class="reference external" href="https://wiki.openstack.org/wiki/Cinder">Cinder</a> node:</p>
<pre class="literal-block"># cinder-manage host list
</pre>
<p>you should see all of your volume nodes listed. From now on you can create new volumes as usual and they will be allocated on any of the volume nodes, keep in mind that the scheduler will default to the node with the most space available.</p></div>
    </summary>
    <updated>2013-04-30T00:00:00Z</updated>
    <category term="openstack"/>
    <category term="cinder"/>
    <category term="fedoraplanet"/>
    <author>
      <name>Giulio Fidente</name>
    </author>
    <source>
      <id>http://giuliofidente.com/</id>
      <link href="http://giuliofidente.com/" rel="alternate" type="text/html"/>
      <link href="http://giuliofidente.com/feeds/tag/openstack.atom.xml" rel="self" type="application/atom+xml"/>
      <title>Giulio Fidente (aka Giulivo Navigante)</title>
      <updated>2013-04-30T00:00:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://adam.younglogic.com/?p=2648</id>
    <link href="http://adam.younglogic.com/2013/04/secure-openstack-with-freeipa/" rel="alternate" type="text/html"/>
    <title>Securing OpenStack with FreeIPA</title>
    <summary>I gave a talk at the OpenStack summit in Portland about using FreeIPA to secure OpenStack. You can see the video here. I have HTMLified my slides if you wish to browse through them.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I gave a talk at the OpenStack summit in Portland about using FreeIPA to secure OpenStack.  <a href="https://www.openstack.org/summit/portland-2013/session-videos/presentation/securing-openstack-with-freeipa" target="_blank" title="Summit Presentation Video">You can see the video here</a>.  I have <a href="http://adam.younglogic.com/presentations/SecuringOpenstackFreeIPA/Securing-OpenStack-FreeIPA.html" target="_blank" title="Slides in HTML form">HTMLified my slides</a> if you wish to browse through them.</p></div>
    </content>
    <updated>2013-04-29T20:39:55Z</updated>
    <category term="Openstack"/>
    <author>
      <name>Adam Young</name>
    </author>
    <source>
      <id>http://adam.younglogic.com</id>
      <link href="http://adam.younglogic.com/category/software/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://adam.younglogic.com" rel="alternate" type="text/html"/>
      <subtitle>The Notebook of a Programmer Climber Musician Ex-Soldier</subtitle>
      <title>Adam Young's Web Log » Openstack</title>
      <updated>2013-05-21T16:21:21Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-2528454834564901150.post-4338452638781123644</id>
    <link href="http://cloudystuffhappens.blogspot.com/feeds/4338452638781123644/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://cloudystuffhappens.blogspot.com/2013/04/how-to-run-pylint-with-few-false.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/2528454834564901150/posts/default/4338452638781123644" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/2528454834564901150/posts/default/4338452638781123644" rel="self" type="application/atom+xml"/>
    <link href="http://cloudystuffhappens.blogspot.com/2013/04/how-to-run-pylint-with-few-false.html" rel="alternate" type="text/html"/>
    <title>How to run pylint with few false positives</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h1 id="markdown-header-how-to-run-pylint-with-few-false-positives" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 24px; font-weight: normal; line-height: 1.25; margin: 0px 0px 10px; padding: 0px;">How to run pylint with few false positives</h1><h2 id="markdown-header-introduction" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 20px; font-weight: normal; line-height: 1.5; margin: 10px 0px 0px;">Introduction</h2><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">Python is a fantastic programming language. It's succinct, easily readable and great for a lot of purposes. For example, all <a href="http://www.openstack.org/" style="color: #3b73af; text-decoration: none;">OpenStack</a> projects so far are written in Python. However, it's an interpreted language. There is no (default) compiler to do any static analysis such as type checking for you. The code quality heavily depends on code reviews (i.e. human eyes and brains) and test coverage.</div><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">There are several projects, such as pylint, pychecker and pyflakes, that do static code analysis to find bugs and coding style violations. Among them, pylint is the most sophisticated one. Unfortunately, Python code doesn't have any type annotations. It's a dynamically typed language. Therefore, Python type analysis is a really hard problem. In pylint, you <em>will</em> see false positives, meaning it will complain some lines as bugs that are actually correct. In fact, pylint was used early in OpenStack Nova's testing environment (around 2010) but latter dropped because the growing number of false positives became unmanagable.</div><h2 id="markdown-header-meet-lintstack" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 20px; font-weight: normal; line-height: 1.5; margin: 20px 0px 0px;">Meet lintstack</h2><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">lintstack is designed to address this problem: <strong>reduce false positives from pylint as much as possible without sacrificing accuracy</strong>. Certainly it's possible to improve pylint itself and perhaps type inference theory behind it but I'd leave that to the programming language researchers.</div><h3 id="markdown-header-key-idea" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 16px; line-height: 1.5625; margin: 20px 0px 5px;">Key idea</h3><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">The key idea is to leverage the version control system. I use git in the article but it works on others too. In git, you have access to the entire commit history of the project, but pylint only runs against the latest commit, or HEAD. Can we do better?</div><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">Let me use an example. Suppose I clone the project in git, HEAD is a <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code>. I write a new feature, commit the patch, now the HEAD is at <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code>. I run pylint against <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code>, and see 60 errors in the report. That's an overwelming number. Which errors are due to my patch? If there were no false positives and commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> has no errors, then all 60 errors must all belong to my patch. But in reality there are false positives and real bugs in the commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code>, so it's hard to tell which ones I should fix.</div><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">At a high level lintstack runs pylint on both commits <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> and <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code>, and do a diff. lintstack considers errors on <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> are all false positives. Only the new errors are attributed to the patch. It might still be likely that some of the new errors are false positives, but it's much more manageable. Because the patch is small, I will only likely to see one or two errors instead of 60. I will pay attentions to the errors and fix accordingly.</div><h3 id="markdown-header-details" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 16px; line-height: 1.5625; margin: 20px 0px 5px;">Details</h3><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">The idea of lintstack is really simple, but it requires a little more careful thoughts.</div><ul style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 10px 0px 0px;"><li>First, how do you do diff? In the new patch, the code is changed. That means, the line numbers, white spaces, or line breaks might change. So the error report on commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> might need to be revised to match that on commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code>.</li><li>Second, the false positives we learned from commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> might help to reduce that on commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code>. For example, pylint always seems to think that the <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">sha1</code> module has no <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">digestsize</code> method. If we have seen that on commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code>, and a new error from commit <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code> is of the same kind, even thought it's new code, we should classify it as a false positive suppress them.</li><li>Last but not the least, the git history is a complicated graph. When I'm developing a patch, the master branch has moved forward because other developers make commits too! Say the master moves from <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> to <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A'</code>, it's not enough to run diff between <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A</code> and <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">B</code>. It should be <code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">A'</code> and<code style="background-color: whitesmoke; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; border-top-left-radius: 2px; border-top-right-radius: 2px; border: 1px solid rgb(204, 204, 204); font-size: 12px; line-height: 1.4; padding: 1px 3px;">merge(A', B)</code> instead. Things would get further complicated if I want to commit multiple patches on my own branch and send in for review.</li></ul><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">All of the above mentioned problems are considered in lintstack. I invite you to checkout the <a href="https://github.com/openstack/nova/tree/master/tools" style="color: #3b73af; text-decoration: none;">code on github</a> to see the details.</div><h3 id="markdown-header-performance" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 16px; line-height: 1.5625; margin: 20px 0px 5px;">Performance</h3><div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; margin-top: 10px;">lintstack has been added to OpenStack Nova since late Folsom cycle. It's been deployed at the CI gate and integrated with the code review system gerrit at https://review.openstack.org. You can check the recent test results at <a href="https://jenkins.openstack.org/job/gate-nova-pylint/" style="color: #3b73af; text-decoration: none;">Jenkins</a>. During the entire Nova Grizzly development cycle, where 1877 change sets are committed, 127898 lines added, 79370 removed, only 18 errors reported from lintstatck are false positive cases, most of them are due to pylint unable to determine the call signatures of external libraries. On the other hand, lintstack almost finds real bugs (true positives) every day.</div><br/></div>
    </content>
    <updated>2013-04-29T15:30:28Z</updated>
    <published>2013-04-08T17:28:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="openstack"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="lintstack"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="pylint"/>
    <author>
      <name>Yun Mao</name>
      <email>noreply@blogger.com</email>
      <uri>https://plus.google.com/116271889394605063183</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-2528454834564901150</id>
      <category term="zookeeper"/>
      <category term="openstack"/>
      <category term="pylint"/>
      <category term="lintstack"/>
      <category term="conductor"/>
      <category term="nova"/>
      <author>
        <name>Yun Mao</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://cloudystuffhappens.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/2528454834564901150/posts/default/-/openstack" rel="self" type="application/atom+xml"/>
      <link href="http://cloudystuffhappens.blogspot.com/search/label/openstack" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Cloudy Stuff Happens</title>
      <updated>2013-05-12T07:37:29Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://blog.flaper87.org/post/517da0e10f06d35562ce7376/</id>
    <link href="http://blog.flaper87.org/post/517da0e10f06d35562ce7376/" rel="alternate" type="text/html"/>
    <title>Glance wants to go public</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Havana development started, some folks just came back from April's summit and many things have been discussed - or are still under discussion. As for OpenStack's Image, one of the targets for this release is to make it ready for public environments. Unfortunately, some important features are missing, and that for, Glance is not cloud-ready, yet.</p>

<h1>Does OpenStack Image needs too go public?</h1>

<p>As for now, I can only see good things coming out of this. Glance is doing its job and has grown gradually  in the last 2 releases but it does lacks of some features that could improve its integration within different environments.</p>

<p>One thing that should be kept in mind is that this project is meant to provide images, and either it does that publicly with strong enforcements or privately in some hidden data center doesn't change that.</p>

<p>That being said, there are some ideas that come to mi mind where a public image service could be used (I'm pretty sure there are way better use cases for it):</p>

<ol>
<li>Remote image download for distributions' installer</li>
<li>Vagrant boxes distribution</li>
<li>Public image service within a cloud service (allowing users to do mor things that what they're allowed now)</li>
<li>ISO images distribution</li>
<li>... add yours</li>
</ol>

<h1>Some features missing</h1>

<h2><em>Quotas</em></h2>

<p>Maybe not the most important but definitely required. As for now, OpenStack's Image service lacks of any kind of quotas support, which means it is not possible to set limits on the many operations available - neither globally nor per user. Once Glance will reach the "outside world", it will be mandatory to moderate the resources usage in multiple ways: per user, per instance, per action, per tenant and per region.</p>

<p>This is still under discussion, and current thoughts go around supporting it internally or as an separated service.</p>

<h2><em>Robust user roles</em></h2>

<p>Perhaps the most important one, without it, many of the other features can't be implemented. Currently, roles and policies haven't been used heavily throughout Glance, which allow users to execute some actions without any enforcement. Good thing is the code is there - most of it - and what's really missing is the presence of new policies and roles.</p>

<h2><em>Protected image properties</em></h2>

<p>Images have properties, and those properties are public. However, it is necessary to assign hidden properties to images for other purposes like (following items are under discussion): billing, permissions, roles. Current properties model doesn't allow this:</p>

<pre><code>class ImageProperty(BASE, ModelBase):
    """Represents an image properties in the datastore"""
    __tablename__ = 'image_properties'
    __table_args__ = (UniqueConstraint('image_id', 'name'), {})

    id = Column(Integer, primary_key=True)
    image_id = Column(String(36), ForeignKey('images.id'),
                      nullable=False)
    image = relationship(Image, backref=backref('properties'))

    name = Column(String(255), index=True, nullable=False)
    value = Column(Text)
</code></pre>

<h2><em>Rate Limits</em></h2>

<p>Under some views this might look like something related to quotas, whether it is or not is not what we'll discuss here. As for Glance, we're treating it as a separate task and different things are being taken under consideration. One of those is to leave this outside Glance and let third party tools - regardless they are part of OpenStack.</p>

<h1>Performance and latency</h1>

<p>There are some other discussions going around OpenStack's Image performance and more precisely about improving uploads and downloads. Although this is not a blocker task, it would be nice to see it going forward and being able to reduce the time and bandwidth needed for both operations. Since this is a long topic, I'd like to start sharing some insightful posts and blueprints that some folks already wrote:</p>

<ul>
<li><p><a href="http://tropicaldevel.wordpress.com/2013/01/11/an-image-transfers-service-for-openstack/">Image Transfer Service</a> by John Bresnahan</p></li>
<li><p><a href="https://blueprints.launchpad.net/glance/+spec/upload-download-workflow">Upload / Download Workflow</a> by Iccha Sethi</p></li>
</ul>

<h1>Open Discussions</h1>

<p>Most of this things are under discussion, feel free to chime. I'd like to thank <a href="http://www.icchasethi.com">Iccha Sethi</a> for bringing most of this things up and her great contributions to the project.</p>

<ul>
<li><a href="https://blueprints.launchpad.net/glance/">Glance Blueprints</a></li>
<li><a href="https://blueprints.launchpad.net/glance/+spec/exposing-glance-for-public-clouds">Exposing Glance for public clouds</a></li>
<li><a href="https://etherpad.openstack.org/havana-getting-glance-ready-for-public-clouds">Havana getting Glance ready for public clouds</a></li>
</ul></div>
    </content>
    <updated>2013-04-28T22:21:22Z</updated>
    <published>2013-04-28T22:21:22Z</published>
    <author>
      <name>FlaPer87</name>
    </author>
    <source>
      <id>http://blog.flaper87.org/feeds/latest/tag/openstack/</id>
      <link href="http://blog.flaper87.org/" rel="alternate" type="text/html"/>
      <link href="http://blog.flaper87.org/feeds/latest/tag/openstack/" rel="self" type="application/atom+xml"/>
      <title>Recent Articles for tag openstack</title>
      <updated>2013-04-28T22:21:22Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://vmartinezdelacruz.com/?p=733</id>
    <link href="http://vmartinezdelacruz.com/hey-ladies-there-is-a-new-round-of-the-outreach-program-for-women/" rel="alternate" type="text/html"/>
    <title>Hey ladies! There is a new round of the Outreach Program for Women</title>
    <summary>The free software world is once again revolutionized because of the GNOME’s Outreach Program for Women. Many women from different parts of the world are making their first contributions, sending their application letters and crossing their fingers to be the…</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The free software world is once again revolutionized because of the <a href="https://live.gnome.org/OutreachProgramForWomen" target="_blank" title="Outreach Program for Women | GNOME Live!">GNOME’s Outreach Program for Women</a>. Many women from different parts of the world are making their first contributions, sending their application letters and crossing their fingers to be the future interns in one of the various free software organizations involved in this new edition. OpenStack is one of them, and have fun ideas for all who want to join our community.</p>
<p>Would you like to participate? <a href="http://vmartinezdelacruz.com/contact/" target="_blank" title="Contact | Victoria Mart&#xED;nez de la Cruz">Contact me!</a></p>
<p><span id="more-733"/></p>
<h3>Lightning questions and answers</h3>
<h5>Who can participate?</h5>
<p>Women or people who identify as such of any age and from anywhere in the world.</p>
<h5>Do I need to know how to code?</h5>
<p>No! It’s not necessary. In this internships you can contribute in different ways: systems management, user interface design, graphic design, documentation, community management, marketing, translation … and of course, software development.</p>
<h5>Which are these organizations you mentioned?</h5>
<p><a href="http://informatics.nescent.org/wiki/Phyloinformatics_Summer_of_Code_2013" target="_blank" title="NESCent">NESCent (National Evolutionary Synthesis Center)</a>, <a href="https://commotionwireless.net/jobs/opw-projects" target="_blank" title="Open Technology Institute">Open Technology Institute</a>, <a href="https://wiki.openstack.org/wiki/OutreachProgramForWomen" target="_blank" title="OpenStack">OpenStack</a>, <a href="http://codex.wordpress.org/Gnome_Summer_Program_for_Women" target="_blank" title="Wordpress">WordPress</a>, <a href="https://www.mediawiki.org/wiki/Outreach_Program_for_Women" target="_blank" title="Wikimedia">Wikimedia</a>, <a href="https://www.yoctoproject.org/opw-internship" target="_blank" title="Yocto">Yocto</a>, <a href="http://wiki.debian.org/OutreachProgramForWomen" target="_blank" title="Debian">Debian</a>, <a href="https://live.gnome.org/GnomeWomen/OutreachProgram" target="_blank" title="GNOME">GNOME</a>, <a href="http://docs.joomla.org/GNOME_Outreach_Program_for_Women" target="_blank" title="Joomla">Joomla</a>, <a href="https://community.kde.org/OutreachProgramForWomen" target="_blank" title="KDE">KDE</a>, <a href="http://wiki.mediagoblin.org/Outreach_Program_for_Women_2013" target="_blank" title="MediaGoblin">MediaGoblin</a>, <a href="https://wiki.mozilla.org/GNOME_Outreach_Summer2013" target="_blank" title="Mozilla">Mozilla</a>, <a href="http://go.openmrs.org/opw" target="_blank" title="OpenMRS">OpenMRS</a>, <a href="http://www.perlfoundation.org/outreach_program_for_women" target="_blank" title="Perl">Perl</a>, <a href="https://www.torproject.org/getinvolved/volunteer.html.en#opw" target="_blank" title="Tor">Tor</a>, <a href="https://twistedmatrix.com/trac/wiki/WomenOutreach2013" target="_blank" title="Twisted">Twisted</a> y <a href="http://www.wikia.com/Careers/OPFW" target="_blank" title="Wikia">Wikia</a>.</p>
<p>At this point I recommend considering NESCent, OpenStack, WordPress, Wikimedia and Yocto first.</p>
<h5>How much time do I have to apply and when the internships begin?</h5>
<p>Start as soon as possible! We’re near of the deadline, which is on 01-05-2013 – in 4 days! -, the internships begin on June 17th and end on September 23rd.</p>
<p>I know it’s short notice, but don’t miss the opportunity. I can help you!</p>
<h5>What benefits do I have?</h5>
<p>Well, the most important thing is that you will be able to work in very large organizations with people around the world. You’ll learn with the best and most experienced in their area, and you’ll be able to grow along them.</p>
<p>In addition, you will feel how fun and exciting is to work on free software projects.</p>
<p>I really can’t describe in words that last thing, so I suggest you watch this Wikimedia video which somehow sums up my feelings.</p>
<p style="text-align: center;">&lt;iframe allowfullscreen="allowFullScreen" frameborder="0" height="281" mozallowfullscreen="mozallowfullscreen" src="http://commons.wikimedia.org/wiki/File:Great_Feeling.ogv?embedplayer=yes" webkitallowfullscreen="webkitAllowFullScreen" width="500"&gt;&lt;/iframe&gt;</p>
<p>Finally, you will also receive a stipend that will help you to dedicate yourself completely to this experience.</p>
<h5>What is expected of the interns?</h5>
<p>Internships are full-effort, generally eight hours from Monday through Friday or as the mentor suggests.</p>
<p>You should choose a project, usually suggested by the mentor, in which to work during your internship. Plus you’ll be doing other less demanding tasks in parallel.</p>
<p>You should also write your experiences, tips and ideas in a blog.</p>
<h5>How can I apply?</h5>
<p>You have to make a small contribution to the organization you have chosen and send a letter of application by May 1. More details on the <a href="https://live.gnome.org/OutreachProgramForWomen" target="_blank" title="Outreach Program for Women | GNOME Live!">OPW</a> official website.</p>
<h3>Tips and tricks from a previous intern</h3>
<p>This was the main goal of my post! To avoid making you waste more time, I made a list of what I consider to be the most important:</p>
<ul>
<li>There are more people in the community apart from your mentor, don’t be afraid to chat with other people and ask for help in the community. Consider that many of those who are there have also another job, so they may not have time to answer – but they will answer! -.</li>
<li>Nobody knows everything and you have to start somewhere. If you are frustrated, let your mentor know about this. Seize the time, read, learn, and if you feel that one day wasn’t good enough, the next day will be better for sure.</li>
<li>Organize your tasks. What seems impossible to finish becomes more manageable if you face it from different angles and in a smaller pieces.</li>
<li>Socialize with other interns and mentors. Probably you will discover a great person – as I did :) -.</li>
<li>Enjoy! Have fun at work, and at the end of the day take a moment to see how much you have progressed.</li>
</ul>
<p>I’m probably forgetting many details, so feel free to contact me and ask me for more details of this internship, help for your application or technical support. Whatever you need! And finally, again, be encouraged to be a part of this amazing experience.</p></div>
    </content>
    <updated>2013-04-28T14:52:01Z</updated>
    <category term="OpenStack"/>
    <category term="OPW"/>
    <category term="Planeteria"/>
    <author>
      <name>vkmc</name>
    </author>
    <source>
      <id>http://vmartinezdelacruz.com</id>
      <link href="http://vmartinezdelacruz.com/category/OpenStack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://vmartinezdelacruz.com" rel="alternate" type="text/html"/>
      <subtitle>Somewhere over the stack</subtitle>
      <title>Victoria Martínez de la Cruz » OpenStack</title>
      <updated>2013-05-13T21:37:46Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://blog.flaper87.org/post/517c3ea50f06d3497faffe5a/</id>
    <link href="http://blog.flaper87.org/post/517c3ea50f06d3497faffe5a/" rel="alternate" type="text/html"/>
    <title>Dynamic TTL Collection in Mongodb for Marconi</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>One of the things that led the team towards choosing Mongodb as Marconi's - the queuing service for OpenStack - first and default storage back-end is its TTL Collections feature.</p>

<p>TTL Collections - perhaps it would be better to call it TTL Indexes - are normal collections with a special index type, which defines the time - in seconds - a record can last in the collection.</p>

<p>This was added in Mongodb version 2.2 and was rapidly accepted and integrated many deployments.</p>

<h1>Implementation</h1>

<p>A TTL Index is created by specifying the expireAfterSeconds option in the ensureIndex method:</p>

<pre><code>db.ttl_col.ensureIndex({&lt;field&gt;: &lt;direction&gt;}, {expireAfterSeconds: &lt;seconds&gt;})
</code></pre>

<p>The above starts a background thread (if not already running) that will monitor the collection and scrub expired records every minute, which means a record can last at most <code>N + 60</code> where <code>N</code> is the number of seconds specified in the index and 60 the frequency of the background thread.</p>

<h1>Marconi Usage</h1>

<p>Even though it is a great feature, it wasn't enough to cover Marconi's needs since the later supports per message TTL. In order to cover this, one of the ideas was to implement something similar to Mongodb's thread and have it running server-side but we didn't want that for a couple of reasons: it needed a separated thread / process and it had a bigger impact in terms of performance.</p>

<p>After digging into this a bit more and doing some tests, we found out it is possible to "fool" the ttl monitor and have dynamic TTL support without much effort. Let me explain this a bit more.</p>

<p>Mongodb's TTL monitor looks for records that have expired by checking if the date field specified in the index is less than the current time minus the seconds specified in the <code>expireAfterSeconds</code>.</p>

<pre><code>BSONObj query;
{
    BSONObjBuilder b;
    b.appendDate( "$lt" , curTimeMillis64() - ( 1000 * idx[secondsExpireField]  .numberLong() ) );
    query = BSON( key.firstElement().fieldName() &lt;&lt; b.obj() );
}
</code></pre>

<p>Since the date set in the indexed field <em>must</em> be less than <code>time - ttl</code>, it is possible to have dynamic ttl by setting the index's ttl to 0 and adding it to the field date instead:</p>

<pre><code>&gt; use ttl
&gt; db.ttl_col.ensureIndex({ttl: 1}, {expireAfterSeconds: 0})
&gt; var start  = new Date(new Date().getTime() + 60000)
&gt; db.ttl_col.insert({ttl: start})
&gt; while (true) {
    var count = db.ttl_col.count();

    print("# of records: " + count + " (" + (start - new Date()) + ")");

    if (count == 0)
        break;

    sleep(4000);
}
# of records: 1 (56783)
# of records: 1 (52782)
# of records: 1 (48781)
# of records: 1 (44779)
# of records: 1 (40778)
# of records: 1 (36776)
# of records: 1 (32775)
# of records: 1 (28774)
# of records: 1 (24773)
# of records: 1 (20771)
# of records: 1 (16770)
# of records: 1 (12769)
# of records: 1 (8768)
# of records: 1 (4765)
# of records: 1 (763)
# of records: 1 (-3238)
# of records: 1 (-7239)
# of records: 1 (-11240)
# of records: 1 (-15241)
# of records: 1 (-19242)
# of records: 0 (-23243)
</code></pre>

<p>In the above code, the record has a 1 min TTL and lasted ~1:20 - notice that it could have lasted at least 1 min and at most 2 min.</p>

<p>This made the implementation way easier and allowed us to use the same behavior for both messages and claims, even though claims expiration doesn't require removing records.</p>

<p>Current Marconi's message post looks like this:</p>

<pre><code>def post(self, queue, messages, client_uuid, tenant=None):
    qid = self._get_queue_id(queue, tenant)

    now = timeutils.utcnow()

    def denormalizer(messages):
        for msg in messages:
            ttl = int(msg["ttl"])
            expires = now + datetime.timedelta(seconds=ttl)

            yield {
                "t": ttl,
                "q": qid,
                "e": expires,
                "u": client_uuid,
                "c": {"id": None, "e": now},
                "b": msg['body'] if 'body' in msg else {}
            }

    ids = self._col.insert(denormalizer(messages))
    return map(str, ids)
</code></pre>

<h1>Random thoughts</h1>

<p>Would it be possible / better to have this behavior in the database side? What would the cost of this task be? As for now, I can see it being implemented like this:</p>

<pre><code>&gt; db.ttl_col.ensureIndex({datetime: 1}, {expireAfterSeconds: "ttl_field"})
</code></pre>

<p>This would require doing some in-query operations like adding the value of the record's <code>ttl</code> field to the current time and then check whether it is greater than <code>datetime</code>. They might be a better way, though.</p></div>
    </content>
    <updated>2013-04-27T21:09:57Z</updated>
    <published>2013-04-27T21:09:57Z</published>
    <author>
      <name>FlaPer87</name>
    </author>
    <source>
      <id>http://blog.flaper87.org/feeds/latest/tag/openstack/</id>
      <link href="http://blog.flaper87.org/" rel="alternate" type="text/html"/>
      <link href="http://blog.flaper87.org/feeds/latest/tag/openstack/" rel="self" type="application/atom+xml"/>
      <title>Recent Articles for tag openstack</title>
      <updated>2013-04-28T22:21:22Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://secstack.org/?p=208</id>
    <link href="http://secstack.org/2013/04/openstack-common-vulnerability-database/" rel="alternate" type="text/html"/>
    <title>OpenStack Common Vulnerability Database</title>
    <summary>As per my last post I am starting to work on building an OpenStack common vulnerability database. As for the justifications, read here. This post will discuss some of my proposed architecture. So this is what I envision the final process workflow will probably resemeble: We can make use of OSLO components in several areas [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>As per my last post I am starting to work on building an OpenStack common vulnerability database.  As for the justifications, read <a href="http://secstack.org/2013/04/havana/">here</a>.</p>
<p>This post will discuss some of my proposed architecture.</p>
<p>So this is what I envision the final process workflow will probably resemeble:</p>
<p><a href="http://secstack.org/wp-content/uploads/2013/04/OSCVDB-ProcessFlow.png"><img alt="" class="alignnone size-full wp-image-209" height="460" src="http://secstack.org/wp-content/uploads/2013/04/OSCVDB-ProcessFlow.png" title="OSCVDB-ProcessFlow" width="750"/></a></p>
<p>We can make use of OSLO components in several areas of the architecture.  Additionally, we can make use of the new <a href="https://github.com/openstack/requirements">requirements</a> project.  And that would certainly be the goal.</p>
<p>The next post I make will contain a rough draft of a proposed schema design for the database.</p></div>
    </content>
    <updated>2013-04-26T22:51:34Z</updated>
    <category term="OpenStack"/>
    <author>
      <name>openfly</name>
    </author>
    <source>
      <id>http://secstack.org</id>
      <link href="http://secstack.org/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://secstack.org" rel="alternate" type="text/html"/>
      <subtitle>OpenStack Security Blog</subtitle>
      <title>SecStack » OpenStack</title>
      <updated>2013-05-13T21:36:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://robhirschfeld.com/?p=2293</id>
    <link href="http://robhirschfeld.com/2013/04/26/openstack-moves-toward-interopability/" rel="alternate" type="text/html"/>
    <title>OpenStack steps toward Interopability with Temptest, RAs &amp; RefStack.org</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I’m a cautious supporter of OpenStack leading with implementation (over API specification); however, it clearly has risks. OpenStack has the benefit of many live sites operating at significant scale. The short term cost is that those sites were not fully … <a href="http://robhirschfeld.com/2013/04/26/openstack-moves-toward-interopability/">Continue reading <span class="meta-nav">→</span></a><img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2293&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://robhirschfeld.files.wordpress.com/2013/04/2013-04-04_17-51-00_635.jpg"><img alt="Pipes are interoperable" class="alignright size-thumbnail wp-image-2315" height="84" src="http://robhirschfeld.files.wordpress.com/2013/04/2013-04-04_17-51-00_635.jpg?w=150&amp;h=84" width="150"/></a>I’m a <a href="http://robhirschfeld.com/2011/06/11/not-all-apis-are-equal/" title="Not all APIs are equal: the power of API + implementation (OpenStack vs LibCloud vs&#xA0;DeltaCloud)">cautious supporter of OpenStack leading with implementation</a> (over API specification); however, it clearly has risks. OpenStack has the benefit of many live sites operating at significant scale. The short term cost is that those <a href="http://www.itworld.com/cloud-computing/351988/new-openstack-initiative-could-address-interoperability-questions">sites were not fully interoperable </a>(progress is being made!). Even if they were, we are lack the means to validate that they are.</p>
<blockquote><p>The <a href="http://www.youtube.com/watch?v=DQhkL86QQM0">interoperability challenge</a> was a major theme of the Havana Summit in Portland last week<a href="https://www.openstack.org/summit/portland-2013/session-videos/presentation/panel-interoperability"> (panel I moderated)</a> .  Solving it creates significant benefits for the OpenStack community.  These benefits have significant financial opportunities for the OpenStack ecosystem.</p></blockquote>
<p>This is a journey that we are on together – it’s not a deliverable from a single company or a release that we will complete and move on.</p>
<p>There were several themes that Monty and I presented during <a href="http://www.youtube.com/watch?v=R93WHd7gIV4">Heat for Reference Architectures</a> (<a href="http://www.slideshare.net/rhirschfeld/open-stack-heat-for-ras">slides</a>).  It’s pretty obvious that i<span style="line-height: 13px;">nterop is valuable (<a href="http://robhirschfeld.com/2013/04/10/openstack-interop/" title="OpenStack&#x2019;s next hurdle: Interoperability.  Why should you&#xA0;care?">I discuss why you should care in this earlier post</a>) and run</span><span style="font-size: 13px;">ning a cloud means dealing with hardware, software and ops in equal measures.  We also identified lots of important items like </span><a href="http://robhirschfeld.com/2013/03/08/devops-play-with-others-chef-crowbar-upstream/" title="5 things keeping DevOps from playing well with others (Chef, Crowbar and Upstream&#xA0;Patterns)">Open Operations</a>, <a href="http://robhirschfeld.com/2012/07/05/upstreaming/" style="font-size: 13px;" title="What does &#x201C;enable upstream recipes&#x201D; mean?  Not just fishing for community&#xA0;goodness!">Upstreaming</a>, <span style="font-size: 13px;">Reference Architecture/Implementation and T</span>esting.</p>
<p><span style="font-size: 13px;">During the session, I think we did a good job stating how we can use Heat for an RA to make incremental steps.   and I had a <a href="http://www.youtube.com/watch?v=e0dbavbx05c">session about upgrade</a> (<a href="http://www.slideshare.net/rhirschfeld/summit-2013-spring-rob-hirschfeld-migrations-v1">slides</a>).</span></p>
<blockquote><p>Even with all this progress, Testing for interoperability was one of the largest gaps.</p></blockquote>
<p><span style="font-size: 13px;">The challenge is not if we should test, but how to create a set of tests that everyone will accept as adequate.  Approach that goal with standardization or specification objective is likely an impossible challenge.</span></p>
<p><strong><a href="http://www.linkedin.com/in/joshuamckenty" style="font-size: 13px; line-height: 19px;">Joshua McKenty</a><span style="font-size: 13px; line-height: 19px;"> </span><span style="font-size: 13px; line-height: 19px;">&amp;</span><span style="font-size: 13px; line-height: 19px;"> </span><a href="https://launchpad.net/~mordred" style="font-size: 13px; line-height: 19px;">Monty Taylor</a><span style="font-size: 13px; line-height: 19px;"> </span><span style="font-size: small;"><span style="line-height: 19px;">found a starting point for interoperability FITS testing: “let’s use the Tempest tests </span></span>we’ve<span style="font-size: small;"><span style="line-height: 19px;"> got.”</span></span></strong></p>
<p><span style="font-size: 13px;">We should question the assumption that faithful implementation test specifications (</span><a href="http://www.openstack.org/fits/" style="font-size: 13px;">FITS</a><span style="font-size: 13px;">) for interoperability are only useful with a matching specification and significant API coverage.  </span><span style="font-size: 13px;">Any level of coverage provides useful information and, more importantly, visibility accelerates contributions to the test base.</span></p>
<p>I can speak from experience that this approach has merit.  <a href="http://dell.com/crowbar">The Crowbar team at Dell</a> has been including OpenStack Tempest as part of our reference deployment since Essex and it runs as part of our automated test infrastructure against every build.  This process does not catch every issue, but passing Tempest is a very good indication that you’ve got the a workable OpenStack deployment.</p>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/robhirschfeld.wordpress.com/2293/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/robhirschfeld.wordpress.com/2293/"/></a> <img alt="" border="0" height="1" src="http://stats.wordpress.com/b.gif?host=robhirschfeld.com&amp;blog=9795320&amp;post=2293&amp;subd=robhirschfeld&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-04-26T20:57:27Z</updated>
    <category term="Crowbar"/>
    <category term="DevOps"/>
    <category term="Migration"/>
    <category term="Monty Taylor"/>
    <category term="OpenStack"/>
    <category term="OpenStack Design Summit"/>
    <category term="Operations"/>
    <category term="Quality"/>
    <category term="Uncategorized"/>
    <category term="Heat"/>
    <category term="Interoperability"/>
    <category term="open operations"/>
    <category term="Reference Architecture"/>
    <category term="RefStack"/>
    <category term="Tempest"/>
    <category term="Test"/>
    <author>
      <name>Rob H</name>
    </author>
    <source>
      <id>http://robhirschfeld.com</id>
      <logo>http://0.gravatar.com/blavatar/0611d8ca437ffd3dbaebd30ab7aa4897?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</logo>
      <link href="http://robhirschfeld.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://robhirschfeld.com" rel="alternate" type="text/html"/>
      <link href="http://robhirschfeld.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="http://robhirschfeld.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Agile in the Clouds</subtitle>
      <title>Rob Hirschfeld » OpenStack</title>
      <updated>2013-05-22T21:37:13Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://justwriteclick.com/?p=1999</id>
    <link href="http://justwriteclick.com/2013/04/26/who-wrote-openstack-grizzly-docs/" rel="alternate" type="text/html"/>
    <title>Who Wrote OpenStack Grizzly Docs?</title>
    <summary>Sneaking a peek at the numbers for documentation along with the code should show us pointers about docs keeping up with code. As I suspected, there were about three major contributors to the operations manuals that span all the projects, and about three major contributors to the API docs. Also not a big surprise, I [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Sneaking a peek at the numbers for documentation along with the code should show us pointers about docs keeping up with code. As I suspected, there were about three major contributors to the operations manuals that span all the projects, and about three major contributors to the API docs. Also not a big surprise, I am the major contributor to both. My spidey sense felt it but I had a real gut check with the actual data.</p>
<p><a href="https://secure.flickr.com/photos/timsamoff/421025736/sizes/m/"><img alt="timsamoff_no3" class="alignnone size-medium wp-image-2001" height="199" src="http://justwriteclick.com/blog/wp-content/uploads/2013/04/timsamoff_no3-300x199.jpg" title="flickr: timsamoff" width="300"/></a></p>
<p>What’s difficult about this data analysis at this time is that we still need to release the docs even while we plan for the next six months. What I really want to do is look at the past six months and all the amazing work and accomplishments we have seen. The growth has been great and the fantastic feat of the Operations Guide really topped off my year. But we are still lacking enough strong doc contributors to keep up with the pace of code growth.</p>
<p>First, let’s look at the OpenStack code analyzes. The last six months showed 517 contributors. For example, Object Storage grew their new contributors by over 35 people which is probably doubling the involvement. Our Infrastructure team continues to raise the bar for helping us slam in more and more bits as fast as our little cloud servers can slam them. Here’s Monty Taylor’s report:</p>
<p>OpenStack code patches</p>
<pre>                        Essex   Folsom  Grizzly
Patches Uploaded        11036   17986   29308
Changes Created         5137    5990    12721
Changes Landed          4235    4978    10561
Avg patches per Change  2.6     3.6     2.7
Landing Percentage      82%     83%     83%</pre>
<p>What I want to do here is provide similar data that shows the growth of the project relative to the docs. I’m using the openstack-gitdm project to run the numbers for the documentation repos. There are eight in total but I’m just going to look at the top two, openstack-manuals and api-site. The openstack-manuals repository holds the install, configuration, adminstration, high availability, and operations guide. The api-site repository holds the building blocks for the API reference page, the API Quick Start, and other API guides (but not the API specs).</p>
<p>Here’s a listing of all the OpenStack doc repositories:<br/>
openstack/openstack-manuals – for operators and deployers, docs.openstack.org<br/>
openstack/api-site – for API consumers, api.openstack.org<br/>
openstack/compute-api<br/>
openstack/image-api<br/>
openstack/object-api<br/>
openstack/netconn-api<br/>
openstack/volume-api<br/>
openstack/identity-api</p>
<p>These are the types of statistics I want to know about doc contributions.<br/>
Number of doc contributors: 79. This is a great value.<br/>
Number of new doc contributors: 27. I like this from a growth standpoint.<br/>
Number of doc contributions: 512. There were 435 doc changes within openstack-manuals during the grizzly release, and 429 during the folsom release. Compared to over 12,000 code changes I instinctively know this wasn’t enough doc update. While we do have a good base set of docs, they are getting a bit crufty and we want to address that in the Havana release.</p>
<p>Number of employers: 49 (up from 37 last release). This is a high number. The highest doc contributing employer is Rackspace during the Grizzly release.</p>
<p>So, what about quality? The most bugs fixed by a doc contributor is 45 (well over half) by Tom Fifieldt. Tom is a great doc bug triage expert and I don’t know what we’d do without him.</p>
<p>How about what’s the top docs being read? The most read books are the Ubuntu Install and Deploy and the API Quick Start followed closely by the Identity 2.0 API Spec (wow that surprised me).</p>
<p>Here’s the reported data from openstack-gitdm. Thanks to Daniel Stangel for helping me retrieve this data. One hidden contributor is Jon Proulx, who wrote lots of the Operations Guide. Everett Toews also contributed a lot to the Operations Guide but won’t show up here. This omission leads me to suspect there may be other “ghosts” writing OpenStack docs, but I think the main point is, the top three shown below are far ahead of the fourth, fifth, and sixth-highest doc contributors.</p>
<pre>Processed 435 csets from 79 developers
49 employers found
A total of 87457 lines added, 26085 removed (delta 61372)

Developers with the most changesets
Tom Fifield                 99 (22.8%)
annegentle                  86 (19.8%)
Lorin Hochstein             46 (10.6%)
Emilien Macchi              17 (6.0%)
atul jha                    11 (2.5%)
Mate Lakat                  10 (2.3%)
Diane Fleming                9 (2.1%)
dcramer                      8 (1.8%)
Aaron Rosen                  8 (1.8%)
gongysh                      6 (1.4%)
Ed Kern                      6 (1.4%)
Eduardo Patrocinio           6 (1.4%)
Alvaro Lopez Garcia          5 (1.1%)
Kurt Martin                  4 (0.9%)
Dan Wendlandt                4 (0.9%)
Razique Mahroua              4 (0.9%)
Gary Kotton                  4 (0.9%)
Dolph Mathews                4 (0.9%)
Christophe Sauthier          3 (0.7%)
Covers 80.459770% of changesets

Developers with the most changed lines
daisy-ycguo               37578 (39.9%)
Diane Fleming             19381 (20.6%)
annegentle                7624 (8.1%)
Tom Fifield               3126 (3.3%)
Lorin Hochstein           2757 (2.9%)
John Griffith             2390 (2.5%)
gongysh                   2169 (2.3%)
zhangchao010              2036 (2.2%)
Mate Lakat                1927 (2.0%)
Emilien Macchi            1684 (1.8%)
Navneet Singh              970 (1.0%)
Alvaro Lopez Garcia        647 (0.7%)
Brian Rosmaita             580 (0.6%)
dcramer                    554 (0.6%)
Dan Wendlandt              472 (0.5%)
atul jha                   431 (0.5%)
EmilienM                   428 (0.5%)
Joe Topjian                411 (0.4%)
Eric Windisch              376 (0.4%)
Ed Kern                    341 (0.4%)</pre>
<p>At the OpenStack Summit last week I started looking for data that will help us shape the scope for the documentation for the coming release. With the right scope, we can keep up with code. Right now the docs scope that DOES release with code is docs for Python developers only, at docs.openstack.org/developers. However it seems people want install docs more than anything around release time. We will release the docs next week, 4/30/13, and have basic install docs in review now. We’ll need to keep track of doc bugs once we release of course. What we want to do in addition to decreasing scope is to increase resources, so we are working with member companies to create and fill upstream OpenStack documentation positions at each member company. Other creative ideas are welcome of course. I find this creative resourcing fascinating and I’m not about to whine about keeping up. Rather, I want to keep rising to the challenge.</p></div>
    </content>
    <updated>2013-04-26T12:49:19Z</updated>
    <category term="techpubs"/>
    <category term="tools"/>
    <category term="writing"/>
    <category term="openstack"/>
    <author>
      <name>annegentle</name>
    </author>
    <source>
      <id>http://justwriteclick.com</id>
      <link href="http://justwriteclick.com/tag/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://justwriteclick.com" rel="alternate" type="text/html"/>
      <subtitle>Documentation as conversation</subtitle>
      <title>Just Write Click » openstack</title>
      <updated>2013-05-22T13:50:32Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4132</id>
    <link href="http://www.openstack.org/blog/2013/04/openstack-community-weekly-newsletter-apr-12-25/" rel="alternate" type="text/html"/>
    <title>OpenStack Community Weekly Newsletter (Apr 12 – 25)</title>
    <summary>Special post-Summit issue OpenStack Design Summit Havana, from a Ceilometer point of view by Julien Danjou Havana Design Summit: Swift API Discussions by SwiftStack Team OpenStack Summit Portland Aftermath by Kyle Mestery OpenStack Developer Summit: Heat Followup by Duncan McGreggor Havana! By OpenStack Security Blog Portland OpenStack Summit by John Bresnahan Dan’s Partial Summary of [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h2>Special post-Summit issue</h2>
<ul>
<li><a href="http://julien.danjou.info/blog/2013/openstack-summit-havana-ceilometer">OpenStack Design Summit Havana, from a Ceilometer point of view</a> by <a href="http://julien.danjou.info/blog/">Julien Danjou</a></li>
<li><a href="http://swiftstack.com/blog/2013/04/24/openstack-summit-api-discussion/">Havana Design Summit: Swift API Discussions</a> by <a href="http://swiftstack.com/">SwiftStack Team</a></li>
<li><a href="http://www.siliconloons.com/?p=448">OpenStack Summit Portland Aftermath</a> by <a href="http://www.siliconloons.com/">Kyle Mestery</a></li>
<li><a href="http://technicae.cogitat.io/2013/04/openstack-developer-summit-heat-followup.html">OpenStack Developer Summit: Heat Followup</a> by <a href="http://technicae.cogitat.io/search/label/openstack">Duncan McGreggor</a></li>
<li><a href="http://secstack.org/2013/04/havana/">Havana!</a> By <a href="http://secstack.org/">OpenStack Security Blog</a></li>
<li><a href="https://tropicaldevel.wordpress.com/2013/04/22/portland-openstack-summit/">Portland OpenStack Summit</a> by <a href="https://tropicaldevel.wordpress.com/">John Bresnahan</a></li>
<li><a href="http://www.danplanet.com/blog/2013/04/22/dans-partial-summary-of-the-nova-track/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dans-partial-summary-of-the-nova-track">Dan’s Partial Summary of the Nova Track</a> by <a href="http://www.danplanet.com/blog">Dan Smith</a></li>
<li><a href="http://fewbar.com/2013/04/the-rocket-ship-to-havana-openstack-summit-spring-2013/">The Rocket Ship to Havana – OpenStack Summit Spring 2013</a> by <a href="http://fewbar.com/">Clint Byrum</a></li>
<li><a href="http://www.openstack.org/blog/2013/04/women-of-openstack-at-the-portland-summit/">Women of OpenStack at the Portland Summit</a> by <a href="http://www.openstack.org/blog">Anne Gentle</a></li>
<li><a href="http://www.stillhq.com/openstack/havana/000002.html">Michael’s surprisingly unreliable predictions for the Havana Nova release</a> by <a href="http://www.stillhq.com/">Michael Still</a></li>
<li><a href="http://swiftstack.com/blog/2013/04/17/openstack-summit-extending-swift-acls-and-metadata/">Havana Design Summit: Extending ACLs and Metadata</a> by <a href="http://swiftstack.com/">SwiftStack Team</a></li>
<li><a href="http://www.enovance.com/fr/blog/5567/openstack-havana-design-summit-in-portland-day-3">Design Summit in Portland</a>: <a href="http://www.enovance.com/fr/blog/5534/openstack-havana-design-summit-in-portland-day-1">Day 1</a>,<a href="http://www.enovance.com/fr/blog/5550/openstack-havana-design-summit-in-portland-day-2">Day 2</a>, <a href="http://www.enovance.com/fr/blog/5567/openstack-havana-design-summit-in-portland-day-3">Day 3</a>, <a href="http://www.enovance.com/fr/blog/5594/openstack-havana-design-summit-in-portland-day-4"> Day 4</a> by <a href="http://www.enovance.com/">eNovance</a></li>
<li><a href="http://swiftstack.com/blog/2013/04/15/openstack-summit-talks-swift-extensions/">Havana Design Summit: Swift Extensions Talk</a> by <a href="http://swiftstack.com/">SwiftStack Team</a></li>
<li><a href="http://swiftstack.com/blog/2013/04/15/openstack-summit-extending-swift-acls-and-metadata/">Havana Design Summit: Extending ACLs and Metadata</a> by <a href="http://swiftstack.com/">SwiftStack Team</a></li>
<li><a href="http://princessleia.com/journal/?p=7943">OpenStack Design Summit </a><a href="http://princessleia.com/journal/?p=7930">days 1-2</a>, <a href="http://princessleia.com/journal/?p=7943">days 3-4</a> by <a href="http://princessleia.com/journal">Elizabeth Krumbach</a></li>
<li><a href="http://robhirschfeld.com/2013/04/22/stack-shop-macklemore-thrift-shop/">“Stack Shop” cover of Macklemore’s Thrift Shop</a> by <a href="http://rob/">Rob</a><a href="http://robhirschfeld.com/2013/04/22/stack-shop-macklemore-thrift-shop/"> Hirschfeld</a> and others</li>
<li><a href="http://anystacker.com/2013/04/the-making-of-cloud-of-usb-sticks/">The Making of Cloud of USB Sticks</a> by eglute</li>
</ul>
<h3><a href="http://www.rhonabwy.com/wp/2013/04/19/openstack-docs-and-tooling-in-20-minutes/">OpenStack docs and tooling in 20 minutes</a></h3>
<p>Howto get started with all the tooling and setup needed to build, review, and contribute to OpenStack Documentation. By <a href="http://www.rhonabwy.com/wp">Joe Heck</a>.</p>
<h4><a href="http://justwriteclick.com/2013/04/14/how-its-made-the-openstack-api-reference-page/">How It’s Made: the OpenStack API Reference Page</a></h4>
<p>The site at <a href="http://api.openstack.org/" target="_blank">http://api.openstack.org</a> is a collection of HTML pages, and one page has an especially interesting story about how it is built. <a href="http://justwriteclick.com/">Anne Gentle</a> reveals the secret.</p>
<h3><a href="https://tropicaldevel.wordpress.com/2013/04/24/storage-transfer/">Storage != Transfer</a></h3>
<p>John Bresnahan argues that concepts of data transfer and data storage should not be conflated into a single solution.  He believes that OpenStack can benefit from a new component that offloads the burden of optimally transferring images from existing components like nova-compute and swift.</p>
<h2>Report from Previous Events</h2>
<ul>
<li><a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/">3rd Swiss OpenStack User Group Meetup</a></li>
</ul>
<h2>Tips and Tricks</h2>
<ul>
<li>By <a href="http://sebastien-han.fr/">Sébastien Han</a>: <a href="http://sebastien-han.fr/blog/2013/04/25/ceph-and-cinder-multi-backend/">Ceph and Cinder multi-backend</a></li>
<li>By <a href="http://blog.chmouel.com/">Chmouel Boudjnah</a> :: <a href="http://blog.chmouel.com/2013/04/22/howto-revoke-a-token-with-keystone-and-pki-v2-0-api/">Howto revoke a token with keystone and PKI (v2.0 API)</a></li>
<li>By <a href="http://adam.younglogic.com/2013/04/database-tests-keystone/">Running PostgreSQL and Mysql Unit tests in Keystone</a></li>
<li>By <a href="http://swiftstack.com/">SwiftStack Team</a>: <a href="http://swiftstack.com/blog/2013/04/18/openstack-summit-benchmarking-swift/">Havana Design Summit: Benchmarking Swift</a></li>
<li>By <a href="http://www.giuliofidente.com/">Giulio Fidente</a>: <a href="http://www.giuliofidente.com/2013/04/deploy-openstack-heat-on-rhel-and-derivates.html">Deploy OpenStack Heat on RHEL (and derivates)</a></li>
</ul>
<h2>Upcoming Events</h2>
<ul>
<li><a href="http://www.meetup.com/OpenStack-DACH/events/108876542/" target="_blank">OpenStack meeting in Cologne</a> May 04, 2013 – Cologne, Germany <a href="http://www.meetup.com/OpenStack-DACH/events/108876542/" target="_blank">Details</a></li>
<li><a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">OpenStack DACH Day</a> May 24, 2013 – Berlin Fairgrounds <a href="http://www.prweb.com/releases/2013/3/prweb10526716.htm" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/IGTCloud/events/99146542/" target="_blank">OpenStack Israel</a> May 27, 2013 – Tel-Aviv, Israel <a href="http://www.openstack-israel.org/" target="_blank">Details</a></li>
<li><a href="http://www.openstack.org/" target="_blank">OpenStack CEE Day</a> May 29, 2013 – Budapest <a href="http://www.openstack.org/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Building an OpenStack Cloud</a> May 30, 2013 – Chicago, IL <a href="http://www.meetup.com/meetup-group-NjZdcegA/events/108731562/" target="_blank">Details</a></li>
<li><a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">OpenStack meeting in Munich</a> Jun 11, 2013 – Munich, Germany <a href="http://www.meetup.com/openstack-de/events/109700562/" target="_blank">Details</a></li>
<li><a href="http://event.gigaom.com/structure/" target="_blank">GigaOM Structure</a> Jun 19 – 20, 2013 – San Francisco, CA <a href="http://event.gigaom.com/structure/" target="_blank">Details</a></li>
<li><a href="http://www.oscon.com/oscon2013" target="_blank">OSCON 2013</a> Jul 22 – 26, 2013 – Portland, OR <a href="http://www.oscon.com/oscon2013" target="_blank">Details</a></li>
</ul>
<h2>Other News</h2>
<ul>
<li><a href="http://www.mirantis.com/blog/openstack-project-technical-lead-interview-series-1-mark-mcclain-openstack-networking-project/" target="_blank">OpenStack Project Technical Lead Interview Series #1: Mark McClain, OpenStack Networking Project </a></li>
<li><a href="http://robhirschfeld.com/2013/04/24/crowbar-slipped-and-shipped-grizzly/">Crowbar and our Pivot (or, how we slipped and shipped Grizzly)</a></li>
<li><a href="http://www.mirantis.com/blog/project-savanna-moves-ahead-red-hat-and-hortonworks-commit-to-work-on-hadoop-as-a-service-on-openstack/">Project Savanna Moves Ahead: Red Hat and Hortonworks are on board</a></li>
<li>OpenStack Project Meeting: <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-04-23-21.02.html">Summary</a> and <a href="http://eavesdrop.openstack.org/meetings/project/2013/project.2013-04-23-21.02.log.html">full logs</a></li>
</ul>
<h2>Welcome New Developers</h2>
<ul>
<li>Tilottama Gaat, Rackspace</li>
<li>Zang MingJie, None</li>
<li>Jason Dunsmore, Rackspace</li>
<li>James Slagle, None</li>
</ul>
<h2>Got answers?</h2>
<p><a href="https://ask.openstack.org/">Ask OpenStack</a> is the go-to destination for OpenStack users. Interesting questions waiting for answers:</p>
<ul>
<li><a href="https://ask.openstack.org/question/524/why-is-the-quantum-linuxbridge-plugin-getting-sudo-errors/">Why is the quantum linuxbridge plugin getting sudo errors?</a></li>
<li><a href="https://ask.openstack.org/question/82/how-to-do-automated-deployment-of-a-new-node/">How to do automated deployment of a new node?</a></li>
<li><a href="https://ask.openstack.org/question/220/is-it-safe-to-use-wmi-python-library-to-manage-hyperv-driver-from-a-linux-host/">Is it safe to use WMI python library to manage HyperV driver from a Linux host?</a></li>
<li><a href="https://ask.openstack.org/question/225/why-do-i-see-unable-to-find-authentication-token-in-headers-using-swift-with-staticweb/">Why do I see “Unable to find authentication token in headers” using swift with staticweb?</a></li>
<li><a href="https://ask.openstack.org/question/183/whats-causing-permission-error-with-vmware-vcenteresx-410-on-grizzly/">What’s causing permission error with Vmware Vcenter/ESX 4.1.0 on Grizzly?</a></li>
<li><a href="https://ask.openstack.org/question/524/why-is-the-quantum-linuxbridge-plugin-getting-sudo-errors/">Why is the quantum linuxbridge plugin getting sudo errors?</a></li>
</ul>
<p><em>The weekly newsletter is a way for the community to learn about all the various activities occurring on a weekly basis. If you would like to add content to a weekly update or have an idea about this newsletter, please leave a comment.</em></p></div>
    </content>
    <updated>2013-04-26T12:00:43Z</updated>
    <category term="Communication"/>
    <category term="community"/>
    <category term="Newsletter"/>
    <category term="development"/>
    <category term="Weekly"/>
    <author>
      <name>Stefano Maffulli</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.stillhq.com/openstack/havana/000003.html</id>
    <link href="http://www.stillhq.com/openstack/havana/000003.html" rel="alternate" type="text/html"/>
    <title>Merged in Havana: fixed ip listing for single hosts</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Nova has supported listing the fixed ips for a single host for a while. Well, except for that time we broke it by removing the database call it used and not noticing. My change to fix that situation has just landed, so this should now work again. To list the fixed ips used on a host, do something like:

<br/><br/>

<ul>&lt;pr&gt;
nova-manage fixed list hostname
</ul>

<br/><br/>

I will propose a backport to grizzly for this now.

<br/><br/><i>Tags for this post: <a href="http://www.stillhq.com/tags/openstack.html">openstack</a> <a href="http://www.stillhq.com/tags/havana.html">havana</a> <a href="http://www.stillhq.com/tags/fixed_ip.html">fixed_ip</a> <a href="http://www.stillhq.com/tags/nova.html">nova</a> <a href="http://www.stillhq.com/tags/rackspace.html">rackspace</a></i><br/><i>Related posts: <a href="http://www.stillhq.com/openstack/000013.html">Upgrade problems with the new Fixed IP quota</a>; <a href="http://www.stillhq.com/openstack/havana/000001.html">Merged in Havana: configurable iptables drop actions in nova</a>; <a href="http://www.stillhq.com/openstack/havana/000002.html">Michael's surprisingly unreliable predictions for the Havana Nova release</a>; <a href="http://www.stillhq.com/openstack/000012.html">Havana Nova PTL elections</a>; <a href="http://www.stillhq.com/openstack/tips/000001.html">Faster pip installs</a>; <a href="http://www.stillhq.com/openstack/000009.html">Some quick operational notes for users of loop and nbd devices</a>; <a href="http://www.stillhq.com/openstack/000002.html">Further adventures with base images in OpenStack</a>; <a href="http://www.stillhq.com/openstack/000011.html">OpenStack at linux.conf.au 2013</a>; <a href="http://www.stillhq.com/openstack/000008.html">Moving on</a>; <a href="http://www.stillhq.com/openstack/000010.html">Image handlers (in essex)</a>; <a href="http://www.stillhq.com/openstack/000001.html">Openstack compute node cleanup</a></i>

<br/><br/>
<a href="http://www.stillhq.com/openstack/havana/000003.commentform.html">Comment</a></div>
    </summary>
    <updated>2013-04-26T08:56:00Z</updated>
    <source>
      <id>http://www.stillhq.com</id>
      <author>
        <name>Michael Still</name>
      </author>
      <link href="http://www.stillhq.com" rel="alternate" type="text/html"/>
      <link href="http://www.stillhq.com/openstack/index.rss" rel="self" type="application/rss+xml"/>
      <subtitle>The life, times, travel and software of Michael Still</subtitle>
      <title>stillhq.com : Mikal, a geek from Canberra living in Silicon Valley</title>
      <updated>2013-05-22T08:10:48Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://tropicaldevel.wordpress.com/?p=333</id>
    <link href="https://tropicaldevel.wordpress.com/2013/04/25/a-picture-can-beat-1000-dead-horses/" rel="alternate" type="text/html"/>
    <title>A Picture Can Beat 1000 Dead Horses</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Unless this is your first time reading my blog, you are probably aware that I am beginning to become obsessed with the idea of a data transfer service.  In this post I continue the topic from my previous post by introducing a couple of diagrams. A diagram of a possible swift deployment is on the […]<img alt="" border="0" height="1" src="https://stats.wordpress.com/b.gif?host=tropicaldevel.wordpress.com&amp;blog=40736101&amp;post=333&amp;subd=tropicaldevel&amp;ref=&amp;feed=1" width="1"/></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Unless this is your first time reading my blog, you are probably aware that I am beginning to become obsessed with the idea of a data transfer service.  In this post I continue the topic from my <a href="http://tropicaldevel.wordpress.com/2013/04/24/storage-transfer/" title="Storage !=&#xA0;Transfer">previous post</a> by introducing a couple of diagrams.</p>
<p><a href="http://tropicaldevel.files.wordpress.com/2013/04/the_wild_west.png"><img alt="the_wild_west" class="alignnone size-medium wp-image-334" height="232" src="http://tropicaldevel.files.wordpress.com/2013/04/the_wild_west.png?w=550&amp;h=232" width="550"/></a></p>
<p>A diagram of a possible swift deployment is on the right side.  On the left is a client to that service.  The swift deployment is very well managed, redundant and highly available.  The client speaks to the swift via a well defined REST API and using supported client side software to interpret the protocol.  However, between the server side network protocol interpreter and the client side network protocol interpreter is the wild west.</p>
<p>The wild west is completely unprotected and unmanaged. Many things can occur that cause a lost, slow, or disruptive transfer.  For example</p>
<ul>
<li>Dropped connections</li>
<li>Congestion events</li>
<li>Network partitions</li>
</ul>
<p>Such problems make data transfer expensive.  Ideally there would be a service to oversee the transfer.  Transfer could be check-pointed as they progress so that if a connection is dropped it could be restarted with minimal loss.  Also it could try to maximize the efficiency of the pathway between the source and the destination by tuning the protocols in use (like setting a good value for the TCP window), or using multicast protocols where appropriate (like bittorrent), or scheduling transfers so as to not shoot itself in the foot.</p>
<p>A safer architecture would look like this:</p>
<p><a href="http://tropicaldevel.files.wordpress.com/2013/04/tamed_west.png"><img alt="tamed_west" class="alignnone size-medium wp-image-335" height="265" src="http://tropicaldevel.files.wordpress.com/2013/04/tamed_west.png?w=550&amp;h=265" width="550"/></a></p>
<p>The transfer service is now in a position to manage the transfer thus it allows for the following:</p>
<ul>
<li>A <em>fire and forget</em> asynchronous transfer request from the client.</li>
<li>Baby sit and checkpoint the transfer.  If it fails restart it from the last checkpoint.</li>
<li>Schedule transfer for optimal times.</li>
<li>Prioritize transfers and their use of the network.</li>
<li>Coalesce transfer requests and schedule appropriately and into multicast sessions.</li>
<li>Negotiate the best possible protocol between the two endpoints.</li>
<li>Verify that the data successfully is written to the destination storage system and verify its integrity.</li>
</ul>
<br/>  <a href="http://feeds.wordpress.com/1.0/gocomments/tropicaldevel.wordpress.com/333/" rel="nofollow"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tropicaldevel.wordpress.com/333/"/></a> <img alt="" border="0" height="1" src="https://stats.wordpress.com/b.gif?host=tropicaldevel.wordpress.com&amp;blog=40736101&amp;post=333&amp;subd=tropicaldevel&amp;ref=&amp;feed=1" width="1"/></div>
    </content>
    <updated>2013-04-25T23:58:37Z</updated>
    <category term="OpenStack"/>
    <author>
      <name>John Bresnahan, Red Hat</name>
    </author>
    <source>
      <id>https://tropicaldevel.wordpress.com</id>
      <logo>https://s2.wp.com/i/buttonw-com.png</logo>
      <link href="https://tropicaldevel.wordpress.com/category/openstack/feed/" rel="self" type="application/atom+xml"/>
      <link href="https://tropicaldevel.wordpress.com" rel="alternate" type="text/html"/>
      <link href="https://tropicaldevel.wordpress.com/osd.xml" rel="search" type="application/opensearchdescription+xml"/>
      <link href="https://tropicaldevel.wordpress.com/?pushpress=hub" rel="hub" type="text/html"/>
      <subtitle>Bits of code from the pacific</subtitle>
      <title>Tropical Devel » OpenStack</title>
      <updated>2013-05-17T08:22:00Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://blog.flaper87.org/post/5179b4d50f06d35e2e15ad1f/</id>
    <link href="http://blog.flaper87.org/post/5179b4d50f06d35e2e15ad1f/" rel="alternate" type="text/html"/>
    <title>glance-gridfs-store</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Recently, <a href="http://docs.mongodb.org/manual/core/gridfs/">GridFS</a> support has been added to Glance, which means, it is now possible to store images inside GridFS. For those of you that don't know what GridFS is, it is a convention for storing files inside MongoDB.</p>

<h1>About the implementation</h1>

<p>The implementation was pretty much straight-forward. It implements all the required methods and it just needed few lines of code. Some cool things about this store is that GridFS already had most (or all of them) things needed: md5, length, clean API. No rocket science!</p>

<h1>Some Benefits</h1>

<ul>
<li>It's fast</li>
<li>It's distributed</li>
<li>Can be mounted (using gridfs-fuse)</li>
<li>Can be shared with other environments and / or applications</li>
<li>Fits perfectly in deployments where mongodb already exists.</li>
<li>Reads from secondaries when using replica sets.</li>
<li>Sharding support.</li>
</ul>

<h1>Random Thoughts</h1>

<p>1) Even though Glance uses gridfs mostly as a bucket to store images, it can still be extended - either changing the store code or from outside it -  with other features like tracking accesses to images, for example.</p>

<p>2) When using replica sets, an interesting deployment could be to have a replica, where Glance can read from, in every glance-api node. This would speed reads but it would definitely use more space.</p>

<p>3) When using shards, would it be possible to have glance-api running on the shard nodes and "shard" glance requests as well? (sounds like a crazy idea)</p>

<p>I don't expect this store to be widely used but I do find interesting how MongoDB fits well in so many environments and such different use cases.</p></div>
    </content>
    <updated>2013-04-25T22:57:25Z</updated>
    <published>2013-04-25T22:57:25Z</published>
    <author>
      <name>FlaPer87</name>
    </author>
    <source>
      <id>http://blog.flaper87.org/feeds/latest/tag/openstack/</id>
      <link href="http://blog.flaper87.org/" rel="alternate" type="text/html"/>
      <link href="http://blog.flaper87.org/feeds/latest/tag/openstack/" rel="self" type="application/atom+xml"/>
      <title>Recent Articles for tag openstack</title>
      <updated>2013-04-28T22:21:22Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-US">
    <id>http://www.openstack.org/blog/?p=4113</id>
    <link href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/" rel="alternate" type="text/html"/>
    <title>3rd Swiss OpenStack User Group Meetup</title>
    <summary>Following on from our 2nd meeting, the Swiss OpenStack user group met on 24th of April at the University of Bern.It was an excellent event with many attention grabbing presentations! A big thanks goes out to the sponsors:   Red Hat: for extra tasty on-demand pizza as a service SwiNG: for a great selection of [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/chosug.png"><br/>
<img alt="chosug" class="alignleft" height="74" src="http://www.cloudcomp.ch/wp-content/uploads/2013/04/chosug.png" width="70"/></a>Following on from our <a href="http://www.cloudcomp.ch/2013/02/2nd-swiss-openstack-user-group-meeting/">2nd meeting</a>, the <a href="http://www.meetup.com/openstack-ch/events/112066462/">Swiss OpenStack user group met on 24th of April</a> at the University of Bern.It was an excellent event with many attention grabbing presentations! A big thanks goes out to the sponsors:</p>
<p> </p>
<ul>
<li><a href="http://ch.redhat.com/">Red Hat</a>: for extra tasty on-demand pizza as a service</li>
<li><a href="http://www.swing-grid.ch">SwiNG</a>: for a great selection of beverages</li>
<li><a href="http://www.unibe.ch/eng/">University of Bern</a>: for the facilities</li>
</ul>
<p>Once <a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/CHOSUG-Opening-Slides.pdf">we kicked off</a>, there were five presentations, 3 which were more detailed and 2 that were more lightning talks in nature. The presentations in there running order were:</p>
<ul>
<li><a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/OpenStack-Quantum-SDN-with-Open-vSwitch.pdf">OpenStack Quantum SDN with Open vSwitch</a>, <a href="http://ch.redhat.com">Redhat</a>, Thomas Graf.</li>
<li><a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/OpenStack-on-SmartOS-3rd-CHOSUG.pptx">OpenStack on SmartOS</a>, <a href="http://www.cloudcomp.ch">ICCLab</a>, Daniele Stroppa.</li>
<li><a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/Packstack.pdf">Packstack</a>, <a href="http://www.systemsx.ch/">Systemx</a>, Sandro Mathys</li>
<li><a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/OpenStack-in-Hepia.pdf">OpenStack in Hepia</a>, <a href="http://www.hes-so.ch/en/homepage-hes-so-1679.html">University of Applied Sciences Western Switzerland</a>, Dimitri Racordon</li>
<li><a href="http://www.cloudcomp.ch/wp-content/uploads/2013/04/bern-3rd-ug-meetup-muharem.pdf">Impressions from the Summit in Portland</a>, <a href="http://www.rackspace.com">Rackspace</a>, Muharem Hrnjadovic</li>
</ul>

<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-02-29/" title="Screen Shot 2013-04-25 at 17.02.29"><img alt="Screen Shot 2013-04-25 at 17.02.29" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.02.29-150x150.png" width="150"/></a>
<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-02-47/" title="Screen Shot 2013-04-25 at 17.02.47"><img alt="Screen Shot 2013-04-25 at 17.02.47" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.02.47-150x150.png" width="150"/></a>
<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-02-59/" title="Screen Shot 2013-04-25 at 17.02.59"><img alt="Screen Shot 2013-04-25 at 17.02.59" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.02.59-150x150.png" width="150"/></a>
<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-03-16/" title="Screen Shot 2013-04-25 at 17.03.16"><img alt="Screen Shot 2013-04-25 at 17.03.16" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.03.16-150x150.png" width="150"/></a>
<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-03-27/" title="Screen Shot 2013-04-25 at 17.03.27"><img alt="Screen Shot 2013-04-25 at 17.03.27" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.03.27-150x150.png" width="150"/></a>
<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-03-41/" title="Screen Shot 2013-04-25 at 17.03.41"><img alt="Screen Shot 2013-04-25 at 17.03.41" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.03.41-150x150.png" width="150"/></a>
<a href="http://www.openstack.org/blog/2013/04/3rd-swiss-openstack-user-group-meet-up/screen-shot-2013-04-25-at-17-03-55/" title="Screen Shot 2013-04-25 at 17.03.55"><img alt="Screen Shot 2013-04-25 at 17.03.55" class="attachment-thumbnail" height="150" src="http://www.openstack.org/blog/wp-content/uploads/2013/04/Screen-Shot-2013-04-25-at-17.03.55-150x150.png" width="150"/></a>

<p><span style="font-size: 2em;">Upcoming</span></p>
<p>There are other upcoming Swiss events that will include much talk of OpenStack. Of note are:</p>
<ul>
<li><a href="http://www.amiando.com/AcademicCloud.html">Academic Cloud Computing Experience</a>, April 29th.</li>
<li><a href="http://wiki.linuxtag.org/w/vp:OpenStack_DACH_Tag_2013">OpenStack DACH at LinuxTag</a>, 24th May.</li>
<li><a href="https://www.ch-open.ch/events/aktuelle-events/open-cloud-day-2013/">Swiss Open Systems User Group, Open Cloud Day 2013</a>, June 11th.</li>
</ul>
<p>Also the Swiss Informatics Society have started a cloud computing special interest group, where all folk active in cloud are welcomed to join. <a href="http://www.s-i.ch/fachgruppen-und-sektionen/cloud-computing/">More details can be found at their site</a>.</p>
<h3>Swiss OpenStack User Group Channels</h3>
<ul>
<li><a href="http://www.cloudcomp.ch/the-icclab-community/openstack-user-group/">General Info</a></li>
<li><a href="http://www.openstack.ch">Meetup site</a></li>
<li><a href="https://wiki.systemsx.ch/display/chosug/Swiss+Openstack+Usergroup+Wiki">CHOSUG Wiki</a></li>
<li><a href="http://www.linkedin.com/groups/OpenStack-Switzerland-4493120/about">LinkedIn</a></li>
<li><a href="https://sympa.systemsx.ch/sympa/subscribe/swiss-openstack-usergroup">Mailing List</a></li>
<li><a href="http://twitter.com/OpenStackCH">Twitter @OpenStackCH</a></li>
</ul>
<p><a href="http://www.cloudcomp.ch/2013/04/3rd-swiss-openstack-user-group-meetup/"><em> Original post: ICCLab</em></a></p></div>
    </content>
    <updated>2013-04-25T19:11:57Z</updated>
    <category term="community"/>
    <category term="Meetup"/>
    <category term="icclab"/>
    <category term="meetup"/>
    <category term="OpenStack"/>
    <category term="openvswitch"/>
    <category term="packstack"/>
    <category term="redhat"/>
    <category term="smartos"/>
    <category term="swing"/>
    <author>
      <name>dizz</name>
    </author>
    <source>
      <id>http://www.openstack.org/blog</id>
      <link href="http://www.openstack.org/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.openstack.org/blog" rel="alternate" type="text/html"/>
      <subtitle>Open Source Cloud Computing Software</subtitle>
      <title>The OpenStack Blog</title>
      <updated>2013-05-17T21:55:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://julien.danjou.info/blog/2013/openstack-summit-havana-ceilometer</id>
    <link href="http://julien.danjou.info/blog/2013/openstack-summit-havana-ceilometer" rel="alternate" type="text/html"/>
    <title>OpenStack Design Summit Havana, from a Ceilometer point of view</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last week was the
<a href="https://www.openstack.org/summit/portland-2013/">OpenStack Design Summit</a>
in Portland, OR where we, developers, discussed and designed the new
OpenStack release (Havana) coming up.</p>
<p><img class="illustration" src="http://julien.danjou.info/media/images/blog/2013/ods_havana_banner.jpg"/></p>
<p>The summit has been wonderful. It was my first OpenStack design summit --
even more as a PTL -- and bumping into various people I've never met so far
and worked with online only was a real pleasure!</p>
&lt;figure&gt;
<img class="illustration shadow" src="http://julien.danjou.info/media/images/blog/2013/ods_havana_ceilometer_nijaba_jd_talk.jpg" width="500"/>
&lt;figcaption&gt;Me and Nick ready to talk about Ceilometer new features.&lt;/figcaption&gt;
&lt;/figure&gt;

<p><a href="http://nicolas.barcet.com/">Nick Barcet</a> from
<a href="http://www.enovance.com">eNovance</a>, our dear previous Ceilometer PTL, and
myself, talked about Ceilometer and presented the work that bas been done
for Grizzly, with some previews of what we'll like to see done for its
Havana release. You can take a look at
<a href="http://julien.danjou.info/media/Ceilometer%20presentation%20ODS%20Havana.pdf">the slides</a>
if you're curious.</p>
<h1>Design sessions</h1>
<p>Ceilometer had his design sessions during the last days of the summit. We
noted a lot of things and commented during the sessions in our
<a href="https://wiki.openstack.org/wiki/Summit/Havana/Etherpads#Ceilometer">Etherpads instances</a>.</p>
<p>The first session was a description of Ceilometer core architecture for
interested people, and was a wonderful success considering that the room was
packed. Our <a href="http://doughellmann.com/">Doug Hellmann</a> did a wonderful job
introducing people to Ceilometer and answering question.</p>
&lt;figure&gt;
<img class="illustration shadow" src="http://julien.danjou.info/media/images/blog/2013/ods_havana_ceilometer_dhellmann.jpg" width="500"/>
&lt;figcaption&gt;Doug explaining Ceilometer architecture.&lt;/figcaption&gt;
&lt;/figure&gt;

<p>The next session was about getting feedbacks from our users. We had a lot of
surprise to discover wonderful real use-cases and deployments, like the CERN
using Ceilometer and generating 2 GB of data per day!</p>
<p>The following sessions ran on Thursday and were much more about new features
discussion. A lot ot already existing blueprints were discussed and quickly
validated during the first morning session. Then,
<a href="http://www.sandywalsh.com/">Sandy Walsh</a> introduced the architecture they
use inside <a href="https://github.com/rackerlabs/stacktach">StackTach</a>, so we can
start thinking about getting things from it into Ceilometer.</p>
<p>API improvements were discussed without surprises and with a good consensus
on what needs to be done. The four following sessions that occupied a lot of
the days were related to alarming. All were lead by Eoghan Glynn, from
<a href="http://redhat.com">RedHat</a>, who did an amazing job presenting the possible
architectures with theirs pros and cons. Actually, all we had to do was to
nod to his designs and acknowledge the plan on how to build this.</p>
<p>That last two sessions were about discussing advanced models for billing
where we got some interesting feedback from Daniel Dyer from HP, and then
were a quick follow-up of the StackTach presentation from the morning
session.</p>
<h1>Havana roadmap</h1>
<p>The
<a href="https://blueprints.launchpad.net/ceilometer/havana">list of blueprints targetting Havana is available</a>
and should be finished by next week. If you want to propose blueprints,
you're free to do so and inform us about it so we can validate it. The same
applies if you wish to implement one of them!</p>
<h2>API extension</h2>
<p>I do think the API version 2 is going to be heavily extended during this
release cycle. We need more feature, like the
<a href="https://blueprints.launchpad.net/ceilometer/+spec/api-group-by">group-by</a>
functionnality.</p>
<h2>Healthnmon</h2>
<p>In parallel of the design sessions, discussions took place in the
unconference room with the Healthnmon developers to figure out a plan in
order to merge some of their efforts into Ceilometer. They should provide a
component to help Ceilometer supports more hypervisors than it currently
does.</p>
<h2>Alarming</h2>
<p>Alarming is definitely going to be the next big project for Ceilometer.
Today, Eoghan and I started building blueprints on alarming,
<a href="https://blueprints.launchpad.net/ceilometer/+spec/alarming">centralized in a general blueprint</a>.</p>
<p>We know this is going to happen for real and very soon, thanks to the
engagements of <a href="http://enovance.com">eNovance</a> and
<a href="http://redhat.com">RedHat</a> who are commiting resources to this amazing
project!</p></div>
    </content>
    <updated>2013-04-25T14:49:45Z</updated>
    <published>2013-04-25T14:49:45Z</published>
    <category label="Openstack" scheme="/blog/tags" term="openstack"/>
    <category label="Ceilometer" scheme="/blog/tags" term="ceilometer"/>
    <author>
      <name>Julien Danjou</name>
    </author>
    <source>
      <id>http://julien.danjou.info/blog/tags/openstack.xml</id>
      <link href="http://julien.danjou.info/blog/tags/openstack.xml" rel="self" type="application/atom+xml"/>
      <link href="http://julien.danjou.info/blog/" rel="alternate" type="text/html"/>
      <title>jd:/dev/blog</title>
      <updated>2013-05-22T14:45:07Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://sebastien-han.fr/blog/2013/04/25/ceph-and-cinder-multi-backend</id>
    <link href="http://sebastien-han.fr/blog/2013/04/25/ceph-and-cinder-multi-backend/" rel="alternate" type="text/html"/>
    <title>Ceph and Cinder multi-backend</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img class="center" src="http://sebastien-han.fr/images/ceph-cinder-multi-backed.jpg"/></p>

<p>Grizzly brought the multi-backend functionality to cinder and tons of new drivers. The main purpose of this article is to demonstrate how we can take advantage of the tiering capability of Ceph.</p>




<h1>I. Ceph</h1>

<p>To configure Ceph to use different storage devices see my previous article: <a href="http://www.sebastien-han.fr/blog/2012/12/07/ceph-2-speed-storage-with-crush/">Ceph 2 speed storage with CRUSH</a>.</p>

<br/>


<h1>II. Cinder</h1>

<p>Assuming your 2 pools are called:</p>

<ul>
<li>rbd-sata points to the SATA rack</li>
<li>rbd-ssd points to the SSD rack</li>
</ul>


<h2>II.1 Configuration</h2>

<p>Cinder configuration file:</p>

<pre><code># Multi backend options

# Define the names of the groups for multiple volume backends
enabled_backends=rbd-sata,rbd-ssd

# Define the groups as above
[rbd-sata]
volume_driver=cinder.volume.driver.RBDDriver
rbd_pool=cinder-sata
volume_backend_name=RBD_SATA
# if cephX is enable
#rbd_user=cinder
#rbd_secret_uuid=&lt;None&gt;
[rbd-ssd]
volume_driver=cinder.volume.driver.RBDDriver
rbd_pool=cinder-ssd
volume_backend_name=RBD_SSD
# if cephX is enable
#rbd_user=cinder
#rbd_secret_uuid=&lt;None&gt;
</code></pre>

<p>Unfortunately the rbd driver doesn’t support this variable yet. This feature has been submitted here: <a href="https://review.openstack.org/#/c/27535/">https://review.openstack.org/#/c/27535/</a>.</p>

<p>Then create the pointers:</p>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>cinder <span class="nb">type</span>-key ssd <span class="nb">set </span><span class="nv">volume_backend_name</span><span class="o">=</span>RBD_SSD
</span><span class="line"><span class="nv">$ </span>cinder <span class="nb">type</span>-key sata <span class="nb">set </span><span class="nv">volume_backend_name</span><span class="o">=</span>RBD_SATA
</span><span class="line"><span class="nv">$ </span>cinder extra-specs-list
</span><span class="line">+--------------------------------------+------+---------------------------------------+
</span><span class="line">|                  ID                  | Name |              extra_specs              |
</span><span class="line">+--------------------------------------+------+---------------------------------------+
</span><span class="line">| b1522968-e4fa-4372-8ac4-3925b7c79ee1 | ssd  |  <span class="o">{</span>u<span class="s1">'volume_backend_name'</span>: u<span class="s1">'RBD_SSD'</span><span class="o">}</span> |
</span><span class="line">| b50bf5a3-6044-4392-beeb-432302f6421c | sata | <span class="o">{</span>u<span class="s1">'volume_backend_name'</span>: u<span class="s1">'RBD_SATA'</span><span class="o">}</span> |
</span><span class="line">+--------------------------------------+------+---------------------------------------+
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;


<p>Then restart cinder services:</p>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>sudo restart cinder-api ; sudo restart cinder-scheduler ; sudo restart cinder-volume
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;


<p>Eventually create 2 volume type, one for each backend:</p>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>cinder <span class="nb">type</span>-create ssd
</span><span class="line">+--------------------------------------+------+
</span><span class="line">|                  ID                  | Name |
</span><span class="line">+--------------------------------------+------+
</span><span class="line">| b1522968-e4fa-4372-8ac4-3925b7c79ee1 | ssd  |
</span><span class="line">+--------------------------------------+------+
</span><span class="line">
</span><span class="line"><span class="nv">$ </span>cinder <span class="nb">type</span>-create sata
</span><span class="line">+--------------------------------------+------+
</span><span class="line">|                  ID                  | Name |
</span><span class="line">+--------------------------------------+------+
</span><span class="line">| b50bf5a3-6044-4392-beeb-432302f6421c | sata |
</span><span class="line">+--------------------------------------+------+
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;




<br/>


<h2>II.2. Play with it</h2>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
<span class="line-number">6</span>
<span class="line-number">7</span>
<span class="line-number">8</span>
<span class="line-number">9</span>
<span class="line-number">10</span>
<span class="line-number">11</span>
<span class="line-number">12</span>
<span class="line-number">13</span>
<span class="line-number">14</span>
<span class="line-number">15</span>
<span class="line-number">16</span>
<span class="line-number">17</span>
<span class="line-number">18</span>
<span class="line-number">19</span>
<span class="line-number">20</span>
<span class="line-number">21</span>
<span class="line-number">22</span>
<span class="line-number">23</span>
<span class="line-number">24</span>
<span class="line-number">25</span>
<span class="line-number">26</span>
<span class="line-number">27</span>
<span class="line-number">28</span>
<span class="line-number">29</span>
<span class="line-number">30</span>
<span class="line-number">31</span>
<span class="line-number">32</span>
<span class="line-number">33</span>
<span class="line-number">34</span>
<span class="line-number">35</span>
<span class="line-number">36</span>
<span class="line-number">37</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>cinder create --volume_type ssd --display_name vol-ssd 1
</span><span class="line">+---------------------+--------------------------------------+
</span><span class="line">|       Property      |                Value                 |
</span><span class="line">+---------------------+--------------------------------------+
</span><span class="line">|     attachments     |                  <span class="o">[]</span>                  |
</span><span class="line">|  availability_zone  |                 nova                 |
</span><span class="line">|       bootable      |                <span class="nb">false</span>                 |
</span><span class="line">|      created_at     |      2013-04-22T14:54:53.917580      |
</span><span class="line">| display_description |                 None                 |
</span><span class="line">|     display_name    |               vol-ssd                |
</span><span class="line">|          id         | 4c777d96-66e4-4f85-815c-92d4503c5c8c |
</span><span class="line">|       metadata      |                  <span class="o">{}</span>                  |
</span><span class="line">|         size        |                  1                   |
</span><span class="line">|     snapshot_id     |                 None                 |
</span><span class="line">|     source_volid    |                 None                 |
</span><span class="line">|        status       |               creating               |
</span><span class="line">|     volume_type     |                 ssd                  |
</span><span class="line">+---------------------+--------------------------------------+
</span><span class="line">
</span><span class="line"><span class="nv">$ </span>cinder create --volume_type ssd --display_name vol-sata 1
</span><span class="line">+---------------------+--------------------------------------+
</span><span class="line">|       Property      |                Value                 |
</span><span class="line">+---------------------+--------------------------------------+
</span><span class="line">|     attachments     |                  <span class="o">[]</span>                  |
</span><span class="line">|  availability_zone  |                 nova                 |
</span><span class="line">|       bootable      |                <span class="nb">false</span>                 |
</span><span class="line">|      created_at     |      2013-04-22T14:54:58.831327      |
</span><span class="line">| display_description |                 None                 |
</span><span class="line">|     display_name    |               vol-sata               |
</span><span class="line">|          id         | 8e347bd1-2044-40a2-ae87-ee9a23cddd71 |
</span><span class="line">|       metadata      |                  <span class="o">{}</span>                  |
</span><span class="line">|         size        |                  1                   |
</span><span class="line">|     snapshot_id     |                 None                 |
</span><span class="line">|     source_volid    |                 None                 |
</span><span class="line">|        status       |               creating               |
</span><span class="line">|     volume_type     |                 ssd                  |
</span><span class="line">+---------------------+--------------------------------------+
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;


<p>Does it work?</p>

&lt;figure class="code"&gt;&lt;figcaption&gt;<span/>&lt;/figcaption&gt;<div class="highlight"><table><tbody><tr><td class="gutter"><pre class="line-numbers"><span class="line-number">1</span>
<span class="line-number">2</span>
<span class="line-number">3</span>
<span class="line-number">4</span>
<span class="line-number">5</span>
</pre></td><td class="code"><pre><code class="bash"><span class="line"><span class="nv">$ </span>rbd -p cinder-ssd ls
</span><span class="line">volume-8e347bd1-2044-40a2-ae87-ee9a23cddd71
</span><span class="line">
</span><span class="line"><span class="nv">$ </span>rbd -p cinder-sata ls
</span><span class="line">volume-4c777d96-66e4-4f85-815c-92d4503c5c8c
</span></code></pre></td></tr></tbody></table></div>&lt;/figure&gt;




<br/>


<blockquote><p>It’s nice that the multi-backend came with Cinder, we are gradually getting to enjoy the full power of Ceph!</p></blockquote></div>
    </content>
    <updated>2013-04-25T10:03:00Z</updated>
    <source>
      <id>http://sebastien-han.fr/</id>
      <author>
        <name>Sébastien Han</name>
      </author>
      <link href="http://sebastien-han.fr/atom.xml" rel="self" type="application/atom+xml"/>
      <link href="http://sebastien-han.fr/" rel="alternate" type="text/html"/>
      <title>Sébastien Han - Openstack</title>
      <updated>2013-05-13T09:51:23Z</updated>
    </source>
  </entry>
</feed>
