什么是 ZFS文件系統?ZFS概念及特點簡介


什么是 ZFS?

ZFS(Zettabyte File System)是由SUN公司的Jeff Bonwick領導設計的一種基於Solaris的文件系統,最初發布於20014年9月14日。 SUN被Oracle收購后,現在稱為Oracle Solaris ZFS。

ZFS全稱是 Zettabyte File System,單個ZFS文件系統最多支持 256 quadrillion zettabytes (ZB), 1ZB等於2的70次方字節。相對於傳統的EXT、XFS、JFS、ReiserFS或NTFS,ZFS的一個重要側重點就是突出了對數據完整性的保護。
ZFS 文件系統是一種革新性的新文件系統,可從根本上改變文件系統的管理方式,並具有目前面市的其他任何文件系統所沒有的功能和優點。ZFS 強健可靠、可伸縮、易於管理。
因為其先進性,ZFS被稱為最后的操作系統,21世紀最好的操作系統,也曾經被蘋果用於Mac OSX 10.5操作系統中,但是當Mac OSX10.6雪豹發布時,大家發現蘋果完全棄用了ZFS。
原因可能是,當Oracle收購SUN時,Oracle自己已經有了開源文件系統BTRFS,外界認為它無力分身繼續ZFS的開發;另一方面,Netapp稱ZFS文件系統侵犯其WAFL專利技術,綜合這些,蘋果最終停止支持ZFS文件系統。

ZFS 池存儲

ZFS 使用存儲池的概念來管理物理存儲。以前,文件系統是在單個物理設備的基礎上構造的。為了利用多個設備和提供數據冗余性,引入了卷管理器的概念來提供單個設 備的表示,以便無需修改文件系統即可利用多個設備。此設計增加了更多復雜性,並最終阻礙了特定文件系統的繼續發展,因為這類文件系統無法控制數據在虛擬卷 上的物理放置。

ZFS 可完全避免使用卷管理。ZFS 將設備聚集到存儲池中,而不是強制要求創建虛擬卷。存儲池說明了存儲的物理特征(設備布局、數據冗余等),並充當可以從其創建文件系統的任意數據存儲庫。 文件系統不再僅限於單個設備,從而可與池中的所有文件系統共享磁盤空間。您不再需要預先確定文件系統的大小,因為文件系統會在分配給存儲池的磁盤空間內自 動增長。添加新存儲器后,無需執行其他操作,池中的所有文件系統即可立即使用所增加的磁盤空間。在許多方面,存儲池與虛擬內存系統相似:將一個內存 DIMM 加入系統時,操作系統並不***您運行命令來配置內存並將其指定給個別進程。系統中的所有進程都會自動使用所增加的內存。

事務性語義

ZFS 是事務性文件系統,這意味着文件系統狀態在磁盤上始終是一致的。傳統文件系統可就地覆寫數據,這意味着如果系統斷電(例如,在分配數據塊到將其鏈接到目錄 中的時間段內斷電),則會使文件系統處於不一致狀態。以前,此問題是通過使用 fsck 命令解決的。此命令負責檢查並驗證文件系統狀態,並嘗試在操作過程中修復任何不一致性。這種文件系統不一致問題曾給管理員造成巨大困擾,fsck 命令並不保證能夠解決所有可能的問題。最近,文件系統引入了日志記錄的概念。日志記錄過程在單獨的日志中記錄操作,在系統發生崩潰時,可以安全地重放該日 志。由於數據需要寫入兩次,因此該過程會引入不必要的開銷,而且通常會導致一組新問題,例如在無法正確地重放日志時。
對於事務性文件系統,數據是使用寫復制語義管理的。數據永遠不會被覆寫,並且任何操作序列會全部被提交或全部被忽略。因此,文件系統絕對不會因意外斷電或 系統崩潰而被損壞。盡管最近寫入的數據片段可能丟失,但是文件系統本身將始終是一致的。此外,只有在寫入同步數據(使用 O_DSYNC 標志寫入)后才返回,因此同步數據決不會丟失。

校驗和與自我修復數據

對於 ZFS,所有數據和元數據都通過用戶可選擇的校驗和算法進行驗證。提供校驗和驗證的傳統文件系統出於卷管理層和傳統文件系統設計的必要,會逐塊執行此操 作。在傳統設計中,某些故障可能導致數據不正確但沒有校驗和錯誤,如向錯誤位置寫入完整的塊等。ZFS 校驗和的存儲方式可確保檢測到這些故障並可以正常地從其中進行恢復。所有校驗和驗證與數據恢復都是在文件系統層 執行的,並且對應用程序是透明的。

此外,ZFS 還會提供自我修復數據。ZFS 支持存儲池具有各種級別的數據冗余性。檢測到壞的數據塊時,ZFS 會從另一個冗余副本中提取正確的數據,而且會用正確的數據替換錯誤的數據。

獨一無二的可伸縮性

ZFS 文件系統的一個關鍵設計要素是可伸縮性。該文件系統本身是 128 位的,所允許的存儲空間是 256 quadrillion zettabyte (256x1015 ZB)。所有元數據都是動態分配的,因此在首次創建時無需預先分配 inode,否則就會限制文件系統的可伸縮性。所有算法在編寫時都考慮到了可伸縮性。目錄最多可以包含 248(256 萬億)項,並且對於文件系統數或文件系統中可以包含的文件數不存在限制。

ZFS 快照

快照是文件系統或卷的只讀副本。可以快速而輕松地創建快照。最初,快照不會占用池中的任何附加磁盤空間。
活動數據集中的數據更改時,快照通過繼續引用舊數據來占用磁盤空間。因此,快照可防止將數據釋放回池中。
簡化的管理
最重要的是,ZFS 提供了一種極度簡化的管理模型。通過使用分層文件系統布局、屬性繼承以及自動管理掛載點和 NFS 共享語義,ZFS 可輕松創建和管理文件系統,而無需使用多個命令或編輯配置文件。可以輕松設置配額或預留空間,啟用或禁用壓縮,或者通過單個命令管理許多文件系統的掛載 點。您就可以檢查或替換設備,而無需學習另外的一套卷管理命令。您可以發送和接收文件系統快照流
ZFS 通過分層結構管理文件系統,該分層結構允許對屬性(如配額、預留空間、壓縮和掛載點)進行這一簡化管理。在此模型中,文件系統是中央控制點。文件系統本身 的開銷非常小(相當於創建一個新目錄),因此鼓勵您為每個用戶、項目、工作區等創建一個文件系統。通過此設計,可定義細分的管理點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM