ZFS文件系統:Linux,讓我們約會在9月
如果你是 FreeBSD 或 Solaris 用戶的話,一定對 ZFS 有所了解,這是由 SUN ( 現在被 Oracle 合并了)開發的一款新型文件系統,應用在 Solaris 上,后來被移植到了 FreeBSD 和 NetBSD 等系統上。很多人稱 ZFS 為***文件系統,因為 ZFS 代表” last word in file system “,Z 是字母表的***一個字,意思是此后再也不需要開發其他的文件系統了。 事實上,ZFS 的確帶來了很多嶄新的觀念,對文件系統來講是一個劃時代的作品。
51CTO編輯推薦專題:下一代Linux文件系統

面對這樣一個強大的文件系統,當然 Linux 社區也并沒有閑著,他們因而推出了 Btrfs 文件系統,有趣的是這也是由 Oracle 發起開發的,關于 BTRFS 的詳細介紹可以看這篇文章”新一代 Linux 文件系統 btrfs 簡介“。BTRFS 初始目標是取代 Linux 目前的 ext3/4 文件系統,不過通過比較,你會發現 BTRFS 和 ZFS 在很多特性上非常的類似,比如具備相當強的可擴展性、支持 Snapshots 、內置卷管理功能等等。
另外,說到 BTRFS ,這里要插播一下,根據 Ubuntu 開發團隊稱,由于沒有充足的時間,無法完成余下的 BTRFS 開發工作,因此也就是說在 10.10 中將不會完全支持 BTRFS 。
OK ,我們繼續說 ZFS 。雖然 Linux 社區已經有了 BTRFS 用來作為對 ZFS 的回應了,但前段時間有消息傳出稱有開發團隊(來自印度的 KQ Infotech 公司) 開始著手移植 ZFS 到 Linux 系統上,這個項目的主頁在這里:Native ZFS for Linux 。事實上早在這之前就有一個基于 FUSE 框架的 ZFS for Linux 項目,但它是用戶級的 ZFS 文件系統,性能上要遜色很多,所以 Native ZFS for Linux 項目的目的之一也就是要取代這個 ZFS-FUSE ,為 Linux 提供原生的 ZFS 支持。(相關報道:6月第3周系統升級錄:ZFS與Linux文件系統的變革)
但問題是,由于 Linux Kernel 用的是 GPL 許可協議,而 ZFS 則是基于 Sun 的 CDDL 許可協議,由于這兩個許可協議存在著不兼容性,隨之而來的就是版權問題。所以為了解決版權問題,這個 Native ZFS for Linux 項目將會以內核模塊的形式進行分發,同時版權許可與 ZFS 一樣也基于 CDDL 協議。
而根據 Phoronix 的報道,開發 Native ZFS for Linux 項目的 KQ Infotech 公司將于下個月 ( 大約為 9 月 15 日左右) ,會正式發布一個完全可用的 Linux Kernel ZFS 模塊。這個 ZFS 模塊基于 ZFS Pool 18 ,已經實現了 ZFS POSIX 層。但目前這個代碼只支持 64 位 Linux 系統,同時他們還會發布適用于 Fedora 12 和 Red Hat Enterprise Linux 6 Beta 2 的 RPM 包。當然你也可以在 Ubuntu 10.04 LTS 上使用該模塊,但必須要從源代碼手工編譯安裝。
有關ZFS文件系統的使用方法,可以參考以下文章:
以下是來自Phoronix的詳細報導:
#p#
本部分來源:http://linuxtoy.org/archives/linux-native-zfs-support-is-coming.html
美國Lawrence Livermore National Laboratory依據該實驗室安全部門和美國能源部的一份協議開發了ZFS的Linux的原生支持,但此項目的代碼并不可以直接使用——因其不提供POSIX接口。印度的Knowledge Quest Infotech公司則達到了該目標,他們從去年開始自己的移植工作。
早些時候KQ Infotech的Business Manager, Darshin Vyas,在Phonronix論壇中發出聲明(此鏈接指向的討論包含了比本文更加詳盡的信息),該項目已接近Beta狀態。
由于Solaris自身發布協議和專利糾紛的限制,此項目的代碼仍是基于CDDL發布的,因而不會進入主線內核,故他們只會提供可以編譯為內核模塊的源代碼,由最終用戶自行“嵌入”GPL的內核,并且不使用任何GPL-only symbols,規避了GPL的Copyleft條款要求將非GPL程序嵌入GPL程序的行為人(此場合下即最終用戶,無再發布的需要)分發程序必須以GPL發布的協議沖突問題(這是常見的GPL規避手段之一)。同時該公司似乎確信Oracle不會對他們采取法律行動。
代碼預計在九月15日發布,將只能支持64位內核,同時將提供用于Fedora 12和Red Hat Enterprise Linux 6 Beta 2的RPM包。Ubuntu10.04亦可安裝,但需自行編譯,期待屆時的Phoronnix的Ext4 & Btrfs V.S. ZFS on Linux測評。(譯者私心希望有Reiser4出場,但按其進度——2.6.37才能進主線——來講,屬不可能。)
存在的問題:
KQ Infotech記的ZFS on Linux雖好,但不能確定其未來的法律風險,也不能指望得到Oracle/Sun的許可。由于上述的許可證糾紛,無論是官方內核還是主要的發行版都不可能采用它,任何人想用ZFS作為Linux的根文件系統的人都必須自己編譯內核并自行處理安裝問題。
同時其基于ZFS Pool 18,雖然較新,但非***的21,故仍缺乏de-duplication support和其他一些在OpenSolaris解散前加入的更新穎的功能。只有X86-64支持,也進一步限制了其應用。同樣令其前景模糊不清的是——KQ Infotech一直在關門開發,至今外界無法得到一行代碼——該公司是會一直以自由許可提供該模塊,還是會將其拿來用商業許可套現。
由于功能上與向ZFS看齊的Btrfs日趨完善,并正在成為Linux的下一代“標準”文件系統,所以如果這項工作早個兩三年完成的話,重要性可能會比現在大。在Phoronix上個月進行的一系列測試:Running ZFS with CAM-based ATA、ZFS On FreeBSD vs. EXT4 & Btrfs On Linux、Btrfs, EXT4, & ZFS On A Solid-State Drive中,Ext4/Btrfs on Linux無論是機械硬盤還是固態硬盤性能都把ZFS on FreeBSD 8.1甩開了好幾條街。雖然可以將之歸咎為FreeBSD自身的瓶頸,但也很難指望ZFS在Linux上能比EXT4/Btrfs有什么性能優勢(如果不說完全不可能的話)。
考慮到以上幾點,這個模塊可能用于嘗鮮會很有趣,但不可能改變Linux文件系統的前景,它自身估計也只會在小范圍內應用。
LLNL方面的情況:
勞倫斯—利物浦國家實驗室(Lawrence Livermore National Laboratories)的Linux ZFS移植項目的領導人Brian Behlendorf向Phoronix方面提供了以下信息:
1.KQ Infotech的工作是基于LLNL的基礎上的,具體來說是該實驗室發布在Github上的SPL ZFS 0.4.9源代碼。
2.Brian Behlendorf打算把KQ Infotech的改進合并回自己方面的代碼庫。
3.LLNL的ZFS移植最終會升級到onnv_147——Oracle廢棄OpenSolaris之前的***一版,不過這之前要花些時間,因為他們需要“維持現有的穩定性和Linux內核的可移植性。
4.雖然KQ Infotech方面在Phoronix論壇上放言:ZFS是“ by far the best file system”,并且甩下了諸如“Thats why its long awaited, am not just bullshitting here, arival lot of storage companies are keenly looking forward to this solution and only if you are related to the storage industry, will you know the real gem ZFS is! Nothing to laugh on ZFS being the best file system, hell it is!!!”這樣的狠話,但Behlendorf仍警告說ZFS for Linux仍在開發中,還有大量工作要做,它目前的狀況并不是那么樂觀。
不管怎么說,好在有LLNL的技術支持和美國能源部的合同在那里,Linux的原生ZFS支持還是可以期待的。




















