unRaid系統會要求使用者要先配置硬碟,才能使用各個功能(如VM,共享資料夾…等)
今天先深入了解原理,了解後方可按照自己安排不同形式的硬碟管理
我們開始吧~
unRaid,顧名思義就「不是RAID」
當然Array也就不是常見的RAID喔
而是一種資料池(pool)的結構,會把所有的硬碟打成同一個空間
“當然往後配置share folder也可以選擇包含或排除哪些硬碟,我們後面實作~”
(來源:https://reurl.cc/a9OR5Q)
工作原理是當有資料存入時,會對每個資料碟的同個區域做XOR計算,最後把結果都存入校驗碟裡
XOR計算規則是只要是奇數個1,計算值就為1;反之偶數個1,計算值就為0
舉例來說:
正常硬碟資料如下圖
|Storage|Storage|Storage|Storage|Storage|Storage|Storage|Parity|
| :-: | :-: |
|1|0|1|1|0|1|0|0|
|0|0|0|1|1|1|0|1|
|…|…|…|…|…|…|…|…|
現在有個硬碟壞了 (X,Y表示)
|Storage|Storage|Storage|Storage|Storage|Storage|Storage|Parity|
| :-: |
|1|0|1|1|X|1|0|0|
|0|0|0|1|Y|1|0|1|
|…|…|…|…|…|…|…|…|X,Y 回推,得0,1
這有點像RAID 5,但RAID 5是把校驗碼分散在各個硬碟裡
容錯性則跟RAID5差不多,都是保證其中一顆硬碟壞掉可被修復
但小雨覺得天下絕對沒有兩全其美的事情,Parity以容錯性和方便性來講,個人使用已足夠
顧名思義就是加快存取資料的速度,能解決原硬碟讀寫太慢的問題
而unRaid Cache功能就是為了解決Parity讀寫太慢的問題,機制是以SSD暫時取代原本資料池
讓使用時先寫入Cache區域,等使用者離峰時在把資料『搬移』至原本資料池。
與瀏覽器快取不同的是:Cache 碟是利用離峰的時間,再慢慢把資料搬回原位
為了避免資料正在讀寫又執行Mover產生錯誤,unRaid Mover 建立了一些機制:
- Mover 啟動時,檔正在被讀寫,則該檔不會啟動搬移,只能等下次 (隔天同一時間)
- Cache根目錄下以 . 開頭的資料夾 (也就是temp文件),mover 不會搬移這些文件
- Cache根目錄下的檔案 (系統控制文件),mover 不會搬移這些文件
(Mover詳細調整我們後面再來實作~)