ONTAP Discussions

How can i automate a change on a scheduled snapmirror?

LucG
3,004 Views

I have to modify a snapmirror, i need the synchronization is executed at another time on the weekend. How can I automate this?

 

We are on Data Ontap 8.2.1 clustered mode.

1 ACCEPTED SOLUTION

mbeattie
2,863 Views

Hi,

 

There are a few options and considerations. You can:

 

  1. Create a script which imports the dataONTAP powershell module, connects to your cluster and uses the "Set-NcSnapmirror" CmdLet to modify it.
  2. Create a WFA workflow which performs the same action as option 1

The advantage of using OnCommand Workflow Automation (WFA) is that it can manage the schedule and credentials although technically you could easily achieve the same result using windows task scheduler. One other point to consider is any potential difference in timezones from the server you would be running the automation from and the cluster you are connecting to. This is especially important when working with geographically diverse systems to ensure you schedule your automation at the appropriate time relative to non-business hours at the destination system.

 

What exactly are you trying to automate? Throttling the bandwidth used by snapmirror during production hours and then increasing it during non-production hours or a pause and resume?

 

NAME
    Set-NcSnapmirror

SYNOPSIS
    Changes one or more parameters of a SnapMirror relationship.


SYNTAX
    Set-NcSnapmirror [-DestinationCluster <String>] -DestinationVserver <String> -DestinationVolume <String> [-SourceCluster <String>] [-SourceVserver <String>] [-SourceVolume <String>] [-Schedule <String>] [-Tries <Int32>]
    [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>] [<CommonParameters>]

    Set-NcSnapmirror [-Destination] <String> [[-Source] <String>] [-Schedule <String>] [-Tries <Int32>] [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>]
    [<CommonParameters>]

If throttling the bandwidth is an option then i'd suggest leaving your snapmirror running and limiting it to a very low transfer rate using the -MaxTransferRate during bussiness hours then setting it zero during non-production hours to utilised the maximum available bandwidth for your snapmirror transfer.

 

-MaxTransferRate <Int64>
    Specifies the upper bound, in bytes per second, at which data is transferred between clusters.  The default is unlimited (0) which permits the SnapMirror relationship to fully utilize the available network bandwidth.  This
    option does not affect load-sharing mirrors and other SnapMirror relationships confined to a single cluster.

    Required?                    false
    Position?                    named
    Default value
    Accept pipeline input?       true (ByPropertyName)
    Accept wildcard characters?  false

Hope that gives you a few ideas.

 

/Matt

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

View solution in original post

2 REPLIES 2

mbeattie
2,864 Views

Hi,

 

There are a few options and considerations. You can:

 

  1. Create a script which imports the dataONTAP powershell module, connects to your cluster and uses the "Set-NcSnapmirror" CmdLet to modify it.
  2. Create a WFA workflow which performs the same action as option 1

The advantage of using OnCommand Workflow Automation (WFA) is that it can manage the schedule and credentials although technically you could easily achieve the same result using windows task scheduler. One other point to consider is any potential difference in timezones from the server you would be running the automation from and the cluster you are connecting to. This is especially important when working with geographically diverse systems to ensure you schedule your automation at the appropriate time relative to non-business hours at the destination system.

 

What exactly are you trying to automate? Throttling the bandwidth used by snapmirror during production hours and then increasing it during non-production hours or a pause and resume?

 

NAME
    Set-NcSnapmirror

SYNOPSIS
    Changes one or more parameters of a SnapMirror relationship.


SYNTAX
    Set-NcSnapmirror [-DestinationCluster <String>] -DestinationVserver <String> -DestinationVolume <String> [-SourceCluster <String>] [-SourceVserver <String>] [-SourceVolume <String>] [-Schedule <String>] [-Tries <Int32>]
    [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>] [<CommonParameters>]

    Set-NcSnapmirror [-Destination] <String> [[-Source] <String>] [-Schedule <String>] [-Tries <Int32>] [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>]
    [<CommonParameters>]

If throttling the bandwidth is an option then i'd suggest leaving your snapmirror running and limiting it to a very low transfer rate using the -MaxTransferRate during bussiness hours then setting it zero during non-production hours to utilised the maximum available bandwidth for your snapmirror transfer.

 

-MaxTransferRate <Int64>
    Specifies the upper bound, in bytes per second, at which data is transferred between clusters.  The default is unlimited (0) which permits the SnapMirror relationship to fully utilize the available network bandwidth.  This
    option does not affect load-sharing mirrors and other SnapMirror relationships confined to a single cluster.

    Required?                    false
    Position?                    named
    Default value
    Accept pipeline input?       true (ByPropertyName)
    Accept wildcard characters?  false

Hope that gives you a few ideas.

 

/Matt

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

LucG
2,843 Views

Hi Matt,

 

Thank you we will use the powershell module to modify the schedule of the snapmirror.

 

Best regards,

 

/Luc


@mbeattie wrote:

Hi,

 

There are a few options and considerations. You can:

 

  1. Create a script which imports the dataONTAP powershell module, connects to your cluster and uses the "Set-NcSnapmirror" CmdLet to modify it.
  2. Create a WFA workflow which performs the same action as option 1

The advantage of using OnCommand Workflow Automation (WFA) is that it can manage the schedule and credentials although technically you could easily achieve the same result using windows task scheduler. One other point to consider is any potential difference in timezones from the server you would be running the automation from and the cluster you are connecting to. This is especially important when working with geographically diverse systems to ensure you schedule your automation at the appropriate time relative to non-business hours at the destination system.

 

What exactly are you trying to automate? Throttling the bandwidth used by snapmirror during production hours and then increasing it during non-production hours or a pause and resume?

 

NAME
    Set-NcSnapmirror

SYNOPSIS
    Changes one or more parameters of a SnapMirror relationship.


SYNTAX
    Set-NcSnapmirror [-DestinationCluster <String>] -DestinationVserver <String> -DestinationVolume <String> [-SourceCluster <String>] [-SourceVserver <String>] [-SourceVolume <String>] [-Schedule <String>] [-Tries <Int32>]
    [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>] [<CommonParameters>]

    Set-NcSnapmirror [-Destination] <String> [[-Source] <String>] [-Schedule <String>] [-Tries <Int32>] [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>]
    [<CommonParameters>]

If throttling the bandwidth is an option then i'd suggest leaving your snapmirror running and limiting it to a very low transfer rate using the -MaxTransferRate during bussiness hours then setting it zero during non-production hours to utilised the maximum available bandwidth for your snapmirror transfer.

 

-MaxTransferRate <Int64>
    Specifies the upper bound, in bytes per second, at which data is transferred between clusters.  The default is unlimited (0) which permits the SnapMirror relationship to fully utilize the available network bandwidth.  This
    option does not affect load-sharing mirrors and other SnapMirror relationships confined to a single cluster.

    Required?                    false
    Position?                    named
    Default value
    Accept pipeline input?       true (ByPropertyName)
    Accept wildcard characters?  false

Hope that gives you a few ideas.

 

/Matt

 



@mbeattie wrote:

Hi,

 

There are a few options and considerations. You can:

 

  1. Create a script which imports the dataONTAP powershell module, connects to your cluster and uses the "Set-NcSnapmirror" CmdLet to modify it.
  2. Create a WFA workflow which performs the same action as option 1

The advantage of using OnCommand Workflow Automation (WFA) is that it can manage the schedule and credentials although technically you could easily achieve the same result using windows task scheduler. One other point to consider is any potential difference in timezones from the server you would be running the automation from and the cluster you are connecting to. This is especially important when working with geographically diverse systems to ensure you schedule your automation at the appropriate time relative to non-business hours at the destination system.

 

What exactly are you trying to automate? Throttling the bandwidth used by snapmirror during production hours and then increasing it during non-production hours or a pause and resume?

 

NAME
    Set-NcSnapmirror

SYNOPSIS
    Changes one or more parameters of a SnapMirror relationship.


SYNTAX
    Set-NcSnapmirror [-DestinationCluster <String>] -DestinationVserver <String> -DestinationVolume <String> [-SourceCluster <String>] [-SourceVserver <String>] [-SourceVolume <String>] [-Schedule <String>] [-Tries <Int32>]
    [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>] [<CommonParameters>]

    Set-NcSnapmirror [-Destination] <String> [[-Source] <String>] [-Schedule <String>] [-Tries <Int32>] [-MaxTransferRate <Int64>] [-Policy <String>] [-Controller <NcController[]>] [-PipelineVariable <String>] [-ZapiRetryCount <Int32>]
    [<CommonParameters>]

If throttling the bandwidth is an option then i'd suggest leaving your snapmirror running and limiting it to a very low transfer rate using the -MaxTransferRate during bussiness hours then setting it zero during non-production hours to utilised the maximum available bandwidth for your snapmirror transfer.

 

-MaxTransferRate <Int64>
    Specifies the upper bound, in bytes per second, at which data is transferred between clusters.  The default is unlimited (0) which permits the SnapMirror relationship to fully utilize the available network bandwidth.  This
    option does not affect load-sharing mirrors and other SnapMirror relationships confined to a single cluster.

    Required?                    false
    Position?                    named
    Default value
    Accept pipeline input?       true (ByPropertyName)
    Accept wildcard characters?  false

Hope that gives you a few ideas.

 

/Matt

 




Public