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.
- Always use snapmirror for volume migration! This is the best way to migrate data in the most consistent way.
- Avoid using rsync for huge volume with multiple sessions(directory too huge and you have to split it to multiple sessions).
- Detailed plan and down time needed.
Let me share with you my own best practice:
- Source filer
- Identify Volume
- Volume Size
- Aggregate type (32bit or 64bit)
- 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)
- 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.
- 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:
- “snapmirror initialize -S filername:vol_source filername:vol_destination” to establish relationship ( this is only for volume, qtree would be slightly different).
- “snapmirror status” to check status
- “snapmirror update -S filername:vol_source filername:vol_destination ” to update manually or use /etc/snapmirror.conf to schedule it.
- “snapmirror quiesce filername:vol_destination ” to halt snapmirror progress.
- “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. |
Leave a Reply