我们运行这对提供文件存储的 OpenSolaris 服务器。它们以主动/被动方式运行,并通过每分钟左右的快照复制保持同步。最初,它们都运行 OpenIndiana,但由于 OI 的开发似乎停滞不前,我们决定改用开发更积极的 OmniOS。
我们首先升级了备份服务器。一切基本按计划进行,只是我无法看到通过 SMB 从系统共享的 zfs 文件系统。
文件系统上启用了 SMB 共享:
NAME PROPERTY VALUE SOURCE
zpool/data sharesmb abe=true,name=data,guestok=false local
smb/server 服务及其依赖项均在线:
fmri svc:/network/smb/server:default
name smbd daemon
enabled true
state online
next_state none
state_time Mon Mar 7 14:31:29 2016
logfile /var/svc/log/network-smb-server:default.log
restarter svc:/system/svc/restarter:default
contract_id 16253
dependency require_any/error svc:/milestone/network (online)
dependency require_all/error svc:/system/filesystem/local (online)
dependency require_all/none svc:/system/idmap:default (online)
dependency require_all/none svc:/network/smb/client:default (online)
Sharemgr 知道共享
default nfs=()
smb smb=()
* /var/smb/cvol
c$=/var/smb/cvol smb=(abe="false" guestok="false") "Default Share"
zfs smb=() nfs=()
zfs/zpool/data smb=()
/zpool/data smb=(abe="true")
data=/zpool/data smb=(guestok="false")
在 sharemgr 中启用了 SMB:
default enabled nfs
smb enabled smb
zfs enabled smb nfs
但是,当我从 Windows 机器浏览到服务器时无法查看共享,使用 进行查询时也无法查看共享smbutil view
。
与主服务器相比,备份服务器的 smbutil 输出如下:
备份:
Share Type Comment
-------------------------------
c$ disk Default Share
IPC$ IPC Remote IPC
vss$ disk VSS
基本的:
Share Type Comment
-------------------------------
c$ disk Default Share
data disk
IPC$ IPC Remote IPC
vss$ disk VSS
文件夹上的 ACL 正确:
d---------+821 Administrators@BUILTIN 2147483650 823 Mar 4 14:52 data
group:Domain Users@DOMAIN:r-x---a-R-c--s:-------:allow
共享上的 ACL 正确:
-rwxrwxrwx+ 1 root root 0 Nov 30 08:57 /zpool/data/.zfs/shares/data
everyone@:rwxpdDaARWcCos:-------:allow
我在同一个 zpool 中创建了另一个 ZFS 文件系统,并将其与 SMB 共享,并成功访问了它。这个文件系统似乎有问题。
这些文件系统使用 ZFS 版本 5。
编辑: smbutil view
不是smbutil show
编辑:我不确定这是否相关,但我也遇到了 kerberos 问题。我加入域时未生成位于 /etc/krb5/krb5.keytab 的 keytab 文件,kinit 仍然有效,但 idmap 似乎对此不太满意:
tail /var/svc/log/system-idmap:default.log
:
dc2.my.domain: additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Key table file '/etc/krb5/krb5.keytab' not found)
LDAP: dc1.my.domain:389: Local error
dc1.my.domain: Local error
dc1.my.domain: additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Key table file '/etc/krb5/krb5.keytab' not found)
LDAP: dc2.my.domain:389: Local error
dc2.my.domain: Local error
dc2.my.domain: additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Key table file '/etc/krb5/krb5.keytab' not found)
LDAP: dc1.my.domain:389: Local error
dc1.my.domain: Local error
dc1.my.domain: additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Key table file '/etc/krb5/krb5.keytab' not found)
我的 krb5.conf:
[libdefaults]
default_realm = MY.DOMAIN
[realms]
MY.DOMAIN = {
kdc = <dc1 IP>
kdc = <dc2 IP>
admin_server = <dc1 IP>
kpasswd_server = <dc1 IP>
kpasswd_protocol = SET_CHANGE
}
[domain_realm]
.my.domain = MY.DOMAIN
my.domain = MY.DOMAIN
[logging]
default = FILE:/var/krb5/kdc.log
kdc = FILE:/var/krb5/kdc.log
kdc_rotate = {
period = 1d
versions = 10
}
[appdefaults]
kinit = {
renewable = true
forwardable= true
}
我的/etc/resolv.conf:
search my.domain
domain my.domain
nameserver <dc1 IP>
运行smbadm list
表明已加入域:
[*] [DOMAIN]
[*] [MY.DOMAIN]
[+dc1.MY.DOMAIN] [<dc1 IP>]
[.] [ZFS2] [S-1-5-21-XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX]
[*] [DOMAIN] [S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXX]
该机器的名称是 ZFS2。我还可以在域控制器上看到计算机帐户。
答案1
这是文件权限问题。允许域用户访问文件系统的 ACL 显然对 OpenIndiana 来说足够了,但对 OmniOS 来说却不够。修复方法是进入chmod 555
/zpool/data 目录。
至于 Kerberos 错误,我按照以下说明进行操作:http://solariscat.blogspot.dk/2015/01/solaris-11-samba-zfs-configuration-with.html手动生成 keytab 文件。