什麽是ZFS文(wén)件系統? - 武漢新(xīn)勝電(diàn)腦
  • 武漢市武昌區(qū)南湖(hú)花(huā)園 瑞安(ān)街(jiē)140号 027-88016877
  • 18627003654
  • love6411692@qq.com

什麽是ZFS文(wén)件系統?

首頁(yè)最新(xīn)動态

什麽是ZFS文(wén)件系統?

編譯自: https://itsfoss.com/what-is-zfs/

作(zuò)者: John Paul

譯者: Lv Feng

今天,我們來談論一下 ZFS,一個先進的文(wén)件系統。我們将讨論 ZFS 從何而來,它是什麽,以及為(wèi)什麽它在科(kē)技(jì )界和企業界如此受歡迎。

雖然我是一個美國(guó)人,但我更喜歡讀成 ZedFS 而不是 ZeeFS,因為(wèi)前者聽起來更酷一些。你可(kě)以根據你的個人喜好來發音。

注意:在這篇文(wén)章中(zhōng),你将會看到 ZFS 被提到很(hěn)多(duō)次。當我在談論特性和安(ān)裝(zhuāng)的時候,我所指的是 OpenZFS 。自從 甲骨文(wén)(Oracle)公(gōng)司放棄 OpenSolaris 項目之後,ZFS(由甲骨文(wén)公(gōng)司開發)和 OpenZFS 已經走向了不同的發展道路。

ZFS 的曆史

Z 文(wén)件系統(Z File System)(ZFS)是由 Matthew Ahrens 和 Jeff Bonwick 在 2001 年開發的。ZFS 是作(zuò)為(wèi) 太陽微系統(Sun MicroSystem) 公(gōng)司的 OpenSolaris 的下一代文(wén)件系統而設計的。在 2008 年,ZFS 被移植到了 FreeBSD 。同一年,一個移植 ZFS 到 Linux 的項目也啓動了。然而,由于 ZFS 是 通用(yòng)開發和發布許可(kě)證 (Common Development and Distribution License)(CDDL)許可(kě)的,它和 GNU 通用(yòng)公(gōng)共許可(kě)證 不兼容,因此不能(néng)将它遷移到 Linux 内核中(zhōng)。為(wèi)了解決這個問題,絕大多(duō)數 Linux 發行版提供了一些方法來安(ān)裝(zhuāng) ZFS 。

在甲骨文(wén)公(gōng)司收購(gòu)太陽微系統公(gōng)司之後不久,OpenSolaris 就閉源了,這使得 ZFS 的之後的開發也變成閉源的了。許多(duō) ZFS 開發者對這件事情非常不滿。 三分(fēn)之二的 ZFS 核心開發者 ,包括 Ahrens 和 Bonwick,因為(wèi)這個決定而離開了甲骨文(wén)公(gōng)司。他(tā)們加入了其它公(gōng)司,并于 2013 年 9 月創立了 OpenZFS 這一項目。該項目引領着 ZFS 的開源開發。

讓我們回到上面提到的許可(kě)證問題上。既然 OpenZFS 項目已經和 Oracle 公(gōng)司分(fēn)離開了,有(yǒu)人可(kě)能(néng)好奇他(tā)們為(wèi)什麽不使用(yòng)和 GPL 兼容的許可(kě)證,這樣就可(kě)以把它加入到 Linux 内核中(zhōng)了。根據 OpenZFS 官網 的介紹,更改許可(kě)證需要聯系所有(yǒu)為(wèi)當前 OpenZFS 實現貢獻過代碼的人(包括初始的公(gōng)共 ZFS 代碼以及 OpenSolaris 代碼),并得到他(tā)們的許可(kě)才行。這幾乎是不可(kě)能(néng)的(因為(wèi)一些貢獻者可(kě)能(néng)已經去世了或者很(hěn)難找到),因此他(tā)們決定保留原來的許可(kě)證。

ZFS 是什麽,它有(yǒu)什麽特性?

正如前面所說過的,ZFS 是一個先進的文(wén)件系統。因此,它有(yǒu)一些有(yǒu)趣的 特性 。比如:

  • 存儲池
  • 寫時拷貝
  • 快照
  • 數據完整性驗證和自動修複
  • RAID-Z
  • 最大單個文(wén)件大小(xiǎo)為(wèi) 16 EB(1 EB = 1024 PB)
  • 最大 256 千萬億(256*1015 )的 ZB(1 ZB = 1024 EB)的存儲

讓我們來深入了解一下其中(zhōng)一些特性。

存儲池

與大多(duō)數文(wén)件系統不同,ZFS 結合了文(wén)件系統和卷管理(lǐ)器的特性。這意味着,它與其他(tā)文(wén)件系統不同,ZFS 可(kě)以創建跨越一系列硬盤或池的文(wén)件系統。不僅如此,你還可(kě)以通過添加硬盤來增大池的存儲容量。ZFS 可(kě)以進行 分(fēn)區(qū)和格式化 。

ZFS 存儲池

寫時拷貝

寫時拷貝 (Copy-on-write)是另一個有(yǒu)趣并且很(hěn)酷的特性。在大多(duō)數文(wén)件系統上,當數據被重寫時,它将永久丢失。而在 ZFS 中(zhōng),新(xīn)數據會寫到不同的塊。寫完成之後,更新(xīn)文(wén)件系統元數據信息,使之指向新(xīn)的數據塊(LCTT 譯注:更新(xīn)之後,原數據塊成為(wèi)磁盤上的垃圾,需要有(yǒu)對應的垃圾回收機制)。這确保了如果在寫新(xīn)數據的時候系統崩潰(或者發生其它事,比如突然斷電(diàn)),那麽原數據将會保存下來。這也意味着,在系統發生崩潰之後,不需要運行 fsck 來檢查和修複文(wén)件系統。

快照

寫時拷貝使得 ZFS 有(yǒu)了另一個特性: 快照(snapshots)。ZFS 使用(yòng)快照來跟蹤文(wén)件系統中(zhōng)的更改。 快照 包含文(wén)件系統的原始版本(文(wén)件系統的一個隻讀版本),實時文(wén)件系統則包含了自從快照創建之後的任何更改。沒有(yǒu)使用(yòng)額外的空間。因為(wèi)新(xīn)數據将會寫到實時文(wén)件系統新(xīn)分(fēn)配的塊上。如果一個文(wén)件被删除了,那麽它在快照中(zhōng)的索引也會被删除。所以,快照主要是用(yòng)來跟蹤文(wén)件的更改,而不是文(wén)件的增加和創建。

快照可(kě)以挂載成隻讀的,以用(yòng)來恢複一個文(wén)件的過去版本。實時文(wén)件系統也可(kě)以回滾到之前的快照。回滾之後,自從快照創建之後的所有(yǒu)更改将會丢失。

數據完整性驗證和自動修複

當向 ZFS 寫入新(xīn)數據時,會創建該數據的校驗和。在讀取數據的時候,使用(yòng)校驗和進行驗證。如果前後校驗和不匹配,那麽就說明檢測到了錯誤,然後,ZFS 會嘗試自動修正錯誤。

RAID-Z

ZFS 不需要任何額外軟件或硬件就可(kě)以處理(lǐ) RAID(磁盤陣列)。毫不奇怪,因為(wèi) ZFS 有(yǒu)自己的 RAID 實現:RAID-Z 。RAID-Z 是 RAID-5 的一個變種,不過它克服了 RAID-5 的寫漏洞:意外重啓之後,數據和校驗信息會變得不同步(LCTT 譯注:RAID-5 的條帶在正寫入數據時,如果這時候電(diàn)源中(zhōng)斷,那麽奇偶校驗數據将跟該部分(fēn)數據不同步,因此前邊的寫無效;RAID-Z 用(yòng)了 “可(kě)變寬的 RAID 條帶” 技(jì )術,因此所有(yǒu)的寫都是全條帶寫入)。為(wèi)了使用(yòng) 基本級别的 RAID-Z (RAID-Z1),你需要至少三塊磁盤,其中(zhōng)兩塊用(yòng)來存儲數據,另外一塊用(yòng)來存儲 奇偶校驗信息 。而 RAID-Z2 需要至少兩塊磁盤存儲數據以及兩塊磁盤存儲校驗信息。RAID-Z3 需要至少兩塊磁盤存儲數據以及三塊磁盤存儲校驗信息。另外,隻能(néng)向 RAID-Z 池中(zhōng)加入偶數倍的磁盤,而不能(néng)是奇數倍的。

巨大的存儲潛力

創建 ZFS 的時候,它是作(zuò)為(wèi) 最後一個文(wén)件系統 而設計的 。那時候,大多(duō)數文(wén)件系統都是 64 位的,ZFS 的創建者決定直接跳到 128 位,等到将來再來證明這是對的。這意味着 ZFS 的容量大小(xiǎo)是 32 位或 64 位文(wén)件系統的 1600 億億倍。事實上,Jeff Bonwick(其中(zhōng)一個創建者)說:“完全填滿一個 128 位的存儲池所需要的 能(néng)量 ,從字面上講,比煮沸海洋需要的還多(duō)。”

如何安(ān)裝(zhuāng) ZFS?

如果你想立刻使用(yòng) ZFS(開箱即用(yòng)),那麽你需要安(ān)裝(zhuāng) FreeBSD 或一個 使用(yòng) illumos 内核的操作(zuò)系統 。 illumos 是 OpenSolaris 内核的一個克隆版本。

事實上,支持 ZFS 是一些有(yǒu)經驗的 Linux 用(yòng)戶選擇 BSD 的主要原因 。

如果你想在 Linux 上嘗試 ZFS,那麽隻能(néng)在存儲文(wén)件系統上使用(yòng)。據我所知,沒有(yǒu)任何 Linux 發行版可(kě)以在根目錄上安(ān)裝(zhuāng) ZFS,實現開箱即用(yòng)。如果你對在 Linux 上嘗試 ZFS 感興趣,那麽 ZFS on Linux 項目 上有(yǒu)大量的教程可(kě)以指導你怎麽做。

附加說明

這篇文(wén)章論述了 ZFS 的優點。現在,讓我來告訴你一個關于 ZFS 很(hěn)現實的問題。使用(yòng) RAID-Z 會很(hěn)貴 ,因為(wèi)你需要購(gòu)買大量的磁盤來增大存儲空間。

via: https://itsfoss.com/what-is-zfs/

作(zuò)者: John Paul 選題: lujun9972 譯者: ucasFL 校對: wxy

聯系方式 / Contact

  • 武漢新(xīn)勝電(diàn)腦
  • 地址:武漢市武昌區(qū)南湖(hú)花(huā)園 瑞安(ān)街(jiē)140号 027-88016877
  • 電(diàn)話:18627003654
  • 聯系人:彭經理(lǐ)
  • 郵箱:love6411692@qq.com
  • 網址:https://www.whxsdn.com
  •  
  •  
  •