
我有以下 ZFS 結構:
% sudo zfs list 16:03:46
NAME USED AVAIL REFER MOUNTPOINT
zpool1 1.18T 5.86T 544K legacy
zpool1/home 1.18T 5.86T 96K legacy
zpool1/home/alice 12.6G 5.86T 12.6G /zshare/zpool1/home/alice
zpool1/home/bob 1.17T 5.86T 1.02T /zshare/zpool1/home/bob
zpool2 2.22T 4.82T 188K legacy
zpool2/media 1.13T 4.82T 1.13T /zshare/zpool1/home/media_root
出於效能和儲存原因,zpool1
請勿zpool2
共用任何磁碟。我希望鮑伯和愛麗絲都可以參觀media_root
.但鮑伯和愛麗絲不允許存取彼此的文件。
- 我無法將/zshare/zpool1/home 作為資料夾共享,因為它屬於根分區,該分區很小,如果alice 或bob 想要將任何大於60Gb 的內容複製到他們的資料夾中,它將失敗,並顯示“空間不足”,即使他們的主資料夾有它(Windows 計算託管 SMB 共用資料夾的磁碟機的空間)。
- 我無法將兩個資料夾共用給兩個使用者的工作站,因為 Windows 不允許您從相同 IP 位址安裝多個網路磁碟機...
- 我無法符號鏈接
media_root
,/alice
因為/bob
在 Windows 上它不會遵循符號鏈接,而且我似乎無法讓硬鏈接跨 Z 文件系統工作。
我真的不想將所有文件複製到media_root
alice 和 bob 的子資料夾中,並使用 crontab 樣式的 rsync 來使它們彼此更新並在 zpool2 上更新,但是還有什麼其他選項呢?
我確信有某種方法可以在 Ubuntu 20.04 上使用 ZFS 來實現這一點,但是如何實現呢?
編輯:有問題的網路沒有 DNS。
答案1
我無法將兩個資料夾共用給兩個使用者的工作站,因為 Windows 不允許您從相同 IP 位址安裝多個網路磁碟機...
這不是真的。您可以安裝任意數量的網路磁碟機(從和到同一台機器),因為您有免費信件。您甚至可以使用普通的 UNC 路徑或掛載深度路徑名稱(例如net use t: \\server\share\bobs\eyes\only
)只需建立您需要的共用並相應地使用它們。
但鮑伯和愛麗絲不允許存取彼此的文件。
這是文件/資料夾權限的問題。
答案2
我認為...一種方法是為有權訪問共用資料夾的使用者設定一個群組,然後設定共用資料夾的權限,以便只有該群組的成員才能存取它。
例如,您可以建立一個名為「media_access」的群組並將 Alice 和 Bob 新增到其中。然後,您可以設定 media_root 資料夾的權限,以便只有 media_access 群組的成員才能存取它。為此,您需要執行以下命令:
chgrp media_access /zshare/zpool1/home/media_root
chmod g+rwx /zshare/zpool1/home/media_root
這會將 media_root 資料夾的群組擁有權變更為 media_access 群組,並授予該群組成員對該資料夾的讀取、寫入和執行權限。
設定權限後,您應該能夠從 Alice 和 Bob 的工作站存取共用資料夾。但是,他們只能存取共用資料夾中的文件,而無法存取各自主目錄中的彼此文件。
答案3
最後,我必須為網頁啟用並託管 DNS 才能使其正常工作。
範例:
在 Windows 上對應兩個網路驅動器,如下所示
\\192.168.11.1\share001
\\192.168.11.1\share002
失敗,但是使用 DNS 時
\\alice\share001
\\bob\share002
^ 上面的方法有效,即使alice
&都bob
解析為192.168.11.1
.