原生SMB / CIFS通过ZFS或Samba来代替

我完全不了解ZFS上的本地SMB / CIFS 。 这个wiki文档没有提到性能差异。 两者之间有什么样的性能差异?

根据我的经验,内核模式服务器与我的客户端进行了桑巴舞。 如果性能是您最关心的问题,请跳过桑巴舞。 也就是说,Solaris内核模式的SMB / CIFS服务器有一些限制,最值得注意的是:

  • 只在全局区域运行。 Samba可以同时运行在多个独立的区域和/或全局区域中。
  • 共享发生在文件系统级别,而不是目录级别。 因此,对于新的共享, zfs create pool/fs一个新的zfs文件系统zfs create pool/fs ,复制数据并共享它(而不是共享一个现有的目录)
  • 共享中没有以下符号链接,除非它们位于相同的文件系统上。
  • 没有孩子坐骑。 如果共享文件系统,则不共享子文件系统。 (例如两个文件系统,pool / fs和pool / fs / subfs,如果你共享了pool / fs,你将无法访问pool / fs / subfs的内容,而不会单独分享它,它会显示为目录通过SMB,但将无法访问。
  • 没有一个域控制器/ AD主,WINS服务器和其他Samba的好处

当然不会执行跨协议locking(当使用内核服务器设置nbmand=on时,通过NFSlocking的文件也被locking),并且不执行VSS集成,因此快照显示在Windows的“上一个属性窗口中的版本选项卡。

如果您可以忍受内核模式服务器的限制,并且不需要区域级别的隔离,那么我认为这是一条路。 如果你现在是一个沉重的Linux / Samba用户,并且喜欢它的一些独特function,请随时坚持下去。 另外值得注意的是,如果您正在运行SmartOS,那么您已经为您select了它们,这使得在全局区域内运行东西几乎是不可能的(有充分的理由),所以如果您需要使用OmniOS,OpenIndiana或Oracle Solaris讨厌桑巴。

本地SMB服务器的另一个问题:它不会共享通过NFS安装的远程文件系统。 现在在最好的时候听起来似乎是一个糟糕的主意,但是对于我们来说,例如,让一些Web开发区域可以被人们访问,这是一个简单的方法。 我们并不担心文件locking问题,因为networking开发人员(a)主要使用Dreamweaver,它使用自己的文件检入/检出方法; (b)一个相当小的紧密团体; (c)一般负责没有太多重叠的地区。 我想不出有多less次开发人员重写了其他文件(通常文件locking没有帮助)。

因此,发现这个shiny的新服务器不会高兴地分享这些文件是有点意外的,特别是因为在讨论新的SMB服务器的各个网站中似乎没有强调这一点。 啊,那么,如果有一件事我学习了Solaris,那就是:“事情改变了”。 🙂

而且,我同意,除非这些需求对您的商店至关重要,否则本地中小型企业服务器是要走的路。 它缺乏Samba的灵活性,但它似乎一旦build立就“正常工作”,而且性能似乎也不错。

我没有硬编码,但我可以说,本地SMB在内核空间运行。 Samba在用户空间运行。 尽pipe在内核空间中运行并不能保证速度更快,但是所有其他的内核空间代码将会更快。

我知道内核smb的configuration和pipe理比samba更容易。 用户群的规模是多less?