Solaris

我的 ZFS SMB 共享在哪裡?

  • March 16, 2016

我們執行這對提供​​文件儲存的 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中的說明手動生成密鑰表文件。

引用自:https://serverfault.com/questions/762160