I had to create a new volume on a vfiler recently. This is a fairly straight-forward tasks for long term NetApp admins but I thought I’d write up the process for the next time that I forget. In this example the vfiler already exists and has been exported on a different subnet than the root vfiler, vfiler0. If you’re new to vfilers then you’ll immediately notice that once you change the vfiler context to the vfiler you want to add a volume to that you don’t have the option to create a new volume. The new volume needs to be created at the root vfiler level and then assigned to the vfiler you wish. In this example I am create a new ISO datastore on a vfiler context so that one of our tenants can have their own ISO datastore. We could present out the ISO datastore from vfiler0 but that would break the security model we worked hard to put in place.
The first thing to do is change the vfiler context and then run the vol command. You will see from this that it’s not possible to create the volume directly on the vfiler.
vfiler context <tenant-vfiler> tenant-vfiler@NTAPcontroller> vol The following commands are available; for more information type "vol help " offline options restrict status online tenant-vfiler@NTAPcontroller> vol create iso01 aggr1 200g vol: No such command "create". The following commands are available; for more information type "vol help " offline options restrict status online
So go back to the parent vfiler, vfiler0, and then create the new volume. From there you can add it to the tenant-vfiler. Before transferring the volume to the tenant-vfiler I have also changed the options to make the volume thin provisioned using the “guarantee none” setting and also set fractional_reserve to 0. The commands used to create the new volume, modify the settings and add it to the tenant-vfiler were:
tenant-vfiler@NTAPcontroller> vfiler context vfiler0 NTAPcontroller> vol create iso01 -s volume aggr1 200g NTAPcontroller> vol options iso01 guarantee none NTAPcontroller> vol options iso01 fractional_reserve 0 NTAPcontroller> vol status iso01 Volume State Status Options iso01 online raid_dp, flex create_ucode=on, convert_ucode=on, mirrored guarantee=none, fractional_reserve=0 64-bit Volume UUID: 0df82cec-fdb8-11e4-a27a-123478563412 Containing aggregate: 'aggr1' NTAPcontroller> vfiler add tenant-vfiler /vol/iso01 WARNING: reassigning storage to another vfiler does not change the security information on that storage. If the security domains are not identical, unwanted access may be permitted, and wanted access may be denied. Tue May 19 09:47:47 EST [NTAPcontroller:cmds.vfiler.path.move:notice]: Path /vol/iso01 was moved to vFiler unit "tenant-vfiler". Tue May 19 09:47:47 EST [NTAPcontroller:export.auto.update.disabled:warning]: /etc/exports was not updated for iso01 when the vol destroy command was run. Please either manually update /etc/exports or copy /etc/exports.new to it. NTAPcontroller>