There are two sets of instructions in this post. Follow the first for migrating regular volumes. Follow the second set for migrating SnapMirror Targets.
To keep things simple I use the original volume name and append ‘NEW’ at the end for the new volume and rename the original volume and append ‘OLD’ to the end of it. In the below examples I’m going to move a 100gb volume called ‘shares’ from aggr0 to aggr1.
Migrate a volume from one aggregate to another (NOT A SNAPMIRROR TARGET)
1. Determine the size and name of the volume you are going to migrate
netapp> df -h Filesystem total used avail capacity Mounted on /vol/shares/ 100GB 10GB 90GB 10% /vol/shares/
2. Create a new volume the same size as the old volume
netapp> vol create <VOLUME NAME>NEW aggr1 <VOLUME SIZE>g EXAMPLE netapp> vol create sharesNEW aggr1 100g
3. NDMP copy the data from the old volume to the new volume
netapp> ndmpcopy <ORIGINAL VOLUME> <NEW VOLUME> EXAMPLE netapp> ndmpcopy shares sharesNEW
4. Once the copy is complete rename the original volume to a temporary name
netapp> vol rename <ORIGINAL VOLUME> <ORIGINAL VOLUME>OLD EXAMPLE netapp> vol rename shares sharesOLD
5. Rename the new volume to match the original volumes name
netapp> vol rename <NEW VOLUME> <ORIGINAL VOLUME NAME> EXAMPLE netapp> vol rename sharesNEW shares
6. Offline the olds volume
netapp> vol offline <OLD VOLUME NAME> EXAMPLE netapp> vol offline sharesOLD
7. After doing a sanity check to verify all the data was properly copied delete the old volume
netapp> vol destroy <OLD VOLUME NAME> EXAMPLE netapp> vol destroy sharesOLD
8. If your volume was exported or configured as a CIFS share verify functionality of that export or share. They should still work.
Migrate a volume from one aggregate to another (SNAPMIRROR TARGET)
1. Determine the size of the volume you are going to migrate
netapp> df -h Filesystem total used avail capacity Mounted on /vol/shares/ 100GB 10GB 90GB 10% /vol/shares/
2. Create a new volume the same size as the old volume
netapp> vol create <VOLUME NAME>NEW aggr1 <VOLUME SIZE>g EXAMPLE netapp> vol create sharesNEW aggr1 100g
3. Once the copy is complete rename the original volume to a temporary name
netapp> vol rename <ORIGINAL VOLUME> <ORIGINAL VOLUME>OLD EXAMPLE netapp> vol rename shares sharesOLD
4. Rename the new volume to match the original volumes name
netapp> vol rename <NEW VOLUME> <ORIGINAL VOLUME NAME> EXAMPLE netapp> vol rename sharesNEW shares
5. Offline the old volume
netapp> vol offline <OLD VOLUME NAME> EXAMPLE netapp> vol offline sharesOLD
6. Delete the old volume
netapp> vol destroy <OLD VOLUME NAME> EXAMPLE netapp> vol destroy sharesOLD
7. Restrict the new volume
netapp> vol restrict <NEW VOLUME NAME> EXAMPLE vol restrict shares
8. Re-initialize the Snapmirror relationship
netapp> snapmirror initialize <SNAPMIRROR TARGET> EXAMPLE netapp> snapmirror initialize netapp:shares
how can I migrate a volume from one controller to a partner clustered controller.
If you’re licensed for SnapMirror I recommend using that. If you are not then ‘ndmpcopy’ is your next best option.
Hi,
I hope you’re still around. Can I use ndmpcopy while the nfs is still mounted? Whats the timeframe to do this, so that I can plan a maintenance window?
The time will depend on how much data you’re moving.
If you’re going across NetApps or Controllers you could SnapMirror instead which would reduce your cut-over time to a final sync and re-mapping your NFS.
You can probably ndmpcopy while the data is still being accessed via NFS but you’ll still have that final outage for disabling, re-exporting and re-connecting your NFS storage plus a final sync of the data from the old volume to the new.