03.04 Torvalds 拒絕接受 ZFS 文件系統

Linux的發明者和主要開發者Linus Torvalds近日公開反對ZFS文件系統。作出這番表態的時機不容忽視,因為ZFS只是最近才第一次正式實現在一款主要的發行版中。這個發行版就是Ubuntu 19.10,其中的ZFS文件系統被譽為是Canonical最新的Linux版本的主要功能之一。

Torvalds 拒絕接受 ZFS 文件系統

Torvalds在一個論壇帖子中寫道:“如果有人添加像ZFS這樣的內核模塊,他們就自行維護。我不會維護這樣的內核模塊,我也不可能被別人的內核更改所束縛。”

如果讀者只考慮Torvalds的這個帖子,很容易得出他對ZFS持異議源自於潛在的許可問題這個結論。他寫道:“除非我得到Oracle的主要法律顧問或最好得到Larry Ellison本人簽署的Oracle正式信函,表示可以合併ZFS代碼、將最終結果視作符合GPL的許可證,否則我不可能合併任何 ZFS代碼。”

許可問題更加深入一點。要知道,Linux端口上的ZFS依賴兩個已被棄用的內核函數:__kernel_fpu_begin()和__kernel_fpu_end()。取代了__kernel_fpu_begin()和__kernel_fpu_end()的函數被有意發佈為只面向GPL許可證。

因此,如果Oracle尚未正式同意ZFS採用GPL許可證,而ZFS依賴的兩個已被棄用的函數又被只面向GPL許可證的函數取而代之,就存在問題(即使目前僅僅是意識形態上的問題)。

但這不僅僅與GPL有關。引發這個問題的起因是有人抱怨Linux內核最近破壞了源代碼樹外(out-of-tree)ZFS模塊。對此Torvalds說:“請注意,‘我們並不破壞用戶’實際上關乎用戶空間應用程序,關乎我維護的內核。”隨後,Torvalds再次歸結為許可問題,聲稱“但是考慮到Oracle好打官司的本性,加上許可方面的問題,這麼做我絕對不會放心。”

ZFS方面還存在其他問題。最大的問題是它破壞了OSI 7層模型。具體來說,ZFS使用其自己的糾錯機制,因此避開了對開放系統互連(OSI)模型下面幾層的信任。請記住,OSI 7層模型的目標是各種通信系統與標準通信協議實現互操作性。因此,你的整個文件系統避免了Linux依賴的模型。

讓事情變得更復雜的是,ZFS提供了少數幾款生產級Linux文件系統所擁有的功能。唯一可與之匹敵的文件系統是Btrfs,該文件系統常常因不夠穩定、無法用於生產系統而飽受詬病。

最後,Torvalds說:“不要使用ZFS。就這麼簡單。我覺得,它始終比其他任何系統更像是個時髦詞;對我來說,許可問題完全使ZFS成為不值得考慮的文件系統。”他進一步表示:“在我見過的基準測試中,ZFS的結果並不是很棒。而據我所知,它再也沒有得到任何真正的維護,因此從長期穩定性的角度來看,你何必要使用它?”

Canonical對這件事有什麼看法?Canonical的工程主管Martin Wimpress通過電子郵件寫道:“從最近ZFS方面的討論來看,我們的客戶和用戶告訴我們他們希望Ubuntu中有ZFS,因為ZFS擁有許多所需要的功能,可以防止數據損壞、支持高存儲容量、提供高效的數據壓縮、快照和寫入時複製克隆等功能。我們將繼續與OpenZFS項目中的朋友合作,改善Ubuntu上的ZFS。”

讀者只想知道ZFS文件系統接下來會發生什麼。Oracle可能會給相應代碼重新發許可證,以便它與主線內核變得“友好”嗎?如果不是這樣,Torvalds很可能會繼續對ZFS保持冷漠的態度。


分享到:


相關文章: