In the general theme of Oracle Solaris 11 as admins we should find that command line tools should stream line the process of tasks and alleviate the need of additional edits to configuration files. In this tutorial we look at how we can configure NFS shares from the command line with the ZFS command and ensure the services are started to support the shares.
Using the command svcs(/usr/sbin/svcs) we can display information about service instances from the services repository. To display all services including those that are disables we can use the –a option.
svcs –a | grep nfs
Here we are searching for nfs in the service instance name. The only service running that matches that name is the fedfs client; we can see from the output that the NFS server is not running and is disabled.
If the NFS server is not running then, or course, there will be no shares. We can verify this and later we will be able to use the same command to show the ZFS shares have been exported.
showmount –e localhost
Any shares would e listed in the file /etc/sfs/sharetab
Creating simple NFS shares with ZFS data sets
If we just need an NFS share and it is acceptable to be read-writable by all hosts that cn connect we can use the option sharenfs=on.
zfs create –o mountpoint=/share –o sharenfs=on rpool/share
With the data set created and nothing more than this in place; when we recheck the services, shares and sharetab file now indicate that NFS is fully functional.
First let’s recheck the svcs command
svcs –a | grep nfs
The NFS server and associated services are now configured and running and if we further check the showmount command and the sharetab file; these too show that the directory /share is now an NFS export or share and set to rw.
If the NFS share needs to be disabled whilst the data set is still operational properties can be reversed or changed
zfs set sharenfs=off rpool/share
If more control over the NFS exports is required this can be set with ZFS. These are set using the share option and a comma list of share options
zfs set share=name=share,path=/share,prot=nfs,firstname.lastname@example.org, rw=192.168.1.1:192.168.1.2 rpool/share
- set share=name=<sharename> start the properties list with the share name
- email@example.com The at symbol indicates that this is a partial network address and includes all host on the 192.168.1 network in this case
- rw=192.168.1.1:192.168.1.2 As we have multiple entries in the rw list the list is delimited by the colon. The @ symbol is not needed as a complete IP address is used.
Setting the share properties does not re-enable the share; this has to be set with
set sharenfs=on rpool/share