Add config for netapp asynchronous SnapMirror schedule
Asynchronous SnapMirror schedules are now possible to configure using netapp option 'netapp_snapmirror_schedule'. Admin must make sure schedule is already defined on backend filer. Closes-bug: #1996750 Change-Id: I0390f82dfdc130d49e3af6928996dd730e3cf69f
This commit is contained in:
parent
4408ec4f7c
commit
096ec5f87d
@ -186,13 +186,14 @@ class DataMotionSession(object):
|
|||||||
source_share_obj)
|
source_share_obj)
|
||||||
|
|
||||||
# 1. Create SnapMirror relationship
|
# 1. Create SnapMirror relationship
|
||||||
# TODO(ameade): Change the schedule from hourly to a config value
|
config = get_backend_configuration(dest_backend)
|
||||||
|
schedule = config.netapp_snapmirror_schedule
|
||||||
dest_client.create_snapmirror_vol(src_vserver,
|
dest_client.create_snapmirror_vol(src_vserver,
|
||||||
src_volume_name,
|
src_volume_name,
|
||||||
dest_vserver,
|
dest_vserver,
|
||||||
dest_volume_name,
|
dest_volume_name,
|
||||||
relationship_type,
|
relationship_type,
|
||||||
schedule='hourly')
|
schedule=schedule)
|
||||||
|
|
||||||
# 2. Initialize async transfer of the initial data
|
# 2. Initialize async transfer of the initial data
|
||||||
dest_client.initialize_snapmirror_vol(src_vserver,
|
dest_client.initialize_snapmirror_vol(src_vserver,
|
||||||
@ -475,14 +476,14 @@ class DataMotionSession(object):
|
|||||||
replica_vserver)
|
replica_vserver)
|
||||||
|
|
||||||
# 3. create
|
# 3. create
|
||||||
# TODO(ameade): Update the schedule if needed.
|
|
||||||
relationship_type = na_utils.get_relationship_type(is_flexgroup)
|
relationship_type = na_utils.get_relationship_type(is_flexgroup)
|
||||||
|
schedule = replica_config.netapp_snapmirror_schedule
|
||||||
replica_client.create_snapmirror_vol(new_src_vserver,
|
replica_client.create_snapmirror_vol(new_src_vserver,
|
||||||
new_src_volume_name,
|
new_src_volume_name,
|
||||||
replica_vserver,
|
replica_vserver,
|
||||||
replica_volume_name,
|
replica_volume_name,
|
||||||
relationship_type,
|
relationship_type,
|
||||||
schedule='hourly')
|
schedule=schedule)
|
||||||
|
|
||||||
# 4. resync
|
# 4. resync
|
||||||
replica_client.resync_snapmirror_vol(new_src_vserver,
|
replica_client.resync_snapmirror_vol(new_src_vserver,
|
||||||
|
@ -215,6 +215,14 @@ netapp_data_motion_opts = [
|
|||||||
default=3600, # One Hour
|
default=3600, # One Hour
|
||||||
help='The maximum time in seconds to wait for a snapmirror '
|
help='The maximum time in seconds to wait for a snapmirror '
|
||||||
'release when breaking snapmirror relationships.'),
|
'release when breaking snapmirror relationships.'),
|
||||||
|
cfg.StrOpt('netapp_snapmirror_schedule',
|
||||||
|
default='hourly', # One Hour
|
||||||
|
help='An interval in either minutes or hours used to update '
|
||||||
|
'the SnapMirror relationship. Few valid values are: '
|
||||||
|
'5min, 10min, 30min, hourly etc. The schedule at the '
|
||||||
|
'"destination" host will be the one that will be '
|
||||||
|
'considered when creating a new replica, or promoting '
|
||||||
|
'a replica'),
|
||||||
cfg.IntOpt('netapp_snapmirror_last_transfer_size_limit',
|
cfg.IntOpt('netapp_snapmirror_last_transfer_size_limit',
|
||||||
min=512,
|
min=512,
|
||||||
default=1024, # One MB
|
default=1024, # One MB
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Added new config option `netapp_snapmirror_schedule` which allows admin to
|
||||||
|
configure netapp asynchronous snapmirror schedule. Admin must make sure
|
||||||
|
schedule is already created on the backend filer.
|
Loading…
Reference in New Issue
Block a user