Moving the root volume from one aggregate to another is fairly straightforward. Be sure to be meticulous about each step. First, identify where the root volume is and what size it is. In this case our root volume is still the default name vol0.
toaster> vol container vol0 Volume 'vol0' is contained in aggregate 'aggr1' toaster> vol size vol0 vol size: Flexible volume 'vol0' has size 14g. toaster>
Create a new volume the same size (or larger) as vol0:
toaster> vol create root2 aggr2 14g Creation of volume 'root2' with size 14g on containing aggregate 'aggr2' has completed. toaster>
Now restrict the volume and use snapmirror to mirror the root volume to the new root volume you just created:
toaster> vol restrict root2 Volume 'root2' is now restricted. snapmirror initialize -S vol0 root2 Transfer started. Monitor progress with 'snapmirror status' or the snapmirror log. toaster> toaster> snapmirror status Snapmirror is on. Source Destination State Lag Status toaster:vol0 toaster:root2 Uninitialized - Transferring (150 MB done)
Once the transfer is complete, be paranoid and do one last update:
toaster> snapmirror status Snapmirror is on. Source Destination State Lag Status toaster:vol0 toaster:root2 Snapmirrored 00:09:41 Idle toaster> toaster> snapmirror update -S vol0 root2 Transfer started. Monitor progress with 'snapmirror status' or the snapmirror log. toaster> toaster> snapmirror status Snapmirror is on. Source Destination State Lag Status toaster:vol0 toaster:root2 Snapmirrored 00:00:12 Idle
Now break the snapmirror, making the destination new root volume writable:
toaster> snapmirror break root2 snapmirror break: Destination root2 is now writable. Volume size is being retained for potential snapmirror resync. If you would like to grow the volume and do not expect to resync, set vol option fs_size_fixed to off. toaster> toaster>
Mark the new root volume as ‘root’ using vol options:
toaster> vol options root2 root Wed Jul 31 09:36:06 PDT [toaster: fmmb.lock.disk.remove:info]: Disk 0a.32 removed from local mailbox set. Wed Jul 31 09:36:07 PDT [toaster: fmmb.lock.disk.remove:info]: Disk 0c.16 removed from local mailbox set. Wed Jul 31 09:36:08 PDT [toaster: fmmb.current.lock.disk:info]: Disk 2a.16 is a local HA mailbox disk. Wed Jul 31 09:36:08 PDT [toaster: fmmb.current.lock.disk:info]: Disk 0c.48 is a local HA mailbox disk. Volume 'root2' will become root at the next boot. toaster>
Here you can reboot, or failover. If you need to keep the cluster up while performing this procedure, do a
cf takeover from the other head in the cluster. Then when ready do a
cf giveback to complete the reboot.
Now verify the root volume:
toaster> vol status vol0 online raid_dp, flex root2 online raid_dp, flex root, fs_size_fixed=on
As you can see root2 has the root option listed. Now offline the old root volume and destroy it:
toaster> vol offline vol0 Wed Jul 31 09:48:48 PDT [toaster: wafl.vvol.offline:info]: Volume 'vol0' has been set temporarily offline Volume 'vol0' is now offline. toaster> toaster> vol destroy vol0 Are you sure you want to destroy this volume? yes Wed Jul 31 09:48:55 PDT [toaster: wafl.vvol.destroyed:info]: Volume vol0 destroyed. Volume 'vol0' destroyed. toaster> toaster> vol rename root2 vol0 'root2' renamed to 'vol0' toaster>
The migration is complete. Your new root volume is in a different aggregate, and the system is booted from it. The old one has been destroyed, and now you may destroy the old aggregate, or detach shelves, etc. Now check /etc/exports, and CIFS configuration. Since the new root is actually a copy you need to fix the NFS and CIFS configurations.