[筆記]土砲 10G ZFS NAS - FreeNAS 學習中 (持續更新)

帳號及群組建立

在 NAS 上的共用資料夾依據 group & user 來設定不同的讀寫權限是最簡單的管理方式.

FreeNAS 安裝完成後, 已內建 (Built-in) 很多的群組及使用者, 這部份就不用去變更它.


自行建立的 group & user 會排列在 list 的上方.

建立帳號. Full Name, email & password 這些都是必填欄位


其實我不太了解為何 FreeNAS 預設要為每個 user 建立同名的 group, 還是這是 FreeBSD 的傳統做法?

另外 "Microsoft Account" 這欄位, 文件上是寫 for windows 8 含以上的版本要勾選.

前面提到系統 built-in 的 group & user 不要去修改, 但其中有一項, 記得要去設定 root account 的 email address, 因為這是用來接收系統所發出的 alert email 之用.


FB: Pctine
ZFS 的優勢

在版上及 Facebook NAS使用俱樂部等, 相信大家已經聽到很多有關於 ZFS 的優點了,不過市售的 NAS 鮮少使用 ZFS (註:QNap企業級 NAS 有採用 ZFS 的 QES 系列), 所以一般 user 是難以理解 ZFS 的偉大, Study FreeNAS 之前, 也要先讀一些關於 ZFS 的簡介及原理之類的.

ZFS wiki (wiki有的寫的很簡短, 具體的原理解說等可以參考下面的 ZFS Administration)

Aaron Toponce - ZFS Administration... (小弟的程度比較鍾意這篇, 對於 ZFS 等以較淺顯易懂的方式解釋)

*ZFS RAIDZ 較傳統 Parity RAID 好的地方. "write hole" 發生機率極低.
*Dynamic stripe width 解決 fixed stripe width 對於 small size data 寫入效率不佳的問題.
*ZFS 結合 RAID, File system & Cache 的管理. 自己通包了.
*data block 皆有 checksum, 在讀取及寫入時偵錯錯誤發生及糾正.
*raidz1: 近似於 RAID5, 但採用 dynamic stripe width, 允許一個 VDEV fail.
*raidz2: 近似於 RAID6. 允許二個 VDEV fail.
*raidz3:...


FreeNAS document - ZFS Primer (概論)

ZFS檔案系統儲存應用7大優勢 (這篇算是結論,光從結論只知其神奇, 但對於理解 zpool & zfs 沒有多大幫助)

FB: Pctine
FreeNAS 10 初探

今天試著安裝 FreeNAS v10.













除了 UI 看起來好看外, 這離正式版推出應該還需要一段時間.

*部份功能都還不能正常 work, create user, set permission, ftp service...蠻多功能都還沒有完備.

*UI 好看, 但用久了會覺得不好操作, 所有的操作都要由左而右一層一層點選, 有點繁鎖.

其他因為是 FreeNAS 新手, 也沒有太多感想了. 只覺得好像 v9 UI 比較好用.
FB: Pctine
舊硬碟無法建立 volume

如果你在安裝 FreeNAS 時, 使用的硬碟是原本上面已有資料, 有可能遇到和小弟同樣的問題.

*在 Volume Manager 無法建立 volume.
*Storage > View Disks > Wipe disk 也失敗
*shell 用 gpart 下什麼指令都出現 device busy.

最後小弟直接去下載 GParted Live CD
http://gparted.org/livecd.php

先用 GParted 把硬碟裡面的 Partition 全砍了, 總算能夠建立 volume 了.

你怎麼 wipe disk 都出現錯誤.


利用 Gparted Live CD


砍掉硬碟裡面所有的 Partition.
FB: Pctine
Windows Sharing 權限設定原來這麼簡單

因為已經習慣於市售套裝 NAS 對於 share folder 權限的設定方式(全部的設定在GUI搞定), 一時之間在 FreeNAS Web GUI 反而不曉得如何去指定 multi user & group 的權限.

之前去跪求高人得不到答案, 原來做法這麼簡單. 是自己太笨了, 請參考這裡.

Simple example of how to configure share permissions

重點在 share type 設定為 windows, 最後再去 Windows 檔案總管做進階的權限設定即可. join Windows AD 後的做法也是相仿.

ps: 這部份是直接對應至 linux ACL 的權限, 可以進入 shell 透過 getfacl & setfacl 去驗證.

FB: Pctine
更換故障硬碟

如果你使用的是 mirror, raidz1, raidz2... raid type, 當出現硬碟故障時可換上新硬碟讓系統重新 rebuild. 恢復為 Health 狀態.

官網文件說明

以前經驗上若是支援 hot-plug 就直接抽換硬碟即可, 在 FreeNAS 則可利用 disk offline & replace 功能置換硬碟.





其中較特別之處. 傳統 RAID rebuild 的方式大多是針對整個 RAID Set 重新計算 parity, rebuild 寫入新的硬碟, 但在上述 FreeNAS 實測上特殊之處, rebuild 的速度非常快(在 LVM 較常用 resync 一詞, 而 FreeNAS 稱之為 resilvered)

感覺它應該只是針對 data block 去 resync, 而不是整顆硬碟重新同步, 所以完成速度依據實際儲存的資料決定.

ps: resilvered 的進度可以利用指令 zpool status 查詢.

結語
在 FreeNAS 下, 大概只能用硬碟的序號來識別到底是那顆硬碟故障, 這部份是要特別小心的.
FB: Pctine
以 ssh 登入管理 FreeNAS

*Services > Control Services > SSH 要啟用.

*Services > SSH (Login as Root with password 打勾, 允許僅用密碼登入)


*root account 設定密碼.

即可以 ssh 登入 NAS.

另外在 WEB GUI. 也有提供一 'Shell' 功能.
FB: Pctine
Dual boot device

前面我們使用一個 USB thumb drive 當做 FreeNAS OS 開機碟, 如果 USB 盤故障就不能開機了, 就如同部份 NAS 設計 Dual DOM 的概念, 當一個 DOM 故障時可由另一個 DOM 開機啟動. FreeNAS 可藉由將 boot device 做 RAID mirror 達到此效果.

官網說明-Mirroring the boot device
FB: Pctine
Spin down HDDs

這裡有一篇詳細的介紹, 主要是把 system data pool 變更為 USB device. 另外再設定 HDD idle standby time.

(click here)

各別的 HDD idle spin down time 可以在 FreeNAS Web GUI 設定, 不過上述 script 的做法比較方便些.


FB: Pctine
FreeNAS snapshot & rollback

ZFS snapshot 是針對 dataset 來做. 在 FreeNAS UI 可從 Storage 此項目操作.

#One time snapshot.

Recursive 勾選時, 則連 child dataset 也會各別 take snapshot.



#襝視 snapshot, rollback...
Storage > Snapshot 可以襝視所有的 snapshot list. 並做一些 snapshot 的操作.


Clone Snapshot: 將該 snapshot 另建成新的 dataset, 再起一個 sharing 就能存取其中的資料.
Destroy Snapshot: 刪除該筆 snapshot
Rollback Snapshot: 回復 dataset 至該 snapshot 時間點. (慎用, 為防意外, 如真的要做此項操作, 可以在 rollback 前再對該 dataset 先 take snapshot)


#排程 Take snapshot.
Recursive: 如果 dataset 底下還有 child dataset, 是否也一併建立快照.
Begin & End: 在此時間區間再 take snapshot.


其他更細項的設定可以參考官網文件.

預設 FreeNAS CIFS sharing 就已經啟用 Windows Shadow Copy feature. 可以直接在 Windows 檔案總管 "以前的版本" 瀏覽 snapshot 資料.



snapshot 存放位置
可利用下列指令操作 snapshot folder 是否能被襝視 (存放在該 dataset/.zfs 目錄下)
zfs set snapdir=<hidden|visible> volume/dataset
zfs get snapdir volume/dataset

FB: Pctine
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 16)

今日熱門文章 網友點擊推薦!