.png)
我正在設定一個家庭NAS,以此為契機熟悉FreeNAS
我的規格:
FreeNAS-11.3-U2
Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz。
16GB DDR3 記憶體。
作業系統:運作在 SSD ADATA SP600 250GB 上。
我的泳池:
- NAS01。 /mnt/NAS012x 2TB 鏡像w/ 1 個備用空間(真正的備份/NAS 空間)。鏡像的2個開發者是WDC WD2003FZEX;備用的是 ST2000DL003
- S500。 /mnt/S5001 個 500GB(刮痕空間)。該磁碟是ST3500320AS 還有一個第6個1TDB磁碟等待使用...
我最初將另一台電腦上的約 80GB 資料備份到外部硬碟上的 zfs 資料集。後來才知道這樣的盤是不能導入的。此資料集具有在原始計算機中建立的快照。
然後,我設法將資料集傳輸到 pool2 中,因為 S500/pre2012 安裝在 /mnt/pre2012 上(老實說,現在不記得我是如何做到的,但必須透過 zpool 和 ifs 通過 cli)。
在某些時候,我使用 azfs send | recv
將(我可以說複製嗎?)S500/pre2012@snp1 傳輸到 NAS01/pre2012 下的 pool1 - 對我來說意外的是,它安裝在 /mn/mnt/pre2012 下。
在測試並稍微熟悉 SMB 共享並檢查我是否可以讓它與我所有的 MAC 和 Linux 機器一起工作之後,我決定是時候根據我計劃存儲的內容和方式將池 1 (NAS01) 組織到不同的數據集中用它。我使用 GUI 創建了這些資料集。
結果是根資料集的以下結構(根據zfs list
):
NAS01/PRIVATE 55.0G 1.62T 20.5G /mnt/NAS01/PRIVATE
NAS01/PRIVATE/Documents 573M 1.62T 573M /mnt/NAS01/PRIVATE/Documents
NAS01/PRIVATE/Fotos 33.9G 1.62T 33.9G /mnt/NAS01/PRIVATE/Fotos
NAS01/PUBLIC 16.9G 1.62T 96K /mnt/NAS01/PUBLIC
NAS01/PUBLIC/Library 57.6M 1.62T 57.6M /mnt/NAS01/PUBLIC/Library
NAS01/PUBLIC/Movies 15.5G 1.62T 15.5G /mnt/NAS01/PUBLIC/Movies
NAS01/PUBLIC/Music 1.05G 1.62T 1.05G /mnt/NAS01/PUBLIC/Music
NAS01/PUBLIC/Software 299M 1.62T 299M /mnt/NAS01/PUBLIC/Software
NAS01/pre2012 71.3G 1.62T 71.3G /mnt/mnt/pre2012
S500 268G 178G 136K /mnt/S500
S500/SharedScratch 196G 178G 196G /mnt/S500/SharedScratch
S500/pre2012 71.4G 178G 71.3G /mnt/pre2012
SharedScratch 在我的網路中的 SMB 下運作良好,而我僅使用來賓帳戶存取權和無人:無人擁有權。但那是另一個故事了。
目前,S500/pre2012的結構(或更確切地說,它的安裝點)是:
/mnt//pre2012/120/30/home/
/mnt//pre2012/120/30/MatLab6.5/
/mnt//pre2012/120/80/home/
/mnt//pre2012/120/80/O/
/mnt//pre2012/120/80/usr/
/mnt//pre2012/250/48/home/
/mnt//pre2012/250/80win/
它還有其他資料夾,例如我設法mv
(不是很痛苦)到 NAS01/PUBLIC/Music 的 Music。
S500/pre2012 下的所有這些資料夾均屬於使用者 擁有admin
。這是我創建的唯一的附加用戶。
我的問題似乎與權限問題有關,儘管我在發出以下命令時使用了 root 權限:
root@freenas[/mnt/S500/pre2012]#mv 120 /mnt/NAS01/PRIVATE/Documents
mv: chmod: /mnt/NAS01/PRIVATE/Documents/120/30/home/msantos/Reports/Apoptosis: Operation not permitted
mv: chmod: /mnt/NAS01/PRIVATE/Documents/120/30/home/msantos/Reports/.Designability.March.2005.tex.swp: Operation not permitted
mv: /mnt/NAS01/PRIVATE/Documents/120/30/home/msantos/Reports/NMR: File exists
mv: /bin/cp 120 /mnt/NAS01/PRIVATE/Documents/120: terminated with 1 (non-zero) status
這資料夾的權限是:
root@freenas[/mnt/S500/pre2012/120]# ll ; ll /mnt/NAS01/PRIVATE/Documents/120
total 26
drwxr-x---+ 4 admin admin uarch 4 Sep 22 21:03 ./
drwxr-x---+ 4 admin admin uarch 4 Sep 22 21:03 ../
drwxr-x---+ 3 admin admin uarch 3 Sep 22 21:14 30/
drwxr-x---+ 5 admin admin uarch 5 Sep 14 15:56 80/
total 2
drwxrwx---+ 3 root admin uarch 3 Sep 22 21:57 ./
drwxrwx---+ 3 admin admin uarch 4 Sep 22 21:57 ../
drwxrwx---+ 3 root admin uarch 3 Sep 22 21:57 30/
正如您所看到的,該舉動未能複製所有內容,儘管它確實複製了一些內容!更令人擔憂的是,這是一個舉動!
這裡有一些目標資料夾的權限:
root@freenas[~]# ls -lF /mnt/NAS01
total 9
drwxr-xr-x+ 5 admin admin 6 Sep 22 19:16 PRIVATE/
drwxrwx---+ 6 root wheel 6 Sep 22 15:30 PUBLIC/
root@freenas[~]# ls -lFd /mnt/NAS01/*/*
drwxrwx---+ 3 admin admin 4 Sep 22 21:57 /mnt/NAS01/PRIVATE/Documents/
drwxrwx---+ 15 admin admin 19 Sep 22 20:37 /mnt/NAS01/PRIVATE/Fotos/
drwxrwx---+ 2 nobody admin 4 Sep 22 21:03 /mnt/NAS01/PUBLIC/Library/
drwxrwx---+ 5 nobody admin 38 Sep 22 20:13 /mnt/NAS01/PUBLIC/Movies/
drwxrwx---+ 17 nobody admin 36 Sep 22 20:41 /mnt/NAS01/PUBLIC/Music/
drwxrwx---+ 9 nobody admin 9 Sep 22 21:09 /mnt/NAS01/PUBLIC/Software/
所有這些 PRIVATE 和 PUBLIC 子資料集都透過 SMB 共享。第一個應該只有管理員使用者可以存取。因此就有了這些權限/所有權。
我的問題:我怎麼能可靠地使用mv
此處來填充這些資料集?我不明白如何使用 zfs send/recv 將資料複製到特定的資料集/資料夾中。這就是為什麼最初當我嘗試時,我最終在 /mnt/mnt/ 下得到了 pre2012 的副本,GUI 不允許我將其用作共享。因此我使用mv
.
此外,由於我試圖將原始資料集的不同資料夾排序到不同的 dst 資料集中,因此我看不到 zfs send/recv 如何做到這一點。那可能嗎?
此時我有點沮喪。要么我做的事情完全錯誤,要么我錯過了 FreeNAS 應該如何使用的基本概念......或者兩者兼而有之:-/ 無論如何,我沒想到用數據填充伺服器會如此複雜。
再說一遍,這是我剛開始使用 FreeNAS 1.5 週之後的事。很抱歉這篇文章很長。
我現在被困住了。任何提示將不勝感激。
提前致謝。
答案1
解決了.... 有點。
從我從諸如此類的線程中學到的這,這和這這可能是多種問題的結合:
- 建立資料集時我選擇作為類型
SMB
而不是Generic
。對於 samba 共享來說這是可以的,但需要付出一定的代價:FreeNAS 立即為其分配一種case sensitive
模式,並且無法更改它。 - chmod 與 smb acl:在 cli 級別 (chmod) 所做的事情與 GUI 所做的事情不同/完全相容。
- 如果使用
rsync
您可能想將其用作rsync -A --no-perms ...
。我不知道這不是一個選項(例如,在 OSX 中不可用)。所做-A
的就是好好處理 ACL 條目。 - 確保您 sudo 為 root
sudo su -l
我的最終解決方案是重做一些我確實需要區分大小寫的資料夾,例如,PRIVATE/Documents
並將其作為 NFS 共享共享版本 4 並強制所有使用者將其安裝為(在我的例子中您指派給此共用的使用者名稱 -admin);團體也一樣。
這允許將資料集類型指定為generic
和 then case sensitive
。它似乎也比 SMB 共享更快。
這可能不是最佳的。但由於我主要在 Mac 和 Linux(很少是 Windows)上使用它,所以看起來還不錯。
我透過 Mac 上的 cli 安裝了共用:mount -t nfs nas:/mnt/NAS01/PRIVATE/Documents ~/Desktop/NFS
。我第一次沒有嘗試使用Finder
( )(請參閱下面的 PS)。Go to Server...
翻譯Finder
那個桌面資料夾NFS -> Documents
。然而在 cli 上,您仍然將其視為NFS
.
PS:這是我第二次嘗試設定 NFS 共享並使用 Mac 用戶端,到目前為止一切似乎都很好。我第一次沒有看到奇怪的問題,當將文件複製到共享並開始創建它的無限副本時,查找器陷入無限循環