什么是 ZFS?
ZFS 的命名來源發想于"Zettabyte File System"的首字母縮寫。但 ZFS 本身并不具備任何的縮寫意涵,主要闡述做為一個具備高擴充容量檔案系統且還有支持許多延伸功能的一個產品。的確,將 ZFS 稱為檔案系統有點名不副實,因為它在傳統意義上不僅僅是個檔案系統。ZFS 將邏輯卷管理器的概念與功能豐富的和可大規模擴展的檔案系統結合起來。
ZFS 是由 Sun 公司的 Jeff Bonwick 和 Mattew Ahrens 所領導的一支團隊所設計和開發的。它的發展始于 2001 年, 并于 2004 年正式宣布。在 2005 年它被集成了入 Solaris 的主要樹干并且作為 OpenSolaris 的一部分發布。它具有許多非常好的功能, 使其適合企業級服務器。特別是, 它旨在保護資料完整性, 并對快照、復制、壓縮和重復消除等方面提供了內置支持。
Azure 存盤 + ZFS
Azure 存盤服務會自動復制你的資料,幫助防范意外硬體故障,確保資料隨時可用。默認一個區域中保留 3 個副本。地域冗余選項可在數百公里外的區域額外創建 3 個副本,進一步提高可靠性并實作災難恢復。地域冗余備份可讀訪問選項,可將資料可用性進一步提高至 99.99%。
ZFS 本身也提供眾多資料保護的方案,這里有了 Azure 存盤,您也不需要再擔心這一點了。雖然資料保護提供了在故障時重新生成資料的能力,但是這并不涉及處于第一位的資料的有效性。ZFS 通過為寫入的每個塊的元資料生成 32 位校驗和(或 256 位散列)解決了此問題。并且 ZFS 的可變快大小的功能可幫助您更好地來壓縮資料。
那咱這就拿上個月介紹地網盤做個簡單案例吧。
簡單案例
勤快的組員們想著好東西要分享,把使用 Seafile 搭建私人網盤做成了 Azure 資源管理器模板方便一鍵部署 – ubuntu-netdisk-setup。 該模板中使用 Ubuntu 16.04 虛擬機并配備 ZFS 作為資料盤來保證資料的完整性。不同于傳統檔案系統需要駐留于單獨設備或者需要一個卷管理系統去使用一個以上的設備,ZFS 創建在虛擬的,被稱為“zpools”的存盤池之上。每個存盤池可以由若干虛擬設備(virtual devices,vdevs)組成。
# Create seafile-data with the help of ZFS
# -------------------------------------------
zpool create -f ${ZPOOL_NAME} /dev/sdc
zpool set cachefile=/etc/zfs/zpool.cache ${ZPOOL_NAME}
zfs create ${ZPOOL_NAME}/${ZFS_DATASET}
zfs set compression=gzip ${ZPOOL_NAME}/${ZFS_DATASET}
詳情參見 github 上相應的 Azure 資源管理器所呼叫的腳本。
高級功能
為了提高檔案系統的讀寫性能,ZFS 提供了兩種高效的機制:快取 L2ARC(Level 2 Adjustable Replacement Cache)和日志 ZIL (ZFS intent log)。在物理機上,我們可以將少量的高速磁盤(如 SSD)添加到存盤池中,同時使用普通磁盤作為主要存盤介質,從而以較低的價格達到接近完全使用高速磁盤的效果。在 Azure 環境中,我們也可以采用類似的方法,將 VM 上的臨時磁盤設定為 L2ARC(重啟后清空也無影響),創建一塊較小的 SSD 設備作為 ZIL,而將主要的存盤設備設定成普通磁盤,這樣配置的性能還是很不錯的。
更好的閱讀體驗,可以點擊這里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/60096.html
標籤:云存儲
