久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SOLARIS ZFS文件系統(tǒng)的示例分析

263次閱讀
沒有評論

共計(jì) 5678 個(gè)字符,預(yù)計(jì)需要花費(fèi) 15 分鐘才能閱讀完成。

這篇文章主要為大家展示了“SOLARIS ZFS 文件系統(tǒng)的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“SOLARIS ZFS 文件系統(tǒng)的示例分析”這篇文章吧。

ZFS 是 SUN 推出的世界上第一個(gè) 128 位的文件系統(tǒng),這意味著它能存儲 1800 億億 (18.4 × 10^1 8) 倍于當(dāng)前 64 位文件系統(tǒng)的數(shù)據(jù)。ZFS 的設(shè)計(jì)如此超前以至于這個(gè)極限就當(dāng)前現(xiàn)實(shí)際可能永遠(yuǎn)無法遇到。據(jù)說:“要填滿一個(gè) 128 位的文件系統(tǒng),將耗盡地球上所有存儲設(shè)備。除非你擁有煮沸整個(gè)海洋的能量,不然你不可能將其填滿。(Populating 128-bit file systems would exceed the quantum limits of earth-based storage. You couldn t fill a 128-bit storage pool without boiling the oceans.)”[1]

以下是 ZFS 的一些理論極限:

* 2^48 — 任意文件系統(tǒng)的快照數(shù)量 (2 × 10^14)
* 2^48 — 任何單獨(dú)文件系統(tǒng)的文件數(shù) (2 × 10^14)
* 16 exabytes (2^64 byte) — 文件系統(tǒng)最大尺寸
* 16 exabytes (2^64 byte) — 最大單個(gè)文件尺寸
* 16 exabytes (2^64 byte) — 最大屬性大小
* 3 × 10^23 petabytes (2^78 byte) — 最大 zpool 大小
* 2^56 — 單個(gè)文件的屬性數(shù)量(受 ZFS 文件數(shù)量的約束,實(shí)際為 2^4 8)
* 2^56 — 單個(gè)目錄的文件數(shù)(受 ZFS 文件數(shù)量的約束,實(shí)際為 2^4 8)
* 2^64 — 單一 zpool 的設(shè)備數(shù)
* 2^64 — 系統(tǒng)的 zpools 數(shù)量
* 2^64 — 單一 zpool 的文件系統(tǒng)數(shù)量

作為對這些數(shù)字的感性認(rèn)識,假設(shè)每秒鐘創(chuàng)建 1,000 個(gè)新文件,達(dá)到 ZFS 文件數(shù)極限需要大約 9,000 年。

在辯解填滿 ZFS 與煮沸海洋的關(guān)系時(shí),Bonwick 寫到:

盡管我們都希望摩爾定律永遠(yuǎn)延續(xù),但是量子力學(xué)給定了任何物理設(shè)備上計(jì)算速率(computation rate)與信息量的理論極限。舉例而言,一個(gè)質(zhì)量為 1 公斤,體積為 1 升的物體,每秒至多在 10^31 位信息 上進(jìn)行 10^51 次運(yùn)算。[參考 Seth Lloyd, Ultimate physical limits to computation(計(jì)算的終極物理限制). Nature 406, 1047-1054 (2000)]。一個(gè)完全的 128 位存儲池將包含 2^128 個(gè)塊 = 2^137 字節(jié) = 2^140 位;應(yīng)此,保存這些數(shù)據(jù)位至少需要(2^140 位) / (10^31 位 / 公斤) = 1360 億公斤的物質(zhì)。

補(bǔ)充:

使用 ZFS 的十條理由
1. 再也不需要 fsck, scandisk

不管你是在用 Linux,UNIX 還是 Windows,相信大家都有過類似的體會:當(dāng)系統(tǒng)意外斷電或者非法關(guān)機(jī),系統(tǒng)重起后發(fā)現(xiàn)文件系統(tǒng)有 inconsistent 的問題,這時(shí) 候就需要 fsck 或者 scandisk 來修復(fù),這段時(shí)間是非常耗時(shí)而且最后不一定能夠修復(fù)成功。更糟糕的是,如果這是一臺服務(wù)器需要做 fsck 的時(shí)候,只能 offline(下線),而且現(xiàn)有應(yīng)用往往都是大硬盤,相應(yīng) fsck 修復(fù)時(shí)間也很長,這對許多使用該服務(wù)器的用戶來說幾乎不能忍受的。而使用 ZFS 后大家可以徹底拋棄 fsck 這種工具,因?yàn)?ZFS 是一個(gè)基于 COW(Copy on Write)機(jī)制的文件系統(tǒng)。COW 是不會對硬盤上現(xiàn)有的文件進(jìn)行重寫,保證所有硬盤上的文件都是有效的。所以不會有這種 inconsistent 的概念,自然就不需要這種工具了。

2. 管理簡單

ZFS 作為一個(gè)全新的文件系統(tǒng),全面拋棄傳統(tǒng) File System + Volume Manager + Storage 的架構(gòu),所有的存儲設(shè)備是通過 ZFS Pool 進(jìn)行管理,只要把各種存儲設(shè)備加 入同一個(gè) ZFS Pool,大家就可以輕松的在這個(gè) ZFS Pool 管理配置文件系統(tǒng)。大家再也不用牢記各種專業(yè)概念,各種命令 newfs, metinit 及各種 Volume Manager 的用法。在 ZFS 中我們只需要兩個(gè)命令,zpool(針 對 ZFS Pool 管理)和 zfs(針對 ZFS 文件系統(tǒng)的管理),就可以輕松管理 128 位的文件系統(tǒng)。舉個(gè)例子,我們經(jīng)常會遇到系統(tǒng)數(shù)據(jù)增長過快,現(xiàn)有存儲容量不夠,需要添加硬盤,如果依照傳統(tǒng)的 Volume Manager 管理方式,那我們需要預(yù)先要考慮很多現(xiàn)有因素,還要預(yù)先根據(jù)應(yīng)用計(jì)算出需要配置的各種參數(shù)。在 ZFS 情況下,我們的系統(tǒng)管理員可以徹底解放,再也不需要這種人為的復(fù)雜考慮和計(jì)算,我們可以把這些交給 ZFS,因?yàn)?ZFS Pool 會自動調(diào)節(jié),動態(tài)適應(yīng)需求。我們只需一個(gè)簡單的命令為這個(gè) ZFS Pool 加入新的硬盤就可以了:

zpool add zfs_pool mirror c4t0d0 c5t0d0

基于這個(gè)動態(tài)調(diào)節(jié)的 ZFS Pool 之上的所有的文件系統(tǒng)就可以立即使用到這個(gè)新的硬盤,并且會自動的選擇最優(yōu)化的參數(shù)。

而且 ZFS 同時(shí)也提供圖形化的管理界面。

3. 沒有任何容量限制

ZFS(Zettabyte File System)文件系統(tǒng)就如其名字所預(yù)示,可以提供真正的海量存儲,在現(xiàn)實(shí)中幾乎不可能遇到容量問題。在現(xiàn)有的 64 位 kernel(內(nèi)核)下,它可以容納達(dá)到 16 Exabytes(264)大小的單個(gè)文件,可以使用 264 個(gè)存儲設(shè)備,可以創(chuàng)建 264 個(gè)文件系統(tǒng)。

4. 完全保證 數(shù)據(jù) 的正確和完整

由于 ZFS 所有的數(shù)據(jù)操作都是基于 Transaction(事務(wù)),一組相應(yīng)的操作會被 ZFS 解析為一個(gè)事務(wù)操作,事務(wù)的操作就代表著一組操作要么一起失敗,要么一起成功。而且如前所說,ZFS 對 所有的操作是基于 COW(Copy on Write),從而保證設(shè)備上的數(shù)據(jù)始終都是有效的,再也不會因?yàn)橄到y(tǒng)崩潰或者意外掉電導(dǎo)致數(shù)據(jù)文件的 inconsistent。

還有一種潛在威脅數(shù)據(jù)的可能是來自于硬件設(shè)備的問題,比如磁盤,RAID 卡的硬件問題或者驅(qū)動 bug?,F(xiàn)有文件系統(tǒng)通常遇到這個(gè)問題,往往只是簡單的把錯(cuò)誤數(shù)據(jù)直接交給上層應(yīng)用,通常我們把這個(gè)問題稱作 Silent Data Corruption。而在 ZFS 中,對所有數(shù)據(jù)不管是用戶數(shù)據(jù)還是文件系統(tǒng)自身的 metadata 數(shù)據(jù)都進(jìn)行 256 位的 Checksum(校驗(yàn)),當(dāng) ZFS 在提交數(shù)據(jù)時(shí)會進(jìn)行校驗(yàn),徹底杜絕這種 Silent Data Corruption 情況。

5. 提供優(yōu)異 性能和擴(kuò)展性

和傳統(tǒng) File System + Volume Manager + Storage 架構(gòu)不同,ZFS 則是直接基于存儲設(shè)備提供所有的功能,因此有自己獨(dú)有的創(chuàng)新特性,性能自然非比尋常。

    * Dynamic Striping vs. Static Striping

由于 ZFS 是基于 COW 和一個(gè)全局動態(tài)的 ZFS Pool,任何一次寫 操作,都是對一塊新數(shù)據(jù)塊(Block)的一次寫操作。ZFS 從 ZFS Pool 中動態(tài)挑選出一個(gè)最優(yōu)的設(shè)備,并且以一個(gè) transaction(事務(wù))線性寫入,充分有效地利用了現(xiàn)有設(shè)備的帶寬,我們把這個(gè)特性稱為 Dynamic Striping。而相對應(yīng)的 Static Striping 則是傳統(tǒng)文件系統(tǒng)所使用的方式,Static Striping 需要管理員預(yù)先對這組 Stripe 進(jìn)行正確地計(jì)算人為設(shè)置,而且如果加入新的設(shè)備則需要再次人為的計(jì)算和設(shè)置,更為嚴(yán)重的是如果人為計(jì)算錯(cuò)誤,則會直接影響系統(tǒng)的性能。而在使用 Dynamic Striping 這種特性之后,我們根本不需要人為介入,ZFS 會自動調(diào)整,智能的為你提供最佳的設(shè)備,最快的操作方式。

    * 支持多種 大小的數(shù)據(jù)塊(Multiple Block Size)

ZFS 支持多種大小的數(shù)據(jù)塊定義,從 512 字節(jié)到 1M 字節(jié)。和傳統(tǒng)文件系統(tǒng)往往都是固定大小數(shù)據(jù)塊不同,ZFS 則是可以動態(tài)的根據(jù)不同 大小的文件進(jìn)行計(jì)算,動態(tài)的選擇最佳的數(shù)據(jù)塊。

因?yàn)椴煌笮?shù)據(jù)塊,直接影響到實(shí)際使用硬盤容量和讀取速度。如果使用較小的數(shù)據(jù)塊,存儲文件所導(dǎo)致的碎片則較少,讀寫小文件更快一些,但是會導(dǎo)致需要創(chuàng)建更多的 metadata,讀寫大文件則會更費(fèi)時(shí)。如果使用較大的數(shù)據(jù)塊,使用的 metadata 較少,更利于讀寫大文件,但是會導(dǎo)致更多的碎片。ZFS 根據(jù)實(shí)際調(diào)查現(xiàn)有文件使用的情況,分析出一個(gè)選擇數(shù)據(jù)塊大小的算法,動態(tài)的根據(jù)實(shí)際文件大小確定最佳的數(shù)據(jù)塊。所以 ZFS 是非常智能的,在不需要系統(tǒng)管理員介入,就可以得到一個(gè)自我調(diào)優(yōu)的結(jié)果。當(dāng)然 ZFS 也支持用戶對單個(gè)文件或者整個(gè)文件系統(tǒng)所使用的數(shù)據(jù)塊大小的自定義設(shè)置。

    * 智能預(yù)讀?。↖ntelligent Prefetch)

多數(shù)的操作系統(tǒng)都有這種將數(shù)據(jù)預(yù)先讀取的功能,而 ZFS 則是建立在文件系統(tǒng)上直接提供的一種更加智能的數(shù)據(jù)預(yù)讀取功能。它不僅可以智能地識別出多種讀取模式,進(jìn)行提前讀取數(shù)據(jù),而且可以對每個(gè)讀取數(shù)據(jù)流進(jìn)行這種預(yù)讀取智能識別,這個(gè)對許多流媒體提供者來說是件非常好的事情。

在擴(kuò)展性上,和現(xiàn)有文件系統(tǒng)多是基于一個(gè)受限的靜態(tài)模型不同,ZFS 是采用 ZFS Pool 這個(gè)動態(tài)概念,它的 metadata 也是動態(tài),并且讀寫操作都是可并行的,并且具有優(yōu)先級概念,所以即使在大數(shù)據(jù)量,多設(shè)備的情況下仍可以保證性能的線性增長。

6. 自我修復(fù)功能

    * ZFS Mirror 和 RAID-Z

傳統(tǒng)的硬盤 Mirror 及 RAID 4,RAID 5 陣列方式都會遇到前面提到過的問題:Silent Data Corruption。如果發(fā)生了某塊硬盤物理問題導(dǎo)致數(shù)據(jù)錯(cuò)誤,現(xiàn)有的 Mirror,包括 RAID 4,RAID 5 陣列會默默地把這個(gè)錯(cuò)誤數(shù)據(jù)提交給上層應(yīng)用。如果這個(gè)錯(cuò)誤發(fā)生在 Metadata 中,則會直接導(dǎo)致系統(tǒng)的 Panic。而且還有一種更為嚴(yán)重的情況是:在 RAID 4 和 RAID 5 陣列中,如果系統(tǒng)正在計(jì)算 Parity 數(shù)值,并再次寫入新數(shù)據(jù)和新 Parity 值的時(shí)候發(fā)生斷電,那么整個(gè)陣列的所有存儲的數(shù)據(jù)都毫無意義了。

在 ZFS 中則提出了相對應(yīng)的 ZFS Mirror 和 RAID- Z 方式,它在負(fù)責(zé)讀取數(shù)據(jù)的時(shí)候會自動和 256 位校驗(yàn)碼進(jìn)行校驗(yàn),會主動發(fā)現(xiàn)這種 Silent Data Corruption,然后通過相應(yīng)的 Mirror 硬盤或者通過 RAID- Z 陣列中其他硬盤得到正確的數(shù)據(jù)返回給上層應(yīng)用,并且同時(shí)自動修復(fù)原硬盤的 Data Corruption。

    * Fault Manager

在 Solaris 10 中,包含 一個(gè) ZFS 診斷引擎和 Solaris 的 Fault Manager(這也是 Solaris 10 的另一個(gè)新特性)交互,可以實(shí)時(shí)地診斷分析并且報(bào)告 ZFS Pool 和存儲設(shè)備的錯(cuò)誤,用戶可以通過 Fault Manager 及時(shí)得到一個(gè)非常友善的消息。這個(gè)診斷引擎雖然不會采取主動的行為去修復(fù)或者解決問題,但是會在消息中提示系統(tǒng)管理員可采取的動作。類似下面一個(gè) ZFS 報(bào)錯(cuò)消息,其中 REC-ACTION 就是建議采取的動作:

SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major

EVENT-TIME: Fri Mar 10 11:09:06 MST 2006

PLATFORM: SUNW,Ultra-60, CSN: -, HOSTNAME: neo

SOURCE: zfs-diagnosis, REV: 1.0

EVENT-ID: b55ee13b-cd74-4dff-8aff-ad575c372ef8

DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information.

AUTO-RESPONSE: No automated response will occur.

IMPACT: Fault tolerance of the pool maybe compromised.

REC-ACTION: Run’zpool status -x’and replace the bad device.

7. 安全

在安全上,ZFS 支持類似 NT 風(fēng)格 NFSv4 版的 ACL(讀取控制列表)。而且前面所提到的 256 位驗(yàn)證碼,用戶可選擇多種驗(yàn)證方式,包括 SHA-256 驗(yàn)證算法,從而在物理存儲單元級別上保證數(shù)據(jù)的安全性。

8. 超強(qiáng)功能

ZFS 作為“最后一個(gè)文件系統(tǒng)”,涵蓋了基本的文件系統(tǒng)和 Volume 管理的功能,同時(shí)一并提供許多企業(yè)級別的超強(qiáng)功能:Quota(配額),Reservation(預(yù)留), Compression(壓 縮),Snapshot(快照),Clone(克?。?。并且速度非??臁S辛诉@個(gè)文件系統(tǒng),大家再也不需要任何 Volume Manager 了。

9. 兼容性

ZFS 是一個(gè)完全兼容 POSIX 規(guī)范的文件系統(tǒng),所以處于上層的應(yīng)用程序是完全不受影響。ZFS 也提供一個(gè) Emulated Volume 模塊,可以把任何一個(gè) ZFS 文件系統(tǒng)作為普通的塊設(shè)備使用。同時(shí) ZFS 也可以使用基于 Volume Manager 構(gòu)建的 Volume 作為存儲設(shè)備單 元。這樣在不需要修改應(yīng)用程序,不修改已有文件系統(tǒng)下,給了大家最大的自由度去獲得 ZFS 提供的各種特性。

10. 開源

ZFS 是 Sun Microsystems 公司作為 OpenSolaris 的一個(gè)開源項(xiàng)目運(yùn)作并且完全免費(fèi)使用,點(diǎn)擊這里(http: //www.opensolaris.org/os/community/zfs/source/) 可以直接瀏覽到 ZFS 的代碼。這就代表著我們不僅同時(shí)可以享受商業(yè)公司的高質(zhì)量,也可以獲得開源模式的優(yōu)點(diǎn)。

雖然目前只有 Solaris 支持該文件系統(tǒng),但是這種開源的模式必定會促進(jìn)更多基于 ZFS 的應(yīng)用?,F(xiàn)在已經(jīng)有國外開發(fā)者正在將 ZFS 移植到 Linux 和 Mac OS 上來。如果想要體驗(yàn)一下 ZFS,由于目前它和 Solaris 10 綁定在一起,所以需要下載最新版的 Solaris 10 6/06。

以上是“SOLARIS ZFS 文件系統(tǒng)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)5678字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 湄潭县| 友谊县| 大余县| 东台市| 湖州市| 社旗县| 江山市| 沁源县| 叙永县| 宁陵县| 临夏县| 广东省| 广灵县| 邵武市| 清水河县| 东乡族自治县| 中山市| 合水县| 莆田市| 盐津县| 康平县| 大田县| 长沙市| 江达县| 巴马| 朔州市| 沙河市| 哈巴河县| 休宁县| 尚义县| 枣强县| 天柱县| 株洲市| 东台市| 刚察县| 常山县| 贺兰县| 丰城市| 台湾省| 汝州市| 阜康市|