Ask Your Question

cinder high availability

asked 2016-01-17 03:44:41 -0500

Marco Marino gravatar image

Hi, I'm using the icehouse release on centos6 servers. Actually I'm searching for a solution for high availability in cinder. Using LVM, cinder needs a Volume Group named "cinder-volumes", so my idea is to build a 2 node corosync/pacemaker/drbd cluster for: 1) create a physical drbd device, eg /dev/drbd0 2) on top of /dev/drbd0, create a PV 3) Using the PV, I create a VG named "cinder-volumes" 4) Create 1 pacemaker RA for drbd (master/slave) 5) Create a pacemaker RA for LVM 6).... VIP.... fencing...

In this way, if I start (only) openstack-cinder-volume on the cluster, I should have high availability for "cinder-volumes" VG. My question is: is this the right way? Actually I'm using centos7 for that cluster, and I have problems related to the RA openstack-cinder-volume. Furthermore, it seems that /etc/cinder/volumes/ should be shared between cluster nodes. It this mandatory? If anyone using other solutions, please share them. Thank you

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2016-01-20 06:34:03 -0500

capsali gravatar image

As far as i know you need a shared storage to be able to have a cinder HA-ish. Cinder stores volumes as default under /var/lib/cinder/volumes (on debian based system,but i think is the same on centos). So that path should be accessiable to both cinder-volume services. If that path is not shared and is local for both cinder hosts, if one service goes down the other one will not have access to that path.

Regards to cinder HA, i think in Kilo was introduced the host parameter in cinder.conf.

I'll give you an example in our enveironment.

We have two hosts with cinder-volume service running. Cinder is backed by ceph rbd pool. In both hosts we set the same host parameter in cinder.conf.

Then we added the cinder endpoint into haproxy that redirectes to both hosts with a round-robin rule, or source.

This is an active/active HA for cinder. When both services are up, haproxy forwards one request to the first cinder-volume host, second request to the second host, third to first node and so on, in case of round-robin rule.

Now, if a cinder host goes down, haproxy marks it as down and only forwards request to the node that is still up.

Being a shared storage, and both cinder-volume services have the same host set in cinder.conf, they both have access to all volumes created by either one of them.

In this case, when you issue a cinder service-list you will have only one cinder-volume service listed with the same hostname set in cinder.conf under host paramter on both nodes.

But as i said, i don't think cinder has the host option in Icehouse, but i may be wrong!

Hope this helps!

edit flag offensive delete link more


In your active/active configuration are you working around any of these known issues? (

Doug Szumski gravatar imageDoug Szumski ( 2016-02-24 04:21:26 -0500 )edit

none so far...but we use 2 cinder backends on two different ceph pools. But we may bump into them eventually. We run this config for almost a year now.

capsali gravatar imagecapsali ( 2016-02-26 16:00:05 -0500 )edit

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2016-01-17 03:44:41 -0500

Seen: 2,018 times

Last updated: Jan 20 '16