Accepted Solution

How to move root vol from aggr 32 to aggr 64 on a vfiler


On a N6040 I have a vfiler which have a root vol 32 b and its datas (qtree) on the same 32b volume.

I need to move volume from 32 to 64b.

Is it possible to move data on a new 64b volume and root on another 64b volume?

If yes does I need a reboot or only restart vfiler?

Does someone have a procedure to perform these tasks?

FYI: I started to implement snapmirror to move data from one volume to the other one, but I don't know how to do it for /etc, .... and I have several vfiler running so I can NOT reboot controller.

Thanks for your help

How to move root vol from aggr 32 to aggr 64 on a vfiler

For the physical system, vfiler0, the procedure is to vol copy, snapmirror or ndmpcopy the root volume or /etc directory to a new volume then "vol options newvolname root".

For a vFiler it is a little more tricky but easy to do... it does require you destroy and recreate the vFiler.  Recreate will pick up all the old settings though from the root volume so you don't have to recreate shares, exports and lun maps.  The trick is to rename the target volume the same name as it was when the vfiler existed (a requirement).  The example below uses vol copy but if on 8.0.x and going 32 to 64 bit you need to use ndmpcopy.  This is from the labs we are giving in Las Vegas next week and in Rome in a couple of weeks.  I would test this out on a test vFiler before your production one so you are comfortable with the procedure.  Also, the network IPs in the vFiler will be uncofigured after you recreate the vFiler so you need to ifconfig them again or source the /etc/rc file.


To move the root volume into a different volume/ aggregate, the vfiler must be stopped, destroyed and recreated using the same root volume name. The new root must be renamed to the old root name.

NOTE: You can rename any vFiler volume (including root) with vol renameold new at any time, however to actually move the root volume requires that we destroy and recreate the vFiler using the same name of the root volume before/after the move to another aggregate. 

The procedure below will move the vfiler1_root volume to newroot (which will become vfiler1_root)

1.    Create anew root volume, restrict it, and vol copy the existing root to the newroot:

fas3270> vol create newroot -s none aggr0 20m

fas3270> vol restrict newroot

fas3270> vol copy start -S vfiler1_root newroot

2.    Stop and destroy the vfiler:

fas3270> vfiler stop vfiler1

fas3270> vfiler destroy vfiler1

3.    Rename volumes so the newroot is the same name as oldroot

fas3270> vol rename vfiler1_root oldroot

fas3270> vol rename newroot vfiler1_root

4.    Online the new root volume and recreate the vfiler:

fas3270> vol online vfiler1_root

fas3270> vfiler create vfiler1 -r /vol/vfiler1_root

5.    NOTE: The interfaces will not be configured and needs to be configured.  You will need to ifconfig the interface. You will also need to update the rc file in a production environment or source the rc file if accurate (it should be from before the move)

fas3270> vfiler status -a

fas3270> ifconfig interface

fas3270> vfiler status -a

How to move root vol from aggr 32 to aggr 64 on a vfiler

It also sounds like you want to split data shared on the vfiler root volume (root etc and data on the same volume)... I would migrate the volume first with both root and data in it... then after you recreate the vfiler you can then add a new volume to the vFiler and migrate the data out of vfiler root to that new volume.

How to move root vol from aggr 32 to aggr 64 on a vfiler

Thank you Scott.

It's ok to migrate in a first step from aggr 32 to 64 in leaving data and root etc on samle volume.

In the second step I need to split data and root from one to 2 volumes.

I don't have enough space to create a new volume in the new aggrega to host data, so is it possible to move only root etc?

How to move root vol from aggr 32 to aggr 64 on a vfiler

It is possible but you will need to rename current root to a different name and the new root to the same name it was before... then you can add the old volume back with "vfiler add vfilername /vol/volname" after you recreate it... in that case the data in that old volume (with a different name) will need cifs shares, nfs exports and iscsi lun maps remediated or they won't be accessible since the path is no on a different volume name... not hard to do but plan for it since it will be added back after... and the new volume will only have root and the data will appear missing at existing mount points.

How to move root vol from aggr 32 to aggr 64 on a vfiler

Which file and directory did I need to copy to move root (/etc, ...) on the new volume?

How to move root vol from aggr 32 to aggr 64 on a vfiler

the entire /etc directory...   ndmpcopy /vol/vfiler_root_volume/etc /vol/new_vfiler_root_volume/etc   ... then rename the original to a new name and the new to the oroginal name... I would also delete the restore_symboltable file which is not needed after the migration is cutover.  When all is working then you can delete the etc in the original volume with the data.  Definitely run through a test of this with etc and data in a test vfiler then you'll get the steps worked through so you can repeat on the production vfiler.  And take snapshots of volumes before doing anything to be safe.

How to move root vol from aggr 32 to aggr 64 on a vfiler

Thank you I will test it next week.

How to move root vol from aggr 32 to aggr 64 on a vfiler

Very good... we'll be at the Insight Conference next week but will check for updates here to see how it goes.  It also would be good to test in the VSIM if you have time to configure it in a VM.  We are doing the MultiStore Labs all in ONTAP 8.1 VSIMs and they work just like a real controller.