Archive for the ‘NFS’ Category

Enable NFS v4 on Netapp filers

Thursday, February 4th, 2010

If you run: “options nfs” you can see list of tunables related to NFS present in Ontap (I used Ontap 7.3.2), you’ll notice that NFS v4 is off by default

netapp> options nfs
nfs.acache.persistence.enabled on
nfs.assist.queue.limit       40
nfs.export.allow_provisional_access on
nfs.export.auto-update       on
nfs.export.exportfs_comment_on_delete on
nfs.export.harvest.timeout   1800
nfs.export.neg.timeout       3600
nfs.export.pos.timeout       36000
nfs.export.resolve.timeout   6
nfs.hide_snapshot            off
nfs.ipv6.enable              off
nfs.kerberos.enable          off
nfs.locking.check_domain     on
nfs.max_num_aux_groups       32
nfs.mount_rootonly           on
nfs.mountd.trace             off
nfs.netgroup.strict          off
nfs.notify.carryover         on
nfs.ntacl_display_permissive_perms off
nfs.per_client_stats.enable  off
nfs.require_valid_mapped_uid off
nfs.response.trace           off
nfs.response.trigger         60
nfs.tcp.enable               on
nfs.thin_prov.ejuke          off
nfs.udp.enable               on
nfs.udp.xfersize             32768
nfs.v2.df_2gb_lim            off
nfs.v3.enable                on
nfs.v4.acl.enable            off
nfs.v4.enable                off
nfs.v4.id.domain             mydomain.com
nfs.v4.read_delegation       off
nfs.v4.setattr_acl_preserve  off
nfs.v4.write_delegation      off
nfs.webnfs.enable            off
nfs.webnfs.rootdir           XXX
nfs.webnfs.rootdir.set       off

To enable NFS v4 run:
netapp> options nfs.v4.enable on

netapp> options nfs
nfs.acache.persistence.enabled on
nfs.assist.queue.limit       40
nfs.export.allow_provisional_access on
nfs.export.auto-update       on
nfs.export.exportfs_comment_on_delete on
nfs.export.harvest.timeout   1800
nfs.export.neg.timeout       3600
nfs.export.pos.timeout       36000
nfs.export.resolve.timeout   6
nfs.hide_snapshot            off
nfs.ipv6.enable              off
nfs.kerberos.enable          off
nfs.locking.check_domain     on
nfs.max_num_aux_groups       32
nfs.mount_rootonly           on
nfs.mountd.trace             off
nfs.netgroup.strict          off
nfs.notify.carryover         on
nfs.ntacl_display_permissive_perms off
nfs.per_client_stats.enable  off
nfs.require_valid_mapped_uid off
nfs.response.trace           off
nfs.response.trigger         60
nfs.tcp.enable               on
nfs.thin_prov.ejuke          off
nfs.udp.enable               on
nfs.udp.xfersize             32768
nfs.v2.df_2gb_lim            off
nfs.v3.enable                on
nfs.v4.acl.enable            off
nfs.v4.enable                on
nfs.v4.id.domain             mydomain.com
nfs.v4.read_delegation       off
nfs.v4.setattr_acl_preserve  off
nfs.v4.write_delegation      off
nfs.webnfs.enable            off
nfs.webnfs.rootdir           XXX
nfs.webnfs.rootdir.set       off

While you are at it, it is useful to enable stats to be collected on per client basis:

netapp> options nfs.per_client_stats.enable on
netapp> options nfs
nfs.acache.persistence.enabled on
nfs.assist.queue.limit       40
nfs.export.allow_provisional_access on
nfs.export.auto-update       on
nfs.export.exportfs_comment_on_delete on
nfs.export.harvest.timeout   1800
nfs.export.neg.timeout       3600
nfs.export.pos.timeout       36000
nfs.export.resolve.timeout   6
nfs.hide_snapshot            off
nfs.ipv6.enable              off
nfs.kerberos.enable          off
nfs.locking.check_domain     on
nfs.max_num_aux_groups       32
nfs.mount_rootonly           on
nfs.mountd.trace             off
nfs.netgroup.strict          off
nfs.notify.carryover         on
nfs.ntacl_display_permissive_perms off
nfs.per_client_stats.enable  on
nfs.require_valid_mapped_uid off
nfs.response.trace           off
nfs.response.trigger         60
nfs.tcp.enable               on
nfs.thin_prov.ejuke          off
nfs.udp.enable               on
nfs.udp.xfersize             32768
nfs.v2.df_2gb_lim            off
nfs.v3.enable                on
nfs.v4.acl.enable            off
nfs.v4.enable                on
nfs.v4.id.domain             mydomain.com
nfs.v4.read_delegation       off
nfs.v4.setattr_acl_preserve  off
nfs.v4.write_delegation      off
nfs.webnfs.enable            off
nfs.webnfs.rootdir           XXX
nfs.webnfs.rootdir.set       off

As you can see there are many NFS tunables on in Ontap, so you may experiment with them to get better performance, out of whcich nfs.v4.read_delegation and nfs.v4.write delegation  may be interesting to help with the performance. Also don’t forget to mount shares on your client with appropriate mount options to use NFS v4:

Solaris:

# mount -o vers=4 192.168.1.200:/vol/myvol /mnt/myvol

Linux:

# mount -t nfs4 192.168.1.200:/vol/myvol  /mnt/myvol

Some interesting articles on tuning network parameters for faster transfers can be found here http://www.psc.edu/networking/projects/tcptune/ and here http://fasterdata.es.net/TCP-tuning//tcp-wan-perf.pdf. Good overview on NFS and list of client mount options can be found here http://www.troubleshooters.com/linux/nfs.htm