]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Storwize: Implement v2 replication
authorVincent Hou <shou@us.ibm.com>
Tue, 2 Feb 2016 19:20:02 +0000 (14:20 -0500)
committerVincent Hou <shou@us.ibm.com>
Tue, 9 Feb 2016 02:03:34 +0000 (21:03 -0500)
commit05f8a52301eb5f079f7bb01eed9b3695be837f4f
tree99109fe452549742d8011de9a4cceda45208b371
parentf2f241a4400ae18863948364d14ef72dc0a24d24
Storwize: Implement v2 replication

Storwize supports three major types for volume replications:
split IO, global mirror and metro mirror.

This patch is dedicated to implement the replication for
the modes of global mirror and metro mirror. Mirror
establishes a Global/Metro Mirror relationship between
two volumes of equal size. The volumes in a Mirror
relationship are referred to as the primary volume and
the replica volume. The replication_mode in
replication_device must be set to global or metro.

The volume type needs to associate with the extra spec
with 'replication_enabled' equaling to "<is> True", and
'replication_type' equaling to '<in> global' or '<in>
metro'.

What is supported with replication:
* create volume
* create volume from snapshot
* clone a volume
When a volume is created and replication is enabled, the
replica volume is also created on the back-end enabled
for replicas.

What is not supported with replication yet:
* volume migration
* volume retype
The replica volume will not be created or moved after migration
or retype of a replicated volume. Admins should be aware,
when migrating or retyping a volume to a type with replication
enabled, that the replica will not be automatically created.

The replication can be configured via either multi-backend
on one cinder volume node, or on separate cinder volume
nodes.

Options to be put in cinder.conf, where the primary back-end
is located:

enabled_backends = sv1, sv2 (if enabling multi-backends)

[sv1]
san_login = admin
san_password = admin
san_ip = 192.168.0.11
volume_driver = cinder.volume.drivers.ibm.storwize_svc.\
                StorwizeSVCDriver
volume_backend_name = sv1
storwize_svc_volpool_name=cinder
replication_device = managed_backend_name:second_host@sv2#sv2,
                     replication_mode:global,
                     target_device_id:svc_id_target,
                     san_ip:192.168.0.12,san_login:admin,
                     san_password:admin,pool_name:cinder_target

Options to be put in cinder.conf, where the secondary
back-end is connected:

[sv2]
san_login = admin
san_password = admin
san_ip = 192.168.0.12
volume_driver = cinder.volume.drivers.ibm.storwize_svc.\
                StorwizeSVCDriver
volume_backend_name = sv2
storwize_svc_volpool_name=cinder_target

Partial-implements: blueprint ibm-storwize-v2-replication
DocImpact

Change-Id: I2ad5be69b2814d3b974c963828585fa15446d772
cinder/tests/unit/test_storwize_svc.py
cinder/volume/drivers/ibm/storwize_svc/replication.py
cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py
releasenotes/notes/storwize-v2-replication-mirror-managed-50c1b2996790760e.yaml [new file with mode: 0644]