ONTAP Discussions

Throttle Active SnapMirror Jobs in Cdot

TMADOCTHOMAS
7,011 Views

A few years ago, a colleague created a PowerShell script to throttle active SnapMirror jobs during business hours, and a separate script to unthrottle them at night. The scripts only apply to jobs that run into daytime hours and in some cases continue into a second day. We have to throttle during business hours or it brings these offices to a crawl.

 

We are about to convert the filers at our remote offices from 7-mode to cdot. Unfortunately, the "snapmirror throttle" command we use in 7-mode doesn't have an equivalent in cdot. i'm looking online and in help to determine the best way to accomplish the same task in cdot. Everything I've found so far adjusts throttling for the next transfer but not the current one. Any ideas?

 

Here is an example of the script we use for 7-mode:

 

Invoke-NaSsh -Name <filer_name> -Command "snapmirror throttle <amount> <destination_path>"

1 ACCEPTED SOLUTION

TMADOCTHOMAS
6,767 Views

If anyone researches this, it turns out the solution is much simpler in cdot. All I had to do was create a script that issues this command on the source cluster in the morning:

 

replication.throttle.outgoing.max_kbs <kbps>

 

In the afternoon, after everyone's left for the day, I issue this one:

 

replication.throttle.outgoing.max_kbs unlimited

 

This throttles all current and future snapmirror jobs globally from the source system to whatever level we need during work hours, and unthrottles all current and future jobs at night.

View solution in original post

2 REPLIES 2

TMADOCTHOMAS
6,827 Views

After researching, I discovered there is no way to throttle a job on the fly anymore, but you can get a close equivalent by aborting and then updating the job with the throttle switch. Or, at least it should work in theory. It's not working in practice so far. I'm actually just manually running commands on my test data now at the cli and the throttle isn't 'taking'. I've got a case open with NetApp but would love to hear ideas anyone might have.

 

Commands I am running:

 

Throttle settings before change (while job is running)

snapmirror show -type DP -fields total-progress,throttle,current-throttle

----------------------- ------------------------------ --------- ---------------- --------------

<source_path> <destination_path> unlimited unlimited        962MB

 

Abort job

snapmirror abort -destination-path <destination_path>

 

Update job with throttle

snapmirror update -destination-path <destination_path> -throttle 5120

 

Throttle settings show the throttle didn't 'take'

snapmirror show -type DP -fields total-progress,throttle,current-throttle

source-path             destination-path               throttle  current-throttle total-progress

----------------------- ------------------------------ --------- ---------------- --------------

<source_path> <destination_path> unlimited unlimited        864MB

TMADOCTHOMAS
6,768 Views

If anyone researches this, it turns out the solution is much simpler in cdot. All I had to do was create a script that issues this command on the source cluster in the morning:

 

replication.throttle.outgoing.max_kbs <kbps>

 

In the afternoon, after everyone's left for the day, I issue this one:

 

replication.throttle.outgoing.max_kbs unlimited

 

This throttles all current and future snapmirror jobs globally from the source system to whatever level we need during work hours, and unthrottles all current and future jobs at night.

Public