A simple way to convert a flexible volume to a traditional volume is to use ndmp, within the same filer.
Firstly enable ndmp and turn it on.
filer> options ndmpd.enable on
filer> ndmpd on
Next create the volume that you want to migrate the data to. In this case, I create a traditional volume with 5 disks, and use raid4 protection rather than raid-dp.
filer>vol create vol0_trad -t raid4 5
The output of the command should look similar to this :-
Tue Jul 8 20:33:25 GMT [raid.vol.disk.add.done:notice]: Addition of Disk /vol0_trad/plex0/rg0/0d.4 Shelf 0 Bay 4 [SEAGATE ST3500630NSAH AQMZ] S/N [9QG7A9J2] to volume vol0_trad has completed successfully Tue Jul 8 20:33:25 GMT [raid.vol.disk.add.done:notice]: Addition of Disk /vol0_trad/plex0/rg0/0d.0 Shelf 0 Bay 3 [SEAGATE ST3500630NSAH AQMZ] S/N [9QG7KTSY] to volume vol0_trad has completed successfully Tue Jul 8 20:33:25 GMT [raid.vol.disk.add.done:notice]: Addition of Disk /vol0_trad/plex0/rg0/0d.3 Shelf 0 Bay 2 [SEAGATE ST3500630NSAH AQMZ] S/N [9QG7LHPR] to volume vol0_trad has completed successfully Tue Jul 8 20:33:25 GMT [raid.vol.disk.add.done:notice]: Addition of Disk /vol0_trad/plex0/rg0/0c.6 Shelf 0 Bay 7 [SEAGATE ST3500630NSAH AQMZ] S/N [9QG7C91R] to volume vol0_trad has completed successfully Tue Jul 8 20:33:25 GMT [raid.vol.disk.add.done:notice]: Addition of Disk /vol0_trad/plex0/rg0/0d.1 Shelf 0 Bay 1 [SEAGATE ST3500630NSAH AQMZ] S/N [9QG7LHVF] to volume vol0_trad has completed successfully Creation of a volume with 5 disks has completed. perfdevsrv015> Tue Jul 8 20:33:26 GMT [wafl.vol.add:notice]: Volume vol0_trad has been added to the system.
Next I use ndmpcopy to copy the files to the new volume. I use the -f switch since I am copying the root volume.
ndmpcopy -f /vol/vol0 /vol/vol0_trad
The output looks as below
Ndmpcopy: Starting copy [ 0 ] ...Ndmpcopy: perfdevsrv015: Notify: Connection established Ndmpcopy: perfdevsrv015: Notify: Connection established Ndmpcopy: perfdevsrv015: Connect: Authentication successful Ndmpcopy: perfdevsrv015: Connect: Authentication successful Ndmpcopy: perfdevsrv015: Log: DUMP: creating "/vol/vol0/../snapshot_for_backup.0" snapshot. Ndmpcopy: perfdevsrv015: Log: DUMP: Using Full Volume Dump Ndmpcopy: perfdevsrv015: Log: DUMP: Date of this level 0 dump: Tue Jul 8 20:35:51 2008. Ndmpcopy: perfdevsrv015: Log: DUMP: Date of last level 0 dump: the epoch. Ndmpcopy: perfdevsrv015: Log: DUMP: Dumping /vol/vol0 to NDMP connection Ndmpcopy: perfdevsrv015: Log: DUMP: mapping (Pass I)[regular files] Ndmpcopy: perfdevsrv015: Log: DUMP: mapping (Pass II)[directories] Ndmpcopy: perfdevsrv015: Log: DUMP: estimated 235187 KB.Ndmpcopy: perfdevsrv015: Log: DUMP: dumping (Pass III) [directories] Ndmpcopy: perfdevsrv015: Log: RESTORE: Tue Jul 8 20:36:40 2008: Begin level 0 restore Ndmpcopy: perfdevsrv015: Log: RESTORE: Tue Jul 8 20:36:40 2008: Reading directories from the backup Ndmpcopy: perfdevsrv015: Log: DUMP: dumping (Pass IV) [regular files] Ndmpcopy: perfdevsrv015: Log: RESTORE: Tue Jul 8 20:36:49 2008: Creating files and directories. Ndmpcopy: perfdevsrv015: Log: RESTORE: Tue Jul 8 20:36:54 2008: Writing data to files. Ndmpcopy: perfdevsrv015: Log: RESTORE: Tue Jul 8 20:37:30 2008: Restoring NT ACLs. Ndmpcopy: perfdevsrv015: Log: DUMP: dumping (Pass V) [ACLs] Ndmpcopy: perfdevsrv015: Log: DUMP: 238893 KB Ndmpcopy: perfdevsrv015: Log: RESTORE: RESTORE IS DONE Ndmpcopy: perfdevsrv015: Log: DUMP: DUMP IS DONE Ndmpcopy: perfdevsrv015: Log: RESTORE: The destination path is /vol/vol0_trad/ Ndmpcopy: perfdevsrv015: Notify: restore successful Ndmpcopy: perfdevsrv015: Log: DUMP: Deleting "/vol/vol0/../snapshot_for_backup.0" snapshot. Ndmpcopy: perfdevsrv015: Notify: dump successful Ndmpcopy: Transfer successful [ 1 minutes 44 seconds ] Ndmpcopy: Done
Now since I want to boot from this volume I set the boot option
vol options vol0_trad root
ONTAP tells me that this volume will become the root volume on next boot;
Volume 'vol0_trad' will become root at the next boot.
I can now reboot. I only need to do this step because I am messing with the boot/root volume
filer>reboot
After reboot I can rename the volumes
filer>vol rename vol0 vol0_flex
And now I can safely remove the volume and the aggregate so that I can use the disks in my new traditional volume
filer> vol offline vol0_flex
Tue Jul 8 20:46:01 GMT [wafl.vvol.offline:info]: Volume 'vol0_flex' has been set temporarily offlineVolume 'vol0_flex' is now offline.
Now destroy the volume, so we can get rid of the aggregate
filer> vol destroy vol0_flex
Are you sure you want to destroy this volume? y
Volume 'vol0_flex' destroyed.
filer> aggr offline aggr0
Aggregate 'aggr0' is now offline.
filer> aggr destroy aggr0
Are you sure you want to destroy this aggregate? y
Tue Jul 8 20:46:36 GMT [raid.config.vol.destroyed:info]: Aggregate 'aggr0' destroyed.Aggregate 'aggr0' destroyed.
Now that I have destroyed the volume and aggegate, I am free to reuse those disks. ONTAP gives a warning that I will have no spare disks, and that this is risky in case of a failure.
filer> vol add vol0 2
WARNING! Continuing with vol add will result in having
no spare disk available for one or more RAID groups.
Are you sure you want to continue with vol add? y
Addition of 2 disks to the volume has been initiated. The disks need to be zeroed before addition to the volume. The process has been initiated and you will be notified via the system log as disks are added.
Once the disks are zeroed all the disks now belong to the traditional volume.