我的 ZFS SMB 共享在哪裡?
我們執行這對提供文件儲存的 OpenSolaris 伺服器。它們每分鐘左右通過快照複製執行主動/被動並保持同步。最初,他們都執行 OpenIndiana,但由於 OI 的開發似乎停滯不前,我們決定切換到開發更積極的 OmniOS。
我們首先升級了備份伺服器。一切都按計劃進行,除了我看不到我的 zfs 文件系統通過 SMB 從系統共享。
在文件系統上啟用了 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。我還可以在域控制器上看到電腦帳戶。
這是文件權限的問題。允許域使用者訪問文件系統的 ACL 顯然對於 OpenIndiana 來說已經足夠了,但對於 OmniOS 來說就不夠了。修復是針對
chmod 555
/zpool/data 目錄。至於 kerberos 錯誤,我按照http://solariscat.blogspot.dk/2015/01/solaris-11-samba-zfs-configuration-with.html中的說明手動生成密鑰表文件。