Linux日志文件系統(tǒng)及性能分析(組圖)
6) 鍵分配(key Assignment)接口 當(dāng)把一個鍵分配給一個項(xiàng)時,鍵分配接口就會被觸發(fā)。每一種項(xiàng)都有一個與其對應(yīng)的鍵分配方法。
3.2 存儲層
ReiserFS是以B+樹來存儲數(shù)據(jù)的,其結(jié)構(gòu)如圖:
圖1:ReiserFS B+ 樹
[upload=1]
在B+樹中的各個結(jié)點(diǎn)中有一個稱為項(xiàng)(Item)的數(shù)據(jù)結(jié)構(gòu)。項(xiàng)是一個數(shù)據(jù)容器,一個項(xiàng)只屬于一個結(jié)點(diǎn),是結(jié)點(diǎn)管理空間的基本單位。如圖所示,一個項(xiàng)包括以下內(nèi)容:
1) Item_body:項(xiàng)的數(shù)據(jù)域
2) Item_key: 項(xiàng)的鍵值
3) Item_offset:數(shù)據(jù)域的起點(diǎn)在結(jié)點(diǎn)中的偏移量
4) Item_length: 數(shù)據(jù)域的長度
5) Item_Plugin_id:項(xiàng)接口ID。
圖2: ReiserFS 項(xiàng)結(jié)構(gòu)
[upload=2]
ReiserFS設(shè)計(jì)了多種不同的項(xiàng)以存儲不同的數(shù)據(jù),主要有以下幾種:
1) static_stat_data: 靜態(tài)統(tǒng)計(jì)數(shù)據(jù),包括文件的所有者,訪問權(quán)限,創(chuàng)建時間,最近修改時間,鏈接數(shù)等
2) cmpnd_dir_item: 包含各個目錄項(xiàng)
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ù)才把這個塊實(shí)際寫入文件系統(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ū)域稱為一個分配組。分配組是唯一的,因?yàn)槊總€分配組管理自己的索引節(jié)點(diǎn)(inode)和空閑空間,實(shí)際上是將這些分配組轉(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)中爭用
評論