The Last Time...
The last time ZFS was covered, an description of overall features were covered. How to use all of those features was uncovered. This post will try to cover some of the other features.
ZFS Sharing Overview
ZFS centralizes all directory sharing into a single command structure and removes the needs to manage arcane configuration files to deal with issue such as configuration, status, and persistency.
ZFS Sharing Protocols
The new ZFS suite offers protocol sharing of iSCSI, NFS as well as SMB(CIFS). There is a catch to this: the ZFS host must support a kernel implementations of the protocols - SMB(CIFS) is only supported under more recent releases of OpenSolaris and iSCSI is only supported under the Solaris families.
ZFS Sharing Stopping and Starting
ZFS uses a property to determine whether a filesystem mount is going to be shared or not.
To stop NFS sharing of a ZFS filesystem.
servera/root$ zfs set sharenfs=off u201To start an NFS sharing of a ZFS filesystem.
servera/root$ zfs set sharenfs=on u201Sharing Status
On the same server, one can check the "share" command to see what is being shared from all protocols, persistent or not. A listing of domestic sharing protocols that can be checked are in a configuration file on the sharing host
servera/admin$ cat /etc/dfs/fstypesOn a foreign server, one can check to see what is being shared (via NFS protocol), persistent or not. A listing of foreign protocols that can be checked are in a configuration file on the remote host.
nfs NFS Utilities
autofs AUTOFS Utilities
cachefs CACHEFS Utilities
- /u000 anon=60001,rw=servera "" - /u201 rw ""
serverb/admin$ cat /etc/dfs/fstypes nfs NFS Utilities autofs AUTOFS Utilities cachefs CACHEFS UtilitiesFor the share and dfshares command, if no protocol is specified, then the "nfs" protocol is the default. A ZFS filesystem shared over NFS can be done using the "share" and "dfshares" command.
serverb/admin$ dfshares servera RESOURCE SERVER ACCESS TRANSPORT servera:/cdunix servera - - servera:/u201 servera - -
Sharing and Persistence
In most historic POSIX systems, there is a file referred to as "sharetab" (or some derivative of it) to review the sharing of filesystems. This is effective against any underlying filesystem (i.e. UFS, VxFS, ZFS, etc.) In the example below, cdunix is not on a ZFS filesystem.
servera/admin$ cat /etc/dfs/sharetab /u000 - nfs rw /u201 - nfs rwIf one is running a pure ZFS environment, persistence is held as a property. You can see the status of the ZFS file share through a ZFS command.
servera/admin$ zfs get sharenfs u201Checking all shared protocols through ZFS is also possible, through parsing "all" properties option.
NAME PROPERTY VALUE SOURCE
u201 sharenfs on local
servera/admin$ zfs get all grep shareChecking the share status for all protocols from a foreign server is not as elegant. Individual protocols must be used, such as the "dfshares" command.
u201 sharenfs on default
u201 shareiscsi off default
u201 sharesmb off default