新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux日志文件系統(tǒng)及性能分析(組圖)

        Linux日志文件系統(tǒng)及性能分析(組圖)

        作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

        6) 鍵分配(key Assignment)接口 當(dāng)把一個鍵分配給一個項時,鍵分配接口就會被觸發(fā)。每一種項都有一個與其對應(yīng)的鍵分配方法。

        3.2 存儲層

        ReiserFS是以B+樹來存儲數(shù)據(jù)的,其結(jié)構(gòu)如圖:

        圖1:ReiserFS B+ 樹

        [upload=1]

        在B+樹中的各個結(jié)點(diǎn)中有一個稱為項(Item)的數(shù)據(jù)結(jié)構(gòu)。項是一個數(shù)據(jù)容器,一個項只屬于一個結(jié)點(diǎn),是結(jié)點(diǎn)管理空間的基本單位。如圖所示,一個項包括以下內(nèi)容:

        1) Item_body:項的數(shù)據(jù)域

        2) Item_key: 項的鍵值

        3) Item_offset:數(shù)據(jù)域的起點(diǎn)在結(jié)點(diǎn)中的偏移量

        4) Item_length: 數(shù)據(jù)域的長度

        5) Item_Plugin_id:項接口ID。

        圖2: ReiserFS 項結(jié)構(gòu)

        [upload=2]

        ReiserFS設(shè)計了多種不同的項以存儲不同的數(shù)據(jù),主要有以下幾種:

        1) static_stat_data: 靜態(tài)統(tǒng)計數(shù)據(jù),包括文件的所有者,訪問權(quán)限,創(chuàng)建時間,最近修改時間,鏈接數(shù)等

        2) cmpnd_dir_item: 包含各個目錄項

        3) extend_pointers: 指向一個盤區(qū)(extend)

        4) node_pointers: 指向一個結(jié)點(diǎn)

        5) bodies: 包含的是文件的小部分?jǐn)?shù)據(jù)

        3.3 ReiserFS日志

        與ext3 一樣,ReiserFS也有三種日志模式,即journal,ordered,writeback。同時,ReiserFS引入了兩種日志優(yōu)化方法: copy-on-capture和steal-on-capture。copy-on-capture:當(dāng)一個事務(wù)要修改的塊在另一個未提交的事務(wù)中時,就把這個塊復(fù)制一份,這樣這兩個事務(wù)就可以并發(fā)進(jìn)行了。steal-on-capture:當(dāng)一個塊被多個事務(wù)修改時,只有最晚提交的那個事務(wù)才把這個塊實際寫入文件系統(tǒng),其他事務(wù)都不寫這個塊。

        四、XFS

        XFS 是一種高性能的64 位文件系統(tǒng),由SGI 公司為了替代原有的EFS 文件系統(tǒng)而開發(fā)的。XFS 通過保持cache 的一致性、定位數(shù)據(jù)和分布處理磁盤請求來提供對文件系統(tǒng)數(shù)據(jù)的低延遲、高帶寬的訪問。目前SGI已經(jīng)將XFS文件系統(tǒng)從IRIX移植到Linux。

        4.1 分配組(allocation groups)

        當(dāng)創(chuàng)建 XFS 文件系統(tǒng)時,底層塊設(shè)備被分割成八個或更多個大小相等的線性區(qū)域(region),用戶可以將它們想象成塊(chunk)或者線性范圍(range),在 XFS 中,每個區(qū)域稱為一個分配組。分配組是唯一的,因為每個分配組管理自己的索引節(jié)點(diǎn)(inode)和空閑空間,實際上是將這些分配組轉(zhuǎn)化為一種文件子系統(tǒng),這些子系統(tǒng)透明地存在于 XFS 文件系統(tǒng)內(nèi)。有了分配組,XFS 代碼將允許多個線程和進(jìn)程持續(xù)以并行方式運(yùn)行,即使它們中的許多線程和進(jìn)程正在同一文件系統(tǒng)上執(zhí)行大規(guī)模 IO 操作。因此,將 XFS 與某些高端硬件相結(jié)合,將獲得高性能而不會使文件系統(tǒng)成為瓶頸。分配組在內(nèi)部使用高效的 B+樹來跟蹤主要數(shù)據(jù),具有優(yōu)越性能和極大的可擴(kuò)展性。

        4.2 日志記錄

        XFS 也是一種日志記錄文件系統(tǒng),它允許意外重新引導(dǎo)后的快速恢復(fù)。象 ReiserFS 一樣,XFS 使用邏輯日志;它不象 ext3 那樣將文字文件系統(tǒng)塊記錄到日志,而是使用一種高效的磁盤格式來記錄元數(shù)據(jù)的變動。就 XFS 而言,邏輯日志記錄是很適合的;在高端硬件上,日志經(jīng)常是整個文件系統(tǒng)中爭用


        上一頁 1 2 下一頁

        關(guān)鍵詞:

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 广河县| 樟树市| 醴陵市| 北票市| 林口县| 洛宁县| 嘉荫县| 花垣县| 柳林县| 甘孜县| 汾西县| 错那县| 平湖市| 河源市| 麻江县| 勐海县| 夏河县| 马公市| 且末县| 巴中市| 应城市| 磴口县| 武强县| 乡城县| 泉州市| 清流县| 西安市| 尉氏县| 岱山县| 马关县| 建德市| 定襄县| 资中县| 栾城县| 崇义县| 叶城县| 阳曲县| 新沂市| 昆山市| 临江市| 宁阳县|