Thursday, 4 April 2013

Moving volume across Aggregates ( Data motion)

Many would be in  a situation where the one aggregate is free and other aggregate is full or most used. In order to balance there is an online option in Netapp called vol move, which moves the volume from one aggregate to the other on the fly without a downtime.

Few conditions for moving:

Vol move can be performed only on aggregates in the same controller
This feature is available only from Ontap 8.0
There should not be any CIFS or NFS in that volume only FC
Make sure the volume is unexported using the command exportfs -u before any vol move, as any volume by default will be added to the exportfs directory.

Syntax:

Vol move start <vol name> <destination aggregate>

Progress of this vol move can be monitored in snapmirror status

Example of vol move in action: 


filer1*> exportfs -u /vol/vol_003

Vol move start vol_3 aggr1

filer1*> Creation of volume 'ndm_dstvol_1368700289' with size 21990232552  on containing aggregate
'aggr1' has completed.
Volume 'ndm_dstvol_1368700289' is now restricted.
Thu MayThu May 16 16:01:45 IST [filer1:v 16 16:ol.move.transferStart:info]: Baseline transfer from volume vol_003 to ndm_dstvol_1368700289 started.
01:45 IST [filer1:vol.move.transferStart:info]: Baseline transfer from volume vol_003 to ndm_dstvol_1368700289 started.
Transfer started.
Monitor progress with 'snapmirror status' or the snapmirror log.


filer1*> snapmirror status
Snapmirror is on.
Source                          Destination                          State          Lag        Status
127.0.0.1:vol_003       filer1:ndm_dstvol_1368700289  Uninitialized  -          Transferring  (19 GB done)
filer1:vol_001   filer2:vol_001        Source         12:19:43   Idle
filer1:vol_002   filer2:vol_002        Source         11:49:35   Idle

Tuesday, 2 April 2013

Adjusting the TCP window size for a SnapMirror relationship

Recently, I learnt on how to adjust the TCP window size for a snapmirror relationship, thought it would be worth sharing it here.

Most of us complain that we don't fully utilize the bandwidth given for the snapmirror. We can utilize the bandwidth precisely provided we give the TCP window size correctly in snapmirror.conf file.

Let me explain with an example: 

The following are the pre requistes for adjusting the Window size:


  • Ascertain the round-trip time between the source and the destination for a SnapMirror relationship. ( this can be got from the network team or the TTL value using ping from source to destination filer) ( 80msec)
  • Determine the bandwidth available for the SnapMirror relationship. ( 400Mbps)
  • The default TCP window size for a SnapMirror relationship is 1,994,752 bytes.
  • Adjustment of the TCP window size is applicable only for asynchronous SnapMirror relationships.
  • For qtree SnapMirror relationships, TCP window sizes higher than the default value are not supported.

formula : window size = (round-trip time) × (available bandwidth)

here in our example its 80msec x 400Mbps

the Mbps and MBps are totally different its better to use the online calculator for this rather than making mistakes: available at the link here: http://www.numion.com/calculators/units.html

paste 400 in the calculator link and convert them to bits per second i.e: 400000000

convert the 80msec into seconds ( this can be achieved by dividing by 1000 which is 0.08 seconds

now the formula would be : window size = (((0.08sec) × (400000000 bps)) / 8) bytes = 4000000 bytes

here we divide by 8 to make it to bytes

so TCP window size for the SnapMirror relationship to 4000000 bytes.

it can be added to snapmirror.conf as below

sourcefiler:src_vol destinationfiler:dst_vol wsize=4000000 * * * *

For setting the TCP window size on all the volumes, the window size has to be added to the options snapmirror.