RedBear
Explorer
- Joined
- May 16, 2015
- Messages
- 53
Share Types for datasets. Why choose one over the others?
Before I wrote this up I did a search to see if this question has been answered adequately before. As far as I can tell, it really hasn't. The only information I encountered was a couple of brief comments by a user called SweetAndLow to the effect that A) ZFS datasets can sort of be thought of like filesystems, or maybe partitions, on non-ZFS systems, and B) that "Share Type" simply determines what sort of permission structure the dataset uses natively, such as POSIX permissions versus Windows-style ACLs. While this answer may be technically correct and somewhat enlightening, I don't believe it even begins to answer the question people really want answered when they ask "What is this 'Share Type' thing in the Edit Options dialog for my dataset, and why is it separate from all the actual AFS/CIFS/NFS/WebDAV/iSCSI 'Sharing' stuff?"
No, the real question that needs answering is, of course, "How does my choice of Share Type for a dataset _interact_ with my choice(s) of protocol(s) to use to share that dataset?"
It must be noted that from my perspective (and, I think, many typical computer users) FreeNAS and FreeNAS users seem to come at this sharing thing kind of ass-backwards. I've seen it recommended multiple times to "create one dataset per share", and witnessed the "wizard" create a dataset automatically with the same name as I specified for the share, obviously intended only to be used with that sharing protocol. Nothing about this makes sense to me at the moment. From sharing between Macs and PCs starting with Win98 and OS 9, to working with consumer NAS devices for years, to setting up an OpenBSD server many years ago sharing some common office files via both Netatalk and Samba, I have always understood that it is the job of the software doing the actual sharing to translate transparently between the permission structures of the sharing protocol and the sharing clients, and the permission structures of the underlying filesystems being shared. Whether the underlying filesystem is UFS, Ext3, NTFS, FAT32, HFS+, BeFS, ZFS or what-have-you.
Typically, when setting up a folder to be shared from OS X or a consumer NAS, you simply choose the folder to share and then check some boxes for which protocols you wish to use to share the folder. Or, frequently, the protocols simply apply to everything on that machine that is chosen for sharing, and aren't even tied to specific folders at all. By default on OS X shared folders are shared via both AFP and SMB, unless one protocol is turned off by the user.
From this perspective it is quite confusing to be asking the user setting up a FreeNAS server whether a dataset (or what a typical new user will see as a "folder to be shared") is a UNIX, Windows, or Mac "Share Type". What share type should be chosen for WebDAV sharing, or iSCSI? What if I want to use both AFP and CIFS to share the same dataset on a mixed Mac/PC network? This is quite common, in my experience, in small offices. There is certainly zero information in the GUI that would help the typical user to understand which choice to make under any given circumstance. The user guide currently has this to say on the matter:
"Share Type - drop-down menu - select the type of share that will be used on the dataset; choices are UNIX for an NFS share, Windows for a CIFS share, or Mac for an AFP share"
Quite unhelpful if one is used to sharing the same data via multiple protocols. What is the benefit to creating a single dataset per share? Is there some kind of negative interaction or bug that will be encountered by sharing clients if multiple protocols are used to share the same dataset? What if the "wrong" share type is chosen, or the "wrong" sharing protocol is used? What difference does it make? What problems might be encountered? Why is it recommended to have one dataset per share? Is there another solution to sharing the same common set of files to users of different platforms? Just stick with CIFS and make the best of it?
I'm hoping this issue can be thoroughly fleshed out within just a few posts from knowledgeable FreeNAS admins, and this thread can become a solid resource for all new FreeNAS users that come here looking for an explanation of the importance of this dataset option and how to make the right choices for their individual use cases. Perhaps it could even be stickied at some point, or the information added to a new-user guide, if we come up with some good answers.
I appreciate any input anyone has on this issue.
Before I wrote this up I did a search to see if this question has been answered adequately before. As far as I can tell, it really hasn't. The only information I encountered was a couple of brief comments by a user called SweetAndLow to the effect that A) ZFS datasets can sort of be thought of like filesystems, or maybe partitions, on non-ZFS systems, and B) that "Share Type" simply determines what sort of permission structure the dataset uses natively, such as POSIX permissions versus Windows-style ACLs. While this answer may be technically correct and somewhat enlightening, I don't believe it even begins to answer the question people really want answered when they ask "What is this 'Share Type' thing in the Edit Options dialog for my dataset, and why is it separate from all the actual AFS/CIFS/NFS/WebDAV/iSCSI 'Sharing' stuff?"
No, the real question that needs answering is, of course, "How does my choice of Share Type for a dataset _interact_ with my choice(s) of protocol(s) to use to share that dataset?"
It must be noted that from my perspective (and, I think, many typical computer users) FreeNAS and FreeNAS users seem to come at this sharing thing kind of ass-backwards. I've seen it recommended multiple times to "create one dataset per share", and witnessed the "wizard" create a dataset automatically with the same name as I specified for the share, obviously intended only to be used with that sharing protocol. Nothing about this makes sense to me at the moment. From sharing between Macs and PCs starting with Win98 and OS 9, to working with consumer NAS devices for years, to setting up an OpenBSD server many years ago sharing some common office files via both Netatalk and Samba, I have always understood that it is the job of the software doing the actual sharing to translate transparently between the permission structures of the sharing protocol and the sharing clients, and the permission structures of the underlying filesystems being shared. Whether the underlying filesystem is UFS, Ext3, NTFS, FAT32, HFS+, BeFS, ZFS or what-have-you.
Typically, when setting up a folder to be shared from OS X or a consumer NAS, you simply choose the folder to share and then check some boxes for which protocols you wish to use to share the folder. Or, frequently, the protocols simply apply to everything on that machine that is chosen for sharing, and aren't even tied to specific folders at all. By default on OS X shared folders are shared via both AFP and SMB, unless one protocol is turned off by the user.
From this perspective it is quite confusing to be asking the user setting up a FreeNAS server whether a dataset (or what a typical new user will see as a "folder to be shared") is a UNIX, Windows, or Mac "Share Type". What share type should be chosen for WebDAV sharing, or iSCSI? What if I want to use both AFP and CIFS to share the same dataset on a mixed Mac/PC network? This is quite common, in my experience, in small offices. There is certainly zero information in the GUI that would help the typical user to understand which choice to make under any given circumstance. The user guide currently has this to say on the matter:
"Share Type - drop-down menu - select the type of share that will be used on the dataset; choices are UNIX for an NFS share, Windows for a CIFS share, or Mac for an AFP share"
Quite unhelpful if one is used to sharing the same data via multiple protocols. What is the benefit to creating a single dataset per share? Is there some kind of negative interaction or bug that will be encountered by sharing clients if multiple protocols are used to share the same dataset? What if the "wrong" share type is chosen, or the "wrong" sharing protocol is used? What difference does it make? What problems might be encountered? Why is it recommended to have one dataset per share? Is there another solution to sharing the same common set of files to users of different platforms? Just stick with CIFS and make the best of it?
I'm hoping this issue can be thoroughly fleshed out within just a few posts from knowledgeable FreeNAS admins, and this thread can become a solid resource for all new FreeNAS users that come here looking for an explanation of the importance of this dataset option and how to make the right choices for their individual use cases. Perhaps it could even be stickied at some point, or the information added to a new-user guide, if we come up with some good answers.
I appreciate any input anyone has on this issue.