小刻也能看懂的Unraid系統使用手冊:基礎篇

FrozenSky 發表於 2021-07-19
人工智慧

小刻也能看懂的Unraid系統使用手冊

基礎篇

UNRAID_logo

Unraid系統簡介

Unraid 的本體其實是 Linux,它主要安裝在 NAS 和 All in One 伺服器上,經常可以在 Linus 的視訊裡看到 Unraid 的身影。與群暉DSM系統相比,Unraid 的硬體相容性更好,原生支援 Docker 和 VM 虛擬機器,硬體直通的設定十分方便,這讓 Unraid 可以發揮硬體的極致效能。在國外 Unraid 的使用者還是相當多的,它內建的外掛中心可以下載的外掛和 Docker 功能種類都十分豐富,可以滿足使用者不同的需求。

關於資料的安全儲存,通過 Unraid 這個系統的命名也可以看出來它是不支援 RAID 的。Unraid 系統採用了校驗盤的機制來保證資料安全,最多支援 2 塊磁碟作為校驗盤,實現了類似於 RAID5/6 的冗餘模式。例如,當插入 2塊磁碟作為校驗盤,就可以在儲存序列內同時有兩塊硬碟損壞的極端情況下確保資料不會丟失。

Unraid 不是免費的,它的收費模式是按照系統內的儲存裝置數量(不包含引導U盤)分為 Basic, Plus, Pro 三種,一次性買斷制,價格分別為 59, 89, 129 (美元)。最便宜的 Basic 版本支援最多 6 個儲存裝置,Plus 版本支援 12 個,Pro 版本不限制。個人使用 Basic 版本已經足夠了,即使後期需要升級,也可以通過補差價的方式升級到更高版本。並且 Unraid 提供了 30 天的全功能試用,可以體驗一下再決定是否購買。

在本文撰寫過程中,Unraid 官方宣佈已經支援使用支付寶作為付款選項來購買 Unraid OS 了!他們還將 Unraid 網站翻譯為了中文,建立了中文線上社群,並實現了整個 Unraid OS 的中文化!驚不驚喜,意不意外?只是筆者的文章是按英文版寫的,都寫一半了...不過這不重要!重要的是有了官方中文社群,國內很多使用 Unraid OS 的小夥伴有了互相交流的地方!

Unraid系統安裝

1.準備工作

一個U盤

Unraid 的安裝方式是通過U盤進行安裝,且安裝完成後,U盤將作為啟動裝置引導 Unraid 啟動。需要注意,日後 Unraid 的啟用需要U盤有唯一的 GUID (Globally Unique Identifier) 全域性唯一識別符號,而一些雜牌U盤很可能使用相同的 GUID 或者 GUID 是一串無意義的數字,這會導致系統無法啟用。Unraid 官方推薦使用 2GB 以上大小的高質量品牌U盤,如 PNY, Lexar, SanDisk, Samsung, 同時在官方指南中提到不建議使用 USB3.1 的U盤。

2.製作啟動盤

有兩種方式製作 Unraid 啟動盤,第一種使用官方提供的 USB Creator 工具,第二種需要手動下載系統映象寫入U盤。這裡推薦使用官方的工具來製作啟動盤。

(1) 使用 USB Flash Creator 工具

  • 下載 USB Flash Creator,下載地址:Unraid | Download Unraid Server OS
  • 插入準備好的U盤
  • 執行 USB Flash Creator,可以在軟體介面選擇安裝的系統版本號,這裡推薦使用 Stable 穩定版。
  • 點選 Customize,可以自定義伺服器的名稱,IP地址。這裡也可以先不設定。
  • 是否 Allow UEFI Boot 需要根據個人的主機板進行選擇。
  • 選擇正確的U盤後,點選 Write 按鈕,工具會自動下載系統映象並寫入。
  • 寫入完成後,關閉軟體,拔出U盤。

因為工具需要預先下載系統映象,對於網路條件不好(指網路不科學不文明)的地區,可能下載時速度會非常緩慢,需要耐心等待一下。其實,Unraid 提供了系統映象的離線下載,在官網下載頁面可以下載到不同版本的系統映象,只需在工具上選擇 Local Zip,然後選擇下載好的映象檔案再進行寫入即可。

Unraid_USB_Flash_Creator

(2) 手動製作啟動盤

  • 插入準備好的U盤,將其格式化成 FAT 檔案系統。修改U盤卷標為 "UNRAID" 注意要求大寫。
  • 按照(1)中的方法到官方網站下載系統映象,並解壓壓縮包內的所有檔案到U盤根目錄。
  • 在U盤根目錄的檔案中找到 make_bootable 指令碼,右擊,選擇以管理員身份執行。
  • 耐心等待,直到出現 complete 提示後,製作完成,可以拔出U盤。

雖然手動製作啟動盤的步驟看起來更少更簡單,但其實坑還是很多的,比如不能設定是否使用 UEFI 啟動。並且對於 Linux 和 MacOS 系統使用者,操作還是相對複雜的(具體可以查詢官網安裝指南)。推薦使用(1)中的啟動U盤製作工具來進行製作。

3.初始化 Unraid

在這裡小刻使用一臺組裝好的電腦來安裝 Unraid 系統,並作為 NAS 來使用。這臺電腦需要至少安裝一塊硬碟用來初始化 Unraid 序列。

  • 第一次初始化需要連上顯示器,插入製作完成的啟動U盤,插入網線、鍵鼠,開機。
  • 進入 BIOS 介面修改啟動裝置為 USB 裝置。儲存並退出。
  • 重啟後不出意外的話會顯示 Unraid 啟動選單。選擇第一項 Unraid OS,啟動系統。
  • 等待系統載入完成後,會提示 IPv4 地址用於登入系統的管理後臺。

至此 Unraid 初始化已經完成,記錄下管理地址後,就可以拔掉顯示器,使用區域網內的其他電腦來遠端管理 Unraid 系統了。基本上所有的系統設定都可以通過 Unraid 網頁端的介面來進行,是不需要外接顯示器的。需要注意 Unraid 通過U盤引導,所以啟動U盤可不能拔出來。

Unraid_StartupMenu

Unraid_Init

Unraid系統啟用

在瀏覽器輸入管理IP訪問 Unraid 控制檯,會提示購買 KEY,不過在購買之前,要先確認 Unraid 的系統時間和 DNS 伺服器的設定是否正確。

Unraid_Registration

點選 Important 提示中的 server time 設定一下系統時間,如圖所示,推薦開啟 NTP 伺服器用來自動同步時間。Unraid 預設的 NTP 伺服器是國外的,可以替換為國內的 NTP 伺服器,下面是一些 NTP 伺服器地址:

阿里雲NTP伺服器騰訊雲NTP伺服器微軟NTP伺服器

Unraid_DateAndTime

點選 Important 提示中的 DNS server 連結,對 DNS 伺服器進行設定。

Unraid_DNS_Server_Setting

設定完成後,可以點選 PURCHASE KEY 購買,現在 Unraid 已經支援支付寶付款了。當然也可以點選 GET TRIAL KEY 開始 30 天的試用,試用期間的系統功能和 Pro 版本相同沒有限制。

獲取試用 KEY 的時候有可能出現即使修改到正確的系統時間也提示 Error 的問題。這是由於計算機主機板的時間錯誤所引起的,需要進入 BIOS 裡把主機板的時間修改為正確的時間。如果重啟後主機板時間仍然錯誤,則需要檢查更換主機板上的鈕釦電池。

DASHBOARD

成功啟用後,自動跳轉到了 MAIN 介面,這是 Unraid 系統管理所有儲存裝置的介面。我們暫時不操作這個介面,點選導航欄上的 DASHBOARD 連結,切換到 DASHBOARD 儀表盤介面。介面由三欄組成,左側顯示 Unraid 伺服器的硬體監控,中間顯示共享資料夾和使用者配置,右側顯示校驗盤、序列等儲存裝置的使用情況。在 DASHBOARD 介面可以總體預覽 Unraid 系統的執行情況,其中每個小模組都可以通過滑鼠拖拽的方式調整位置。

Unraid 儀表盤介面的詳細說明如圖:

Unraid_Dashboard

一些簡單的設定

1. 修改root使用者密碼

Unraid 安裝完成後,系統預設只有 root 使用者,並且沒有設定密碼,有極大的安全隱患,需要第一時間為 root 使用者設定密碼。

切換到 USER 介面,可以看到只有 root 使用者。點選它的頭像進入使用者編輯介面,修改密碼並點選 CHANGE 。Unraid 會提示重新登入。root 是 Unraid 系統的最高許可權使用者,也是 webGUI 的登入使用者,一定要牢記它的密碼。

2. 新建使用者

因為 root 使用者擁有最高許可權,可以控制整個系統,密碼洩露出去會帶來安全隱患,所以為了安全考慮,在設定共享許可權和 Docker 應用的時候不應該使用 root 使用者,需要新建一個或多個使用者。

切換到 USER 介面,點選 ADD USER ,設定使用者名稱、描述、頭像、密碼,點選 ADD 即可建立使用者。

Unraid_Add_User

3. 設定靜態IP

Unraid 預設自動獲取 IP 地址,由路由器自動分配,這個 IP 地址是會變化的,最好將其設定為靜態,讓其使用固定的 IP 地址,方便後續的各種系統配置和應用軟體配置。

設定方法:

SETTINGS >> NetworkSettings

如圖所示,修改 IPv4 address assignment 為 Static,設定 IPv4 地址,預設閘道器,APPLY 應用設定。等待幾秒鐘後,在瀏覽器中使用修改後的 IP 地址訪問 Unraid 後臺即可。

在 NetworkSettings 裡可以檢視到 MAC address,這是當前網路介面的實體地址,熟悉路由器配置的刀客塔可以進入自己的路由設定,把剛剛設定好的 IP 地址和 MAC 地址進行繫結。(不繫結也可,問題不大)

Unraid_IPv4_address_setting

4. 修改伺服器標識

預設的儀表盤左上有個機箱圖示的模組就是伺服器標識模組,可以看到伺服器名稱和描述資訊,還有一個機箱圖示。點選圖示下面的 EDIT 按鈕,可以修改其樣式,這個只是為了美觀,可以隨便選擇喜歡的樣式。再點選模組右上角的齒輪圖示進入伺服器標識設定介面,可以在此修改伺服器名稱、描述、型號,這裡也可以隨意填寫,就算寫 PRTS 也完全沒有問題。另外,在模組右上角有三個小圖示,分別是啟動序列,重啟伺服器,關閉伺服器。

使用共享資料夾

完成了上述的配置後,我們可以先建立一個共享資料夾,簡單測試一下。

1. 啟動序列

通過導航欄進入 MAIN 介面,點選 Disk 1 右側的下拉選單,選擇一個磁碟,這裡小刻選擇了 870EVO 500GB 的固態硬碟,這塊硬碟將作為資料儲存空間,因為要進行格式化,所以一定要注意確定硬碟中已經沒有有用的資料了。在 MAIN 頁面的最下面,點選 START 按鈕,等待一會兒後可以看到序列的狀態已經變成了 Started,表示序列已經啟動。

2. 格式化磁碟

但此時在 Array Devices 列表中,可以發現 Disk 1 的 SIZE 一欄沒有顯示磁碟的容量資訊,這是因為 Disk 1 磁碟還沒有進行格式化。勾選頁面下方灰色按鈕 FORMAT 右側的 Yes, I want to do this 核取方塊,點選 FORMAT 按鈕,提示格式化操作會刪除磁碟上的所有資料,再次點選 FORMAT 開始格式化。

Unraid_Main_ArrayStarted1

3. 建立共享資料夾

格式化完成後,Array Devices 列表中已經可以看到 Disk 1 的空間使用情況了。有了儲存空間就可以建立共享資料夾了,點選導航欄的 SHARES,再點選 ADD SHARE 按鈕,在 Share Settings 頁面,簡單設定一個共享的名稱,比如 "media",然後點選 ADD SHARE 就完成了一個共享資料夾的建立。

4. 訪問共享資料夾

訪問共享資料夾的方法也很簡單:以 Windows 為例,開啟計算機,在位址列輸入 Unraid 伺服器的 IP 地址 \\10.0.0.110 回車,可以看到剛才建立的共享資料夾 "media",雙擊進入,和日常使用的資料夾一樣,可以在這個共享資料夾裡複製貼上,存取檔案。

複製一個檔案到共享資料夾測試一下傳輸速度,大約是 110MB/s,已經接近千兆網路的極限速度了。

Unraid_ShareFileCopy

共享資料夾是 NAS 伺服器最重要的功能,只要是和 NAS 伺服器在同一網路環境的裝置,包括電腦、手機、電視等,都可以通過網路訪問到共享資料夾中的資料,在其中存放電影、音樂、照片、視訊等,通過區域網,家中的裝置都能進行瀏覽和播放,配合 Unraid 強大的外掛和 Docker 的支援,可以實現一個數字化的家庭媒體中心。

上文只是很簡單的建立了一個可供讀寫的共享資料夾,實際上 Unraid 系統中對於共享資料夾的設定是非常豐富的,可以指定其使用哪些磁碟、授予使用者不同的許可權等,這些功能在弄明白 Unraid 的序列和共享機制後再來探索吧!

MAIN 介面

對於一個 NAS 伺服器來說,儲存資料是最重要的功能,而管理各種儲存裝置,配置儲存空間,保證資料安全是一個 NAS 系統必備的功能,MAIN 介面就是 Unraid 管理所有儲存裝置的地方。在這裡可以看到上文新增的固態硬碟在 Array Devices 的 Disk1 位置,並且可以檢視它的溫度、讀寫請求、錯誤、檔案系統和空間使用的情況。

因為在序列已啟動的狀態下是不能進行儲存裝置的配置的,先點選 STOP 按鈕,停止序列執行。序列停止後,頁面左下角會有紅色的 "Array Stopped" 提示資訊。

此時 MAIN 介面進入配置模式,Unraid 系統把伺服器中的儲存裝置分為下面這幾種型別進行管理:

1. Array Devices

Array Devices 可以翻譯成“陣列裝置”或者“序列裝置”,由於“陣列”很容易讓人誤以為是 RAID 陣列,而 Unraid 本身是不支援 RAID 的(可以通過陣列卡實現硬體RAID),所以本文將其稱為序列裝置。

Array Devices 中的裝置是組成 Unraid 伺服器儲存空間的主要裝置,分為 Parity 校驗盤和 Disk 資料盤。

Parity 校驗盤

校驗盤用來對儲存在資料盤中的資料進行奇偶校驗,以保護資料安全。當出現磁碟錯誤時,可以通過校驗的方式恢復資料。安裝 1 塊磁碟作為校驗盤時就可以為資料盤提供 1 個冗餘。因為是一對一校驗資料,所以作為校驗盤的磁碟容量必須是序列裝置中容量最大的磁碟。目前 Unraid 支援配置最多 2 塊磁碟作為校驗盤,這兩塊磁碟的容量可以是不同的,但仍然會以其中容量最小的為準。

Disk 資料盤

資料盤用來組成系統的主要儲存空間,其容量是所有資料盤容量的總和。比如使用 4 塊 4TB 硬碟作為資料盤,則儲存空間的總容量就是 16TB。並且由於不使用 RAID 陣列的機制,資料盤可以使用不同容量的磁碟,後續擴充套件儲存空間時更加靈活。但還是要注意,如果開啟校驗功能,則資料盤中的容量最大的那塊磁碟的容量不能超過校驗盤能提供的最大校驗容量。

TIPS: Unraid 官方指南中提到,目前 SSD 作為序列裝置(包括校驗盤和資料盤)使用正處於實驗階段,可能會出現意料之外的問題。所以,最好使用機械硬碟作為序列裝置,SSD 作為快取使用。

2. Pool Devices

Pool Devices 是 Unraid 6.9.0 版本新增的功能,在先前的版本中叫做 Cache,即快取,它是用來為資料提供加速讀寫的磁碟。在 Unraid 6.9.0 之前的版本中只有 cache 一個快取池,而新版的 Pool Devices 支援建立更多的快取池,還新增了多裝置模式,可以基於 BTRFS RAID 保護快取池中的資料。

Pool 快取池的作用

因為 Unraid 的序列模式不同於 RAID 陣列模式,是單盤讀寫的,增加磁碟並不能提高檔案的讀寫速度。日常用於儲存大量資料的機械硬碟的讀寫速度大概在 100MB/s 到 300MB/s,而固態硬碟的讀寫速度通常都在 600MB/s 以上,支援 NVME 協議的固態硬碟甚至可以達到 3GB/s 的讀寫速度。為了提高檔案的讀寫速度,可以在 Pool Devices 中建立快取池並配置一塊固態硬碟做為快取盤使用。

Pool 快取池的機制

固態硬碟的儲存空間相比於機械硬碟要小很多,所以並不是所有的檔案都可以存放在快取上的,也不建議把大量檔案存放在快取上,這麼做會加速快取盤的損耗。Unraid 提供了四種機制來指定哪些檔案該使用快取、該怎樣使用快取。在安裝了快取盤後,新建 Share 資料夾時就可以看到這四種快取機制:

No

對該資料夾內的檔案讀寫時不使用快取,直接從序列磁碟上讀寫。適合存放大檔案的資料夾,如電影,劇集等。

Yes

向該資料夾寫入檔案時優先使用快取,檔案將被寫入到快取上,快取空間不夠則會寫入到序列磁碟上。Unraid 內建的 Mover 機制會根據設定定期,也可手動將檔案從快取中寫入序列磁碟上。Yes 機制檔案先寫入快取記憶體,再移動到序列,提高了寫入速度。適合零碎的小檔案,如文件。

Prefer

向資料夾寫入檔案時會優先寫入快取,當快取剩餘空間不足時才會將新檔案寫入序列。在 Mover 啟動時,會盡可能把序列中的檔案移動到快取中,下次訪問這些檔案就會從快取上讀取了。這種機制不僅提高了檔案的寫入速度,也儘可能提高了檔案的讀取速度。Prefer 機制很適合需要頻繁訪問,頻繁修改的檔案,也適合存放虛擬機器映像和 Docker 應用的資料夾。

Only

檔案只存放在快取上,Unraid 也不會使用 Mover 移動快取檔案到序列。和 Prefer 機制一樣提高了讀寫速度,但不會寫入序列意味著在使用單個快取盤時,沒有冗餘,也沒有校驗盤來保護資料,不適合用來儲存重要檔案,只適合儲存虛擬機器映象和 Docker 的容器。

Cache 注意事項

由於在使用 Yes 和 Prefer 機制時檔案優先寫入快取盤,在一定時間後才會由 Mover 機制將其寫入序列。當只有一個快取盤時,Cache 工作在單裝置模式,儲存在快取中的資料在還沒有被寫入序列之前是存在風險的。

對於這個問題有下面幾種解決方案:

  1. 減少 Mover 觸發所需的時間。這樣快取內的檔案會在短時間內就移動到序列。
  2. 只使用快取加速系統檔案、虛擬機器和 Docker。不用來加速序列內檔案的讀寫。
  3. 新增第二個快取盤,啟用多裝置模式,形成冗餘備份。

第三種方案是最穩妥安全的,但是要購買額外的快取盤。目前固態硬碟的價格還是很高的(差不多1元1GB)。第一種方法可行,但也不能 100% 保證安全。第二種方案讓檔案不經過快取直接寫入序列,快取只用於系統相關檔案的加速,這樣傳輸檔案到序列時是無法享受到快取的加速的,適合對傳輸速度沒有要求的情況。

雖然幾種方案各有利弊,但它們都能減少序列內硬碟的頻繁讀寫,可以增加硬碟的休眠時間,在一定程度上減小了系統整體功耗,提高了硬碟的使用壽命。

3. Boot Device

Boot Device 是 Unraid 的啟動裝置,目前列表中的裝置就是上文中製作的啟動U盤。Unraid 用它儲存重要的序列配置檔案,所以在系統執行時是不可以拔掉的。

預設情況下,裝置的狀態會顯示出一個黃色的感嘆號圖示,這是因為 Unraid 預設對裝置目錄開啟了共享功能,並且共享的許可權是 Public,表示區域網內的所有人都可以訪問。這樣設定存在安全隱患,稍後將修改它的許可權。

啟動裝置設定

MAIN >> Boot Device >> Flash

Flash Device Settings

使用 FLASH BACKUP 可以對啟動裝置進行備份,備份會下載到電腦上,因為是系統啟動和執行的重要裝置,推薦定期備份,以防萬一。

SMB Security Settings

提供對 flash 共享目錄許可權的設定,為了去掉上文中感嘆號提示的安全漏洞,將 Export 設定為 Yes(Hidden),Security 設定為 Private,並在 SMB User Access 中給使用者設定許可權即可。

Unraid_BootDevice_SMBUserAccess

Syslinux Configuration

這裡是配置系統啟動項的地方。右邊的每個啟動項都是可以編輯的,通過它可以進行硬體直通的配置。Server boot mode 顯示了當前系統的啟動模式是 Legacy 傳統模式,可以在此進行 UEFI/Legacy 模式的切換。

4. Unassigned Devices

Unassigned Devices 是未分配的裝置,即當前已經連線到伺服器,但並沒有放入序列中的裝置。

點選裝置列表前的 Dev 連結可以檢視裝置的詳細資訊。

建立序列和快取池

綜合上文對於 Unraid 序列和裝置型別的介紹,並且考慮到在 Unraid 伺服器上使用虛擬機器和 Docker 的需求,小刻認為使用一個機械硬碟作為資料盤;一個固態硬碟作為快取池,用來存放系統檔案、虛擬機器映像、Docker等,以提供最好的效能,並減少資料盤的讀寫頻率,提高了安全性。日後可以再增加一個固態硬碟組成多裝置模式的快取池,以增加快取的安全性。

為什麼不使用校驗盤呢?

主要出於成本考慮,如果預算充足還是強烈建議使用校驗盤的。

其實包括 RAID 陣列在內的任何一種校驗的機制,都不能絕對保證資料的安全,校驗機制只是提供了一個在發生問題後,進行資料恢復的方法。而多重備份、異地備份也完全可以做到這一點,並且是保護資料安全的最佳方案。所以,建議存放在伺服器上的資料也要在其他的地方有多份副本。這樣即使不使用校驗盤,也可以在換上新硬碟後從其他副本處直接將資料複製回來,這種恢復的方法是優於校驗盤的。

1. 重置序列配置

因為在上文中測試共享資料夾的訪問速度時,小刻已經建立了一次序列,所以在修改序列中的磁碟配置時會提示錯誤,缺少磁碟。Unraid 系統會以為序列中的那個盤丟失了。這時需要重置序列配置。

  1. 通過導航欄 TOOLS >> New Config 進入設定介面
  2. 勾選 Yes, I want to do this 確認操作
  3. 點選 APPLY 按鈕重置序列配置

再次切換到 MAIN 介面,就可以正常配置序列了。

Unraid_NewConfig

2. 建立快取池

  1. 點選 ADD POOL
  2. 在彈出的對話方塊中輸入快取池名稱,點選 APPLY
  3. 在 Pool Devices 的 Cache 槽中新增一個固態硬碟
  4. 點選 Cache 進入設定介面,修改 File system type 檔案系統型別為 btrfs,點選 APPLY

這裡修改了快取盤的檔案系統為 btrfs,因為 Unraid 為快取池提供了單裝置模式和多裝置模式,多裝置模式下的快取池更加安全,而非 btrfs 檔案系統的快取盤在日後新增快取盤並擴充套件成多裝置模式的時候需要重新格式化成 btrfs 格式。

Unraid_PoolDevicesAdd

3. 新增序列磁碟

  1. 在 Disk1 的下拉選單中選擇一個機械硬碟,這裡選擇一塊希捷 4TB 的硬碟
  2. 點選 Disk1 進入硬碟的設定介面,設定 Spin down delay 休眠時間為 30 分鐘
  3. 設定 File system type 為 xfs,xfs 檔案系統相容性更好

Unraid_Disk1Setting

4. 啟動序列

  1. 點選 MAIN 介面的 START 按鈕啟動序列
  2. 勾選 FORMAT 按鈕旁的確認核取方塊 Yes, I want to do this 再點選 FORMAT 格式化磁碟
  3. 格式化完成後,序列和快取池中的磁碟就成功掛載到系統上了

成功啟動序列後,在 MAIN 介面就可以實時檢視每個硬碟的狀態,讀寫和空間使用率等資訊了。

本文中,暫時只使用一塊硬碟作為序列中的資料磁碟,後續如果儲存空間不足,需要向序列中增加硬碟的話,按照第 3 步的操作新增即可,序列中有多塊硬碟,則序列的總容量等於所有硬碟容量之和,它們共同組成 Unraid 的儲存空間。

Unraid_MAIN_Started

SHARES

為了使用序列磁碟所組成的龐大儲存空間,需要使用 Shares 共享(共享資料夾)功能。上文中已經簡單介紹過它的使用方法,建立 Shares 共享非常容易,但作為 Unraid NAS 系統重要的功能之一,使用者應該瞭解 Shares 的檔案和磁碟使用機制,在配置 Shares 共享和儲存檔案的時候,有一個清晰有條理的策略,這對檔案完整性、磁碟擴充套件性、資料安全性都有很重要的意義。

系統共享

啟動序列後,切換到 SHARES 介面,可以看到 Unraid 已經自動建立了 4 個共享,它們是系統共享,作用如下:

  • appdata 預設存放App/Docker配置檔案config的內容

  • domains 預設存放虛擬機器的磁碟映像

  • isos 在安裝虛擬機器時用來上傳系統安裝映象的目錄(非必須在此共享目錄)

  • system 存放Unraid系統檔案,VM模板,Docker映像

因為在小刻的序列中有快取池,Unraid 會自動將這些共享的快取模式設定為 Prefer,以提高效能。如無必要不需要對系統共享的設定進行更改。

新建共享

點選 ADD SHARE 新建一個共享,以 "Movies" 為例,建立一個用來存放電影檔案的共享。一些重要的設定選項會在下面進行說明:

Unraid_AddShare2

Use cache pool

設定該共享的快取池機制,只有在序列中有快取池時才會生效,上文已經介紹過 Unraid 快取的四種機制,對於存放電影這類資料,檔案體積大,不經常修改,並不需要使用快取池,所以設定為 No 即可。如果建立的是一個需要經常讀寫的共享,比如存放文件類資料,可以設定為 Yes

Select cache pool

當 Use cache pool 啟用的時候才會生效,這個選項是用來設定該共享使用哪個快取池的。小刻的序列裡只有一個快取池,如果有多個快取池的話,可以在這裡進行指定。

Enable Copy-on-write

該選項只有在磁碟使用 btrfs 檔案系統時才有效,而為了相容性資料盤一般使用 xfs 檔案系統。

Included or excluded

該選項只有在序列中有多個資料盤時才生效,它可以設定此共享使用哪幾個資料盤的空間,或是不使用哪幾個資料盤的空間。只需要設定其中一個即可。

Allocation method

檔案分配方法,詳細見下文。

Minimum free space

最小剩餘空間,詳細見下文。

Split level

以上三個選項是關聯的,所以放在一起說明。

首先,Unraid 的共享功能是通過 Linux 聚合檔案系統來實現的,它允許一個目錄下的檔案或目錄存放在不同的磁碟中。舉個例子,從使用者的視角看,檔案 Ma 和 Mb 都在同一個目錄 Movies 下,但在物理層面,檔案 Ma 實際存放在 Disk1 上,檔案 Mb 實際存放在 Disk2 上。

Unraid_FuseFileSystem

當建立一個包含多個磁碟的共享目錄時,通過聚合檔案系統,共享目錄下的檔案可以跨磁碟存放,那麼判斷檔案應該存放在哪個磁碟就需要 Minimum free space, Allocation method, Split level 這三個選項的設定來決定了。

Minimum free space(最小剩餘空間)設定一個值,當共享所包含某個磁碟剩餘容量低於該值時,就不向這個磁碟寫入檔案了,轉而向共享包含的其他磁碟寫入,當所有磁碟都無法寫入時會報錯。這個值一般設定為 0,如果使用者想要為某個磁碟保留一些空間的話,可以根據實際情況進行設定。

Allocation method(檔案分配方法)有三個選項: High Water, Most Free, Fill-Up。其中 Fill-Up 是持續向一個硬碟寫入直到填滿,再向另一個磁碟寫入;Most Free 是每次寫入都向剩餘空間最多的那個磁碟寫入;High Water 是一種均勻各個磁碟剩餘空間的寫入方式,它基於序列中容量最大的磁碟,使用二分法建立多個“水位線”,舉個例子,容量 8TB 硬碟的水位線分別為 4TB, 2TB, 1TB, 512GB...使用 High Water 時,會依次將序列中的每個硬碟寫入到剩餘 4TB 的空間,然後再依次寫入到剩餘 2TB,1TB...

如圖所示,顯示了序列中有 8TB, 3TB, 2TB 三個硬碟時,High Water 模式的磁碟寫入方式:最開始只會在淺綠色區域進行儲存,淺綠色區域存滿後,繼續在兩個深綠色區域進行儲存,以此類推。

Unraid_HighWater

在以上三種檔案分配方法互有優劣,取決於所建立的共享具體要存放的檔案型別和使用者的檔案管理習慣。

Split level(分割層級)選項可選 7 個層級,即 level-1 到 level-5,level-any,no。作為使用者可能很困惑這個分割層級是什麼意思?有什麼作用?官方的指南中對於 Split level 的解釋很複雜,其實簡單明瞭的解釋是:Unraid 系統為了防止存放在共享的檔案過於混亂地分散在各個磁碟而設定的限制。

舉個例子:小刻有兩個冰箱(磁碟),冰箱 A 快滿了但還沒有完全滿,冰箱 B 還有很多空間。一天小刻買來一盒蜜餅(檔案),想把它們放到冰箱裡,如果都放到 A 中,放不下。這時小刻可以選擇把一部分蜜餅放進 A 冰箱,剩餘的放到 B 裡面;另一個選擇是把所有蜜餅放到冰箱 B 裡。

小刻的蜜餅是一個很實際的例子,考慮到資料完整性,很明顯,小刻會選擇第二種。而在 Unraid 中 Split level 就是來做這個選擇的。當設定 level-1 (level-top) 時,只有根目錄(1級目錄)可以被分散在不同的磁碟,其子目錄(2級目錄)以及目錄下的所有檔案則必須儲存在同一個磁碟上,Unraid 系統不會對 2 級目錄進行分割。Split level 的其他幾個選項以此類推,其中 level-any 代表資料可以被任意分割在不同磁碟上,no 代表 Unraid 不自動分割資料,而是需要使用者手動去設定,需要涉及命令列的操作,待進階篇再去講解。

Split level 的選擇和共享中存放的資料類別有很大的關係,比如,本次建立的是用於儲存電影檔案的共享 "Movies",那麼共享中的檔案結構大概是圖中這樣,Movies 是 1 級目錄,每部電影的檔案存放在以電影名稱命名的資料夾中,是 2 級目錄。雖然因為聚合檔案系統的關係,使用者不需要知道檔案存放在哪個磁碟,但實際上使用者肯定不希望同一個電影資料夾中的電影檔案被分散在不同的磁碟上。這種情況下,將 Split level 選項設定為 level-top(level-1) 就限制了 Unraid 不可以對 2 級以下的目錄進行分割,電影檔案就老老實實地存放在它自己的資料夾裡了。如果對於 Split level 仍有困惑,可以參考官方說明文件:Manual/Shares - Unraid | Docs

Unraid_MoviesDirExample

所有的選項配置好後,點選 ADD SHARE 即可建立共享。

設定共享許可權

新建的共享預設許可權是 Public,即當前區域網內所有人都可以通過 IP 地址訪問該共享。

  1. 通過導航欄 SHARES >> User Shares >> Movies 進入 Movies 共享設定
  2. 在下面 SMB Security Settings 設定 Security 為 Private 點選 APPLY
  3. 然後在 SMB User Access 設定使用者的許可權為 Read/Write 可讀可寫 點選 APPLY

對映網路驅動器

Windows系統

在 Windows 系統中,可以把共享對映成為網路驅動器,被對映為網路驅動器的共享使用起來就像普通磁碟分割槽一樣,十分方便。

  1. 開啟 我的電腦 點選選單欄 計算機 >> 對映網路驅動器
  2. 在彈出的視窗中選擇一個驅動器碟符,此處設定為 Z:
  3. 在資料夾一欄填入共享的網路位置,格式是: \\IP地址\共享名稱,此處設定為: \\10.0.0.110\Movies
  4. 點選 完成,按提示輸入 Unraid 中設定的使用者名稱和密碼(不建議使用 root 使用者)後確認。
  5. 對映成功後,共享將會以驅動器的形式顯示在我的電腦。

Unraid_Win_NetDriver

Linux系統

在 Linux 系統中使用共享,需要使用 smb 服務並掛載共享。

  1. 安裝 smb-client

    yum -y install samba-client

  2. 列出伺服器上的共享列表,命令格式:smb-client -L [IP地址] -U [使用者名稱]

    smb-client -L 10.0.0.110 -U username

  3. 掛載共享,命令格式:mount -o username=[賬號],password=[密碼] //[伺服器IP]/[共享目錄] /[掛載點]

    mount -o username=frozensky,password=****** //10.0.0.110/Movies /home/frozensky/Movies