ZFS on linux file system簡介 (1)


本篇會先介紹 ZFS file system 的一些背景,後續文章在慢慢介紹如何使用與安裝在linux下。由於本人使用的是ubuntu 13.10 Server X86_64 bit下(ZFS 目前只能安裝在64位元的linux 下),建議 記憶體4GB以上。


簡介

  • ZFS 源自Sun Microsystem (目前已被Oracle買下) Solaris所開發的檔案系統,由Jeff Bonwick所領導團隊在2006年6月整合進s搬6/06版

  • 不同於一般檔案系統以類似LVM的方式將許多儲存裝置集合成一的Pool(儲存池)並將這些儲存裝置稱為『虛擬裝置(vdev)』,所以Zpool 上的檔案系統可以使用這些vdev的總儲存容量。可以使用qutoa來限制儲存池中單個檔案系統所佔的空間。

  • 本身為128位元的檔案系統,支援最大單一檔案大小為16EB,最大單一Volume size為16EB,支援ACL ( POSIX ACL需0.6.3版之後)。

  • 每個pool最大總體容量為256ZB,單一目錄的檔案數量為248個,264單一zpool的裝置數,264系統的zpool數量。

  • 針對每個檔案給於一個checksum做為類似ECC的功能來驗證每個寫入到storage的檔案是否正確避免silent corruption

  • 由於使用Copy-On-Write 技術所以本身提供SnapshotClone

  • Dynamic striping:可以動態加入vdev到pool來加大pool總體容量,但是無法移除vdev來縮小pool

  • 支援檔案加密技術。ZFS本身提供一個工具為scrub來對檔案做Deduplication,把可能在寫入過程重複的檔案刪除,但是此功能滿吃記憶體的所以官方建議要有4GB以上給他用。

  • ZFS提供一個自己的LVM為ZVOL。

  • ZFS本身為一個Block Journling(區塊日誌系統),也可以針對file system提供Compression的功能,官方建議Compression以目前的電腦硬體而言非常的廉價所以在建立file system的時候建議設打開

  • 就寫入檔案方面為Allocate-on-Flush,也就是說寫入時會先存在記憶體內,待系統較閒置時在整個寫入。

  • 可以配合SSD作為一個類似L2 Cache的功能(ZFS稱為L2ARC)當作Cache來對檔案處理做加速動作,由於SSD價格日漸便宜並且其控制晶片越來越強可以用來作為加速與資料完整性的使用,將資料暫時寫入在SSD內就算遇到斷電的時候在重開機時ZFS會從SSD內讀取未寫入的檔案並且回寫到vdev內,確保資料完整性。

  • ZFS 本身提供softraid 可實做Raid 0,1,10,Z(5),Z2(6),Z3。詳細raid資訊請參閱此網站Wiki RAID

更多詳細資料請參閱 wiki ZFSZFS on Linux User Guide

由於OpenSolaris是基於CDDL的版權而Linux是基於GPL造成兩邊版權宣告上的不同,導致無法整個搬到Linux下使用所以早期有團體將ZFS以userspace program的方式寫成一個套件~ZFS-FUSE,但是這個模組在效能上並無法和Solaris原生相同並論因此也未受到重視。

後來由勞倫斯利弗莫爾國家實驗室(Lawrence Livermore National Laboratory)將Sun的ZFS文件系統以CDDL許可採用Kernel module的方式移植到Linux,此ZFS稱之為ZFS on Linux  目前最新的stable版本為0.6.2。
ZFS 目前幾乎被號稱地球上最強的file system,甚至被說有ZFS就不需要其他的file system,接下來的章節會紀錄如何安裝與操作。......待續。

留言