]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Cinder replication V2
authorJohn Griffith <john.griffith8@gmail.com>
Thu, 9 Jul 2015 21:11:54 +0000 (21:11 +0000)
committerJohn Griffith <john.griffith8@gmail.com>
Mon, 24 Aug 2015 21:37:15 +0000 (15:37 -0600)
commitfe538dc63de2c9bab21416a4b6c920049442b4e9
treefbdf000a5917f64187eb73e5a370b6db028f208a
parentec127646d1a745945f26c2f5c81423425404c30d
Cinder replication V2

This adds a scaled back replication implementation
that leaves the bulk of the work up to the driver.
We just provide basic admin API methods to do things
like enable/disable and fail-over.  Set up and
specification of replication targets for a specific
back end are now intended to be part of the cinder.conf
in the driver section itself.

Replication targets are configured via the cinder.conf
file in their associated driver section.  See the devref
doc included in this commit for details on the format.

The next step in configuration is to create a volume-type
with replication info in the extra-specs.
    extra-specs = replication=enable, volume_backend_name=foo

This instructs the driver to utilize replication, default is
up to the driver but would suggest single way rep and in the case
of multiple targets, driver could choose or have a default.

If the back end doesn't report replication=enabled in it's stats
updates the scheduler will fail to place the volume due to invalid
host, or no hosts available.

Vendors can easily modify extra-specs or their own config settings
to modify this behavior, any vendor-unique adaptation can be
provided through the use of scoped keys.  Suggested examples
will be published in docs.

See doc/source/devref/replication.rst for more info

Implements BP: replication-v2
DocImpact

Change-Id: I406390e4d5f3c9947df1c4f2de68821e0fd7f75b
12 files changed:
cinder/api/contrib/admin_actions.py
cinder/tests/unit/policy.json
cinder/tests/unit/test_volume.py
cinder/tests/unit/test_volume_utils.py
cinder/volume/api.py
cinder/volume/driver.py
cinder/volume/manager.py
cinder/volume/rpcapi.py
cinder/volume/utils.py
doc/source/devref/index.rst
doc/source/devref/replication.rst [new file with mode: 0644]
etc/cinder/policy.json