the FAS3020 used to use hardware-based disk ownership by default which made moving between controllers much easier. If 'disk show -v' shows you a list of all the disks on your controller, then you're using software-based disk ownership.
These steps would assume that your new destination controller needs to remain up while the shelves are attached. If you are moving to a different ONTAP version, then you should verify compatibility in your environment via the matrix on NOW (ie key things such as Windows iSCSI initiators, NetApp Host Utilities, Snapdrive and Snapmanager products -for starters- will need to be checked).
Basically the steps would involve:
Rename any aggregates and volumes which are moving so that they don't conflict with any already on the destination controller.
Shutdown any apps/servers which are served from the aggrs you want to move.
Remove any CIFS shares / NFS exports / LUN mappings for data contained on the aggr.
Take the aggregate(s) contained on the shelves offline.
Shutdown the FAS3020 (and the cluster partner if in a HA-pair)
Disconnect and move the shelves/loops to the new location (do not connect to new destination tho).
Check that shelf ID numbers are correct for whatever loops you're connecting them to (remember that you can only connect to loops of the same type - ie SATA shelves to SATA loops, FC shelves to FC loops)
Power on the moved shelves and connect them together as desired - DO NOT connect them to any existing loops until you've connected the moved shelves to each other in the manner you need for the end result.
Connect the shelves to the new controller(s).
Check that you can see all of the disks with 'disk show -v' and 'sysconfig -a'
Assign the disks to the correct controller by running this command for each disk: disk assign <disk> -o <new_filername> -f
If you're using hardware-based disk ownership, then just type "disk assign all"
If you're running ONTAP 7.3.x then you'll see a stack of 'critical' errors scroll up your screen for each of these disks which you can ignore.
12. Check that all disks are assigned to the correct controller by running: disk show -v
13. You should've seen messages saying that it detected a new aggregate - run this command to see if your aggregate is listed and offline: aggr status -v
14. If all of the correct disks are present for the aggregate, bring the aggregate online by running: aggr online <aggr_name>
15. Check that all vols contained on the aggr are online and then recreate any CIFS shares / NFS exports / LUN mappings from the new controller.
These steps don't include any SAN zoning, persistent binding, DFS updates etc or any host-based reconfiguration if required.