SHIFT-WIKI

--- Sjoerd Hooft's InFormation Technology ---

User Tools

Site Tools


netappreplication

NetApp SnapMirror

This article describes how to setup replication between two filers using SnapMirror. Configuring this is pretty forward, but there is a big catch, which will never show by error messages: ALWAYS USE HOSTNAMES! I had several issues when using IP addresses or when mixing IP addresses and hostnames. Also, in a simulated environment use different names for the volumes. That's only in a simulated environment, in my production environment I had no issues while using the same names for the volumes. This was confirmed while googling for the error.

Create the Target Volume

On the target filer you'll have to create a volume which will be used as the target. This volume needs to be at least the same size as the source. After creating the volume you'll have to restrict the volume so it can be used as a target for SnapMirror: netappreplication-restrict.jpg

Restricting the volume is also possible from the command line:

storage02> vol restrict target

Share mirrortarget disabled while volume target is offline.
Volume 'target' is now restricted.

Allow Replication

If you have a volume you want snapmirrored you'll have to allow another netapp to access the volume. That is done under 'SnapMirror' → 'Remote Access' → 'Manage': netappreplication-remoteaccess.jpg
We had to enter for each allowed device both the device name (hostname) and the IP-address.

Note that you can configure access also through the file /etc/snapmirror.allow or options.snapmirror.access

Commmandline

This can also be done on the commandline:

filer01a> options snapmirror.access host=10.10.10.91
filer01a> options snapmirror
snapmirror.access            host=10.10.10.91
snapmirror.checkip.enable    off
snapmirror.cmode.suspend     off
snapmirror.delayed_acks.enable on
snapmirror.enable            on
snapmirror.log.enable        on
snapmirror.vbn_log_enable    off        (value might be overwritten in takeover)
snapmirror.volume.local_nwk_bypass.enable on
snapmirror.vsm.volread.smtape_enable on

If you want to enable access for multiple filers you can separate them using commas:

options snapmirror.access host=10.10.10.91,10.10.10.92

Throttle The Replication

Throttling the replications to prevent congestion on the network can be done using the replication options. To show the replication options issue this command:

filer1> options replication
replication.logical.reserved_transfers 0          (value might be overwritten in takeover)
replication.logical.transfer_limits current    (value might be overwritten in takeover)
replication.throttle.enable  on
replication.throttle.incoming.max_kbs 35840
replication.throttle.outgoing.max_kbs 35840
replication.volume.reserved_transfers 0          (value might be overwritten in takeover)
replication.volume.transfer_limits current    (value might be overwritten in takeover)
replication.volume.use_auto_resync off        (value might be overwritten in takeover)

You can change one of the options like this:

options replication.throttle.enable  on
options replication.throttle.incoming.max_kbs 35840
options replication.throttle.outgoing.max_kbs 35840

Setup the SnapMirror

Now everything is prepared to start a snapmirror. On the target filer go to filerview → SnapMirror → Manage and click on “Add SnapMirror Entry”. Follow the wizard that starts:

  • Destination Location
    • Destination Filer is already filled in
    • Select the (restricted) destination volume
  • Source Location
    • Fill in the hostname of the source filer
    • Fill in the source volume
  • Schedule Arguments
    • keep the options default
  • Schedule
    • Select your configure an appropriate schedule

When the creation was successful, click on advanced to see the details of the SnapMirror relation and start the initialization.

Check SnapMirror Configuration

If you experience problems or just want to check if the configuration you entered is correctly accepted at the system I'd start checking the snapmirror.conf file:

acc-filer1> rdfile /etc/snapmirror.conf
#Regenerated by registry Mon Apr 11 13:28:39 GMT 2011
prd-filer1:database acc-filer1:database - 0-59/6 * * *
prd-filer1:WEB      acc-filer1:WEB      - 0-59/6 * * *

It shows a quick overview of the source, target and schedule. The above schedule means replication is run every 6 minutes.

Monitoring Replication

Checking mirror status:

See the status when the volumes are replicated:
filer1> snapmirror status
Snapmirror is on.
Source                 Destination            State          Lag        Status
prd-filer1:vol1        acc-filer1:vol1        Snapmirrored   00:41:00   Idle
prd-filer1:vol2        acc-filer1:vol2        Snapmirrored   00:10:58   Idle

See the status when the volumes are still being transferred:
filer2*> snapmirror status
Snapmirror is on.
Source                 Destination            State          Lag        Status
prd-filer2:vol1        acc-filer2:vol1        Uninitialized  -          Transferring  (334 GB done)

Checking network traffic:

sysstat -s 1

Stopping And Starting Replication

Stop replication after the current transfer has finished:

snapmirror quiesce filer1:volumename

Stop replication immediately:

snapmirror abort filer1:volumename

Stop replication and r/w enable the destination:

snapmirror break filer1:volumename

Continue replication after abort/stop/quiesce:

snapmirror resync filer1:volumename

SnapMirror Use

I created a separate article for this, it turned out to be big.

netappreplication.txt · Last modified: 2021/09/24 00:24 by 127.0.0.1