日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

一 zfs文件系統(tǒng)架構(gòu)解讀

05年時,第一次接觸到ZFS,直覺感到這個文件系的架構(gòu)新穎,有探究的愿望,可隨著時間的流逝,回到Linux世界后,又把它拋在腦后了,再次看到ZFS,就無法釋然了(據(jù)說Linus眼饞ZFS好久了,想把ZFS移植到Linux,取代EXT3,成為下一代Linux內(nèi)核默認(rèn)的文件系統(tǒng)) 。
ZFS中的這個Z就是“Zettabyte,也就是說存儲量級是Zetta級,1Z=1024的3次方個T,而一個T又等于1024個G,我們可以看出zfs是一個海量級的文件系統(tǒng) 。為什么需要海量級?想想未來的網(wǎng)絡(luò)存儲,企業(yè)和科學(xué)研究的數(shù)據(jù)量,現(xiàn)在的32位文件系統(tǒng)遠難以承載了 。ZFS這個128位的文件系統(tǒng),估計存儲整個地球的信息都沒有問題了 。FreeBSD社區(qū)的牛人,已經(jīng)著手對ZFS進行了移植 。
在ZFS的架構(gòu)里,最底層的是存儲池,所有的存儲介質(zhì)都放在這個存儲介質(zhì)里面,然后再在這個存儲池上面部署ZFS的文件系統(tǒng),下面這個圖是zfs的整體架構(gòu),摘自http://www.openSolaris.org/os/community/zfs/source/ 的首頁:該頁對此圖給予了解釋:
三個主要組件:ZPL(ZFS POSIX Layer,ZFS POSIX 層)、DMU(Data Management Unit,數(shù)據(jù)管理單元)和 SPA( Storage Pool Allocator,存儲池分配器) 。
三個基本層:Interface Layer(接口層,與ZPL對應(yīng)),Transactional Object Layer(事物對象層,與DMU對應(yīng)),Pooled Storage Layer(存儲池層,與SPA組件對應(yīng)) 。
從用戶角度看:
文件系統(tǒng)使用者(Filesystem Consumers)
這些應(yīng)用程序是基本的應(yīng)用程序,可通過 POSIX 文件系統(tǒng) API 單獨與 ZFS 交互 。實際上,每個應(yīng)用程序都可歸為此類別 。系統(tǒng)調(diào)用是通過 OpenSolaris VFS 層傳遞到 ZPL的 。
設(shè)備使用者(Device Consumers)
ZFS 提供了一種創(chuàng)建“仿真卷的方式 。對這些卷的備份通過存儲池中的存儲進行的,但在 /dev下顯示為一個普通設(shè)備 。這并不是典型的使用案例,不過有一些例子充分說明了這種功能的有用之處 。有少量應(yīng)用程序直接與這些設(shè)備交互,但對設(shè)備使用最多的還是,位于設(shè)備層之上的內(nèi)核文件系統(tǒng)或目標(biāo)驅(qū)動程序 。
基于GUI的管理
Solaris 在內(nèi)部版本 28 中提供了基于 Web 的 ZFS GUI 。雖然還不是 OpenSolaris 的組成部分,但它是位于 JNI 層之上基于 Java 的 GUI 的一個示例 。< /p>
管理程序
這些應(yīng)用程序是管理 ZFS 文件系統(tǒng)或存儲池的(包括檢查屬性和數(shù)據(jù)集分層結(jié)構(gòu)) 。盡管還有一些分散的程序(如zoneadm、zoneadmd、fstyp),但兩個主要的應(yīng)用程序還是 zpool(1M) 和 zfs(1M) 。
zpool(1M)
此命令負責(zé)創(chuàng)建和管理 ZFS 存儲池 。其主要目的是分析命令行輸入,將其轉(zhuǎn)換為 libzfs 調(diào)用,并順帶處理出現(xiàn)的任何錯誤 。此命令的源代碼可在 usr/src/cmd/zpool 中找到 。它包含以下文件:
zpool_main.c命令的主體,負責(zé)處理所有的參數(shù)和子命令zpool_vdev.c負責(zé)將一系列 vdev 轉(zhuǎn)換成 libzfs 中的 nvlistzpool_iter.c對系統(tǒng)中中一些或全部存儲池進行循環(huán)處理zpool_util.c其他實用程序
zfs(1M)
此命令負責(zé)創(chuàng)建和管理 ZFS 文件系統(tǒng) 。與 zpool(1M) 類似,其目的實際上只是分析命令行參數(shù)并將處理結(jié)果傳遞到 libzfs 。此命令的源代碼可在 usr/src/cmd/zfs 中找到 。它包含以下文件:
【一 zfs文件系統(tǒng)架構(gòu)解讀】zfs_main.c命令的主體,負責(zé)處理所有的參數(shù)和子命令zfs_iter.c對系統(tǒng)中一些或全部數(shù)據(jù)集進行循環(huán)處理

    推薦閱讀