SMB 与 ZFS 比较
ZFS 用户可以采取与管理 NFS 共享类似的方法来管理 SMB 共享。新增的 ZFS 属性 sharesmb 可用于在 ZFS 数据库上启用或禁用 SMB 共享。总体而言,其运行方式与在 NFS 中基本相同,只有几处差异比较明显。
简单示例
假设 ZFS 池 "homes" 包含 homes/user01 和 homes/user02。通过在 SMB 中设置 sharesmb 属性可以共享它们。以最简单的情况为例,zfs set sharesmb=on homes 将启动共享,而zfs set sharesmb=off homes 将停止共享。使用 sharemgr 显示结果,我们发现确实有一处不同:
$ sharemgr show -vp zfs
zfs nfs=() smb=()
homes
homes=/homes
homes_user01=/homes/user01
homes_user02=/homes/user02注意,每个数据集都指定了各自的资源名称。由于 SMB 要求使用资源名称,因此 sharesmb 这个简个的例子将通过数据集名称创建一个名称,方法是将不允许的字符(本例中为 '/')替换为下划线字符 '_'。
如果我们对上例进行扩展,使用 zfs create homes/user02/db 命令在 user02 下面创建一个新的数据集,则 sharemgr 的输出将如下所示:
$ sharemgr show -vp zfs
zfs nfs=()
homes smb=()
homes=/homes
homes_user01=/homes/user01
homes_user02=/homes/user02
homes_user02_db=/homes/user02/db
一个较为复杂的例子
有时,数据集配置可能会较前一个例子更为复杂,并且资源名称也会更加冗长。sharesmb 实现允许修改将要使用的名称。继承 sharesmb 属性的数据集将使用新名称替换数据集的前缀。举例来说,如果上例在 homes 中使用更加全局的 zpool "数据",则资源名称的前缀应为 "data_",尽管 为data/homes 数据集指定了 /homes 安装点。也就是说,最终的输出应如下所示:
$ sharemgr show -vp zfs
zfs nfs=()
homes smb=()
data_homes=/data/homes
data_homes_user01=/data/homes/user01
data_homes_user02=/data/homes/user02
data_homes_user02_db=/data/homes/user02/db建议将 /data/homes 的资源名称指定为 homes,这需要使用 sharesmb=name=homes 而不是只设置 sharesmb=on。举例来说:
$ zfs set sharesmb=name=homes data/homes
$ sharemgr show -vp zfs
zfs nfs=()
data/homes smb=()
homes=/data/homes
homes_user01=data//homes/user01
homes_user02=/data/homes/user02
homes_user02_db=/data/homes/user02/db
还可以通过 sharesmb 设置任何特定于 SMB 共享的属性。SMB 共享还支持多个资源名称。sharesmb 属性的基本语法如下所示:
sharesmb=on|off|<property-lists>
其中,<property-lists> 是 <property-list> 的逗号分隔符列表。<property-list> 是 SMB 共享属性的逗号分隔符列表,它拥有一个可选的 name=resource 伪属性。因此,如果您在设置 SMB 共享时使用 sharesmb=name=homes,name=maisons,ad-container=cn=Other,则每个数据集将与两个资源名称、homes 和 maisons 共享。
$ sharemgr show -vp zfs
zfs nfs=()
homes smb=()
homes=/homes
homes_user01=/homes/user01
homes_user02=/homes/user02
homes_user02_db=/homes/user02/db
maisons=/homes smb=(ad-container=cn=Other)
maisons_user01=/homes/user01 smb=(ad-container=cn=Other)
maisons_user02=/homes/user02 smb=(ad-container=cn=Other)
maisons_user02_db=/homes/user02/db smb=(ad-container=cn=Other)
本文翻译自:http://blogs.sun.com/dougm/entry/smb_vs_zfs
发表于 jerry [JDS] ( 四月 30, 2008 12:31 上午 ) Permalink | 评论[0]
