ITBear旗下自媒體矩陣:

FOSS作者“diss”Linus Tovalds:你根本不懂ZFS on Linux

   時(shí)間:2020-01-14 09:57:22 來源:開源中國編輯:星輝 發(fā)表評(píng)論無障礙通道

上周 Linus Torvalds 在某個(gè)論壇上討論關(guān)于內(nèi)核的相關(guān)問題時(shí),提到了 ZFS on Linux,他表明了自己的態(tài)度,在 Oracle 對(duì) ZFS 的代碼進(jìn)行重新授權(quán)以使其能更友好地被引入到 Linux 內(nèi)核主線之前,他不會(huì)推薦使用 ZFS,同時(shí),即便拋開許可證的原因,Linus 也覺得 ZFS 的綜合性能并不特別強(qiáng)。

本周,F(xiàn)OSS 作者 Jim Salter 針對(duì) Linus 影響廣泛的言論進(jìn)行了回應(yīng),他覺得 Linus 對(duì)于 ZFS on Linux 不了解,表示“Linus 應(yīng)當(dāng)避免對(duì)自己不熟悉的項(xiàng)目發(fā)表權(quán)威性的言論”。

關(guān)于 ZFS on Linux 許可證方面的問題,要追溯到 2019 年 1 月,當(dāng)時(shí)內(nèi)核開發(fā)人員 Greg Kroah-Hartman 決定禁止將某些內(nèi)核符號(hào)導(dǎo)出到非 GPL 可加載內(nèi)核模塊,這直接限制了 ZFS(一度引起 ZFS On Linux 在 Linux Kernel 5.0 上陷入困境)。

內(nèi)核符號(hào)導(dǎo)出將有關(guān)內(nèi)核狀態(tài)的內(nèi)部信息公開給可加載的內(nèi)核模塊,比如_kernel_fpu_跟蹤處理器浮點(diǎn)單元的狀態(tài),無法訪問該符號(hào),ZFS 直接訪問 FPU 的外部?jī)?nèi)核模塊就必須實(shí)現(xiàn)自己的狀態(tài)保存代碼。具體來講,拒絕繼續(xù)導(dǎo)出_kernel_fpu_符號(hào)的技術(shù)影響不是防止模塊直接訪問 FPU,而是阻止模塊使用內(nèi)核的狀態(tài)管理工具來保存和恢復(fù)狀態(tài)。

因此,要?jiǎng)h除對(duì)該符號(hào)的訪問,就需要模塊開發(fā)人員分別重新創(chuàng)建自己的狀態(tài)保存代碼,這會(huì)增加內(nèi)核本身發(fā)生災(zāi)難性錯(cuò)誤的可能性,因?yàn)榛謴?fù)狀態(tài)不正確可能會(huì)導(dǎo)致之后的內(nèi)核操作崩潰。

另一方面,通常,在包括 BSD 在內(nèi)的任何平臺(tái)上,ZFS 都使用 SSE/AVX SIMD 矢量?jī)?yōu)化來加速某些操作,由于無法訪問該_kernel_fpu_符號(hào),ZFS 開發(fā)人員最初被迫完全禁用 SIMD 優(yōu)化,這導(dǎo)致了相當(dāng)大的性能下降。

許可證的問題不明確,所以內(nèi)核人員才做出這樣的限制,像此次 Linus 所說“老實(shí)說,在我收到 Oracle 的正式來信之前,我無法合并 ZFS 的任何工作。”、 “其他人認(rèn)為將 ZFS 代碼合并到內(nèi)核中是可以的,并且模塊接口可以使它正常,這是他們的決定。但是考慮到 Oracle 的訴訟性質(zhì)以及許可方面的問題,我永遠(yuǎn)無法安心這樣做。”

Linus 在討論中繼續(xù)說到 Linux 上包括 ZFS、Nvidia 專有圖形驅(qū)動(dòng)等在內(nèi)的非 GPL 項(xiàng)目使用的內(nèi)核模塊“shim”在法律上的脆弱性。Jim 認(rèn)為這里有一些問題,就是這是否構(gòu)成“合理的防守”,也就是 20 年過去了,現(xiàn)在還沒有人提出任何項(xiàng)目使用 LGPL shim 的問題。LGPL 內(nèi)核模塊 shim 的真正功能不是制裁使用非 GPL 代碼接觸內(nèi)核,而是防止在 GPL 實(shí)施訴訟勝訴的情況下,保護(hù) shim 另一端的專有代碼不會(huì)被強(qiáng)制發(fā)布。關(guān)于脆弱性,Jim 認(rèn)為至少到目前為止,一切都很好。

除了許可方面的討論,Linus 認(rèn)為他見過的基準(zhǔn)測(cè)試也并沒有使 ZFS 看起來那么出色,同時(shí)據(jù)他所知,ZFS 背后也沒有任何真正的維護(hù)人員。這樣的言論讓 Jim 懷疑他是否曾經(jīng)實(shí)際使用過或認(rèn)真研究過 ZFS。同時(shí)他指出此前 15 年中,Linus 也針對(duì) ZFS 技術(shù)上的東西發(fā)表過評(píng)論,包括原子快照、快速復(fù)制、磁盤壓縮、按塊校驗(yàn)和自動(dòng)數(shù)據(jù)修復(fù)等。

Jim 接下來在文章中針對(duì)這些問題給出回應(yīng),比如 ZFS 的逐塊校驗(yàn)和自動(dòng)數(shù)據(jù)修復(fù)功能在他自己的實(shí)際使用中多次防止了數(shù)據(jù)丟失,包括 SATA 控制器受到狂轟濫炸的特別糟糕的情況。一個(gè)標(biāo)準(zhǔn)的 RAID1 鏡像本可以很好地返回 119GB 的壞數(shù)據(jù),而不會(huì)發(fā)出任何警告,但是 ZFS 的實(shí)時(shí)校驗(yàn)和和錯(cuò)誤檢測(cè)使整個(gè)事情減輕到了不必備份的程度。比如原子快照可以在一個(gè)時(shí)間點(diǎn)上以一個(gè)塊為單位保留完整的存儲(chǔ)副本,而性能開銷可以忽略不計(jì),存儲(chǔ)開銷最小,并且這些快照的復(fù)制通??鞌?shù)百或數(shù)千倍,比非文件系統(tǒng)集成的解決方案(如 rsync)更可靠。

最后 Jim 表示,ZFS 可能沒有個(gè)人需要,但是把它貶低為什么也不是,似乎暴露出對(duì)它的無知。

舉報(bào) 0 收藏 0 打賞 0評(píng)論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容
網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系方式  |  版權(quán)聲明  |  RSS訂閱  |  開放轉(zhuǎn)載  |  滾動(dòng)資訊  |  爭(zhēng)議稿件處理  |  English Version