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:
Kiran Pawar 2022-11-16 13:01:46 +00:00
parent 4408ec4f7c
commit 096ec5f87d
3 changed files with 19 additions and 4 deletions

View File

@ -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,

View File

@ -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

View File

@ -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.