ZFS 是 2004 / 2005 年間在 OpenSolaris 上開始的夢幻級 file system 計畫,主要目標是做出一個在
user 端來看,與現有的 POSIX 規格的 FS 沒有明顯不同 (例如 UFS),但在 admin 端來看,極具前瞻性、足供未來
10-20 年使用的先進 FS。它的夢幻程度,不如從 Sun 自己口中來說,請看一下這頁 http://www.sun.com/2004-0914/feature/
看完這些夢幻的形容後,可以看看這個 wiki,對於 ZFS 有明確的數字的描述,也對他的優點及其限制有一番相當中肯的說明
http://en.wikipedia.org/wiki/ZFS
因為這兩個網頁已經說的夠好,實在已無切入點可以自己再另寫一段文字加以介紹,所以不如從實務面上來看看這個 ZFS 究竟離我們還有多遠。ZFS 繼
在 Solaris 10 中正式現身後,現在也已經成功 porting 進入 FreeBSD 7 中,大概下一個 snapshot 就可以用
了。zfs 目前無法用來開機 (也就是說,無法用來容納 /boot,不過在 Solaris 已解決,FreeBSD 遲早也會跟上),但是超大的
空間、可以自由增減 zpool 中的實體磁碟 (目前 FreeBSD 這頭能增不能減)、具備自行修復特性、又可以非常有效率的進行 FS 的
snapshot 及 clone,真是很完美的資料碟方案。
很特別的一點是,在 ZFS 的支援上 FreeBSD 跑在 Linux 前面,卻不是因為技術的理由,而是因為 license 的關
係。FreeBSD license 與 ZFS 所屬的 CDDL 授權是相容的,因此可以合法將 ZFS porting 到 FreeBSD 的
系統中。但是 Linux kernel 是 GPL,與 CDDL 不相容,因此讓 ZFS 的程式碼與 Linux kernel 連結在一起是非
法的。為此,Linux 世界下,目前只能把 ZFS 以 userland 程式的方式實作,靠 fuse 連入系統。但是當然,透過
userland 的 fuse 方案,效率要大打折扣。不巧版權的問題是政治問題,並非技術面所能解決,所以 linux 短期內大概不會有
kernel 的 ZFS 出現了。
很勁爆的是,Sun 在推出 ZFS 時,是故意選擇與 GPL 不相容的 CDDL 的。對於 license 何以不相容有興趣的人可以從這頁開始
尋寶 http://www.gnu.org/licenses/license-list.html#SoftwareLicenses (請往下搜
尋 CDDL) 簡略的說,CDDL 對於程式碼的管控有相當多的限制,是 Free Software Foundation 看不下去,被認定為不
夠 open 的。大概兩家有仇吧。
ZFS 已 porting 進入 FreeBSD 的正式新聞在此 http://lists.freebsd.org/pipermail/freebsd-current/2007-April/070544.html
目前在 FreeBSD 的主要限制為:
1. 目前不能用來開機 (所以暫時不能用做 / slice 的 FS)
2. 目前還不支援 ACL
3. 目前還沒完整支援 iSCSI
此外從最近一季的 FreeBSD Status Report 來看,最新的 FreeBSD 7 具備了下列新玩意:
1. ZFS
2. 8 CPU 以內的 SMP 效能大增。主因為 giant lock 的逐步移除,及 scheduler lock 轉移為 per
CPU lock
3. 支援 802.3ad,使單台 server 可藉由多個網路界面合併頻寬、網路容錯、線路 load balance
詳情請參考 http://www.freebsd.org/news/status/report-2007-01-2007-03.html
因此做為一個計算或提供服務的 server 來看,FreeBSD 的戰力大增。