As a storage admin , volume migration is always an active routine that need to go through every months or quarters. I was involving in most storage migration using lots of method for the past few years and here is my finding.

  1. Always use snapmirror for volume migration! This is the best way to migrate data in the most consistent way.
  2. Avoid using rsync for huge volume with multiple sessions(directory too huge and you have to split it to multiple sessions).
  3. Detailed plan and down time needed.
Let me share with you my own best practice:
  1. Source filer
    • Identify Volume
    • Volume Size
    • Aggregate type (32bit or 64bit)
  2. Destination filer
    • Identify new volume (with new volume name)
    • New volume size (must be greater than source volume during transfer to minimize the chances of failing during transfer. snapshot might take up additional space on the migration)
    • Aggregate balanced space . Aggregate free space is important for performance , best recommended free space of 15%-20%.
    • Aggregate type (32bit or 63bit)
  3. Getting downtime
    • Engage with customer to get the downtime. Usually the downtime i request is less than 2 hours as the final sync is usually less than 10minutes because i have scheduled snapmirror running daily for the incremental changes.

  4. Cut over plan
    • Always schedule snapmirror schedule to update daily during off hour(or when the filer is free).
    • Run manual snapmirror update for few time an hour before the final sync.
    • restrict source volume after the migration to prevent new data writing in.
    • Test the access in new destination (NFS/CIFS/iSCSI)
5 snapmirror options that you need to know:
  1. “snapmirror initialize -S filername:vol_source filername:vol_destination” to establish relationship ( this is only for volume, qtree would be slightly different).
  2. “snapmirror status” to check status
  3. “snapmirror update -S filername:vol_source  filername:vol_destination  ” to update manually or use /etc/snapmirror.conf to schedule it.
  4. “snapmirror quiesce   filername:vol_destination ” to halt snapmirror progress.
  5. “snapmirror break  filername:vol_destination  ” to break the relationship , so your destination is writable.
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
filer1>snapmirror initialize -S source_filer:/vol/icd_sync/data1 filer1:/vol/dr_temp_data1/data1
 
=========================================================================================
 
filer1>snapmirror status
 
Snapmirror is on.
Source Destination State Lag Status
source_filer:/vol/icd_sync/data1 filer1:/vol/dr_temp_data1/data1 Snapmirrored 21:48:37 Idle
 
 
=========================================================================================
 
filer1>snapmirror update -S source_filer:/vol/icd_sync/data1 filer1:/vol/dr_temp_data1/data1
 
Transfer started.
Monitor progress with 'snapmirror status' or the snapmirror log.
 
=========================================================================================
 
filer1>snapmirror status -l filer1:/vol/dr_temp_data1/data1
Snapmirror is on.
 
Source: source_filer:/vol/icd_sync/data1
Destination: filer1:/vol/dr_temp_data1/data1
Status: Transferring
Progress: 278300 KB
State: Snapmirrored
Lag: 21:54:21
Mirror Timestamp: Thu Mar 15 02:46:55 PDT 2012
Base Snapshot: filer1(1873880973)_dr_temp_data1_data1-dst.2
Current Transfer Type: Update
Current Transfer Error: -
Contents: Transitioning
Last Transfer Type: Initialize
Last Transfer Size: 4967070104 KB
Last Transfer Duration: 14:05:50
Last Transfer From: source_filer:/vol/icd_sync/data1
=========================================================================================
 
filer1>snapmirror status -l filer1:/vol/dr_temp_data1/data1
Snapmirror is on.
 
Source: source_filer:/vol/icd_sync/data1
Destination: filer1:/vol/dr_temp_data1/data1
Status: Idle
Progress: -
State: Snapmirrored
Lag: 01:08:52
Mirror Timestamp: Fri Mar 16 00:49:03 PDT 2012
Base Snapshot: filer1(1873880973)_dr_temp_data1_data1-dst.4
Current Transfer Type: -
Current Transfer Error: -
Contents: Replica
Last Transfer Type: Update
Last Transfer Size: 20705884 KB
Last Transfer Duration: 01:08:10
Last Transfer From: source_filer:/vol/icd_sync/data1
 
=========================================================================================
 
filer1>snapmirror quiesce filer1:/vol/dr_temp_data1/data1
 
snapmirror quiesce: in progress
This can be a long-running operation. Use Control - C (^C) to interrupt.
snapmirror quiesce: /vol/dr_temp_data1/data1 : Successfully quiesced
 
=========================================================================================
filer1>snapmirror break filer1:/vol/dr_temp_data1/data1
 
snapmirror break: Destination /vol/dr_temp_data1/data1 is now writable.