天天看點

ZFS檔案系統介紹

什麼是 ZFS?

ZFS(Zettabyte File System)是由SUN公司的Jeff Bonwick上司設計的一種基于Solaris的檔案系統,最初釋出于20014年9月14日。 SUN被Oracle收購後,現在稱為Oracle Solaris ZFS。

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檔案系統。

Oracle ZFS系列産品:7120/7320/7420/ZS3-2/ZS3-4

Oracle ZFS特性:

1.      提供業界獨有的混合存儲池架構,将高速緩存、讀寫SSD緩存、高速SAS磁盤和大容量SAS磁盤結合在一起,滿足使用者高性能大容量的需要。

2.      通過業界最大的CPU(80core)和高速緩存(2TB Cache)提供給使用者強大的處理能力。

3.      作為統一存儲産品支援NAS, 光纖,iSCSI, Infiniband等各類協定。

4.      唯一支援Oracle資料庫混合列壓縮(HCC)和Oracle智能存儲協定(OISP)的NAS産品,可以提高3-5倍的資料庫通路性能,同時提供最大50倍的資料庫容量壓縮,超過任何其它同類廠商的産品,降低使用者投資。

5.      強大的存儲實時監控和分析軟體,滿足系統管理人員快速發現、快速診斷問題的需要。

6.      簡單的管理界面友善使用者系統管理人員,所有協定和大部分資料管理無需額外的付費許可,提高使用者投資保護。

7.      強大的權威實測資料證明其強大的性能和成本效益。(參考SPC-1,SPC-2和SPECsfs報告)

Oracle ZFS适合的應用:

1.      高性能NAS Oracle資料庫應用。

2.      傳統檔案系統應用(NFS,CIFS, dNFS).

3.      磁盤備份資料保護。

4.      測試開發。

5.      虛拟化和雲存儲。

6.      BI和資料倉庫應用

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 通過分層結構管理檔案系統,該分層結構允許對屬性(如配額、預留白間、壓縮和挂載點)進行這一簡化管理。在此模型中,檔案系統是中央控制點。檔案系統本身的開銷非常小(相當于建立一個新目錄),是以鼓勵您為每個使用者、項目、工作區等建立一個檔案系統。通過此設計,可定義細分的管理點。