建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

永樂國際樂在其中尤文:Linux 日志文件系統剖析:日志的現在和未來

?

定義日志文件系統的措施有很多種,然則讓我們捉住要點。日志文件系統便是專為那些厭倦了不停盯著啟動時 fsck(即文件系統同等性反省)的人而設計的(日志文件系統同樣適用于盼望文件系統具有故障規復能力的群體)。假如系統采納傳統的未供給日志功能的文件系統,那么操作系統在檢測到系統為非正常關機時,會應用 fsck 利用法度榜樣履行同等性查驗。該利用法度榜樣會掃描文件系統(這要花費很長的光陰),并修復任何可安然修復的問題。而在某些環境下,當文件系統毀壞嚴重時,操作系統會啟動到單用戶模式,由用戶進行進一步的修復。

fsck 問題

更麻煩的是,為了確保文件系統元數據的精確性(縱然未檢測到毀壞),操作系統會自動啟動 fsck 進程。是以,避免對文件系統進行同等性查驗恰是必要改進的地方。

那么現在您應該清楚日志文件系統針對的是哪類人群了,然則他們是若何撤消 fsck 的呢?籠統地說,日志文件系統便是經由過程掩護一份日志來防止文件系統崩潰。所謂日志便是一種特殊的文件,它會在一個輪回的緩沖區內記錄文件系統的改動,然后將其按期提交到文件系統。一旦系統發生崩潰,日志文件就會起到一個反省點的感化,用于規復未保存的信息,防止毀壞文件系統元數據。

總之,日志文件系統便是一種具有故障規復能力的文件系統,它使用日志來記錄尚未提交到文件系統的改動,以防止元數據破壞(請拜見圖 1)。然則如浩繁其他 Linux 辦理規整潔樣,日志文件系統有多種規劃供您選擇。下面就讓我們一路簡短回首一下日志文件系統的歷史,然后再看一看現行的幾種文件系統,看看它們之間有什么差別。

什么是元數據?

元數據 指磁盤上的數據的治理布局。它表示文件的創建與刪除、目錄的創建與刪除、擴充文件、截取文件等。

圖 1. 范例的日志文件系統

Linux 日志文件系統的歷史

最早的日志文件系統是 IBM® Journaled File System(JFS)。JFS 于 1990 年頭?年月次發行,而當前 Linux 支持的版本是后期開拓的 JFS2。1994 年,Silicon Graphics 為 IRIX 操作系統引進了高機能的 XFS。XFS 于 2001 年被植入 Linux 系統中。永樂國際樂在其中尤文1998 年開拓的智能文件系統(SFS)起先是為 Amiga 開拓的,但之后卻在 GNU Lesser General Public License(LGPL)下發行,并于 2005 年得到了 Linux 的支持。最常用的日志文件系統 ext3fs (third extended file system)是 ext2 的擴展,它增添了記錄日志的功能。從 2001 年起,Linux 系統中就開始支持 ext3fs。終極,ReiserFS 日志文件系統在其被引入之后,力壓群雄,被廣泛應用。但因為其原開拓者的一些司法膠葛,ReiserFS 日志文件系統未能獲得進一步的成長。

日志的幾種變體

日志文件系統是應用日志來緩沖文件系統的改動(同時也可以利用于緊急故障規復)的,但可以根據記錄的光陰與內容采取不合的策略。此中,三種常見的策略為:回寫(writeback)、預定(ordered)和數據(data)。

在回寫模式 中,僅有元數據被記錄到日志,數據塊則被直接寫入到磁盤位置上。這樣可以保存文件系統布局,防止崩潰,但卻有可能發生數據崩潰(比如:在元數據記錄到日志后,數據塊寫入磁盤前,系統崩潰)。要想辦理這個問題,您可以應用預定模式。預定模式 只將元數據記錄到日志,然則在此之前將數據寫入到磁盤。這樣就可以包管系統規復后數據和文件系統的同等性。著末一種模式將數據也記錄到了日志中。在數據模式 中,元數據和數據都被記錄到日志中。這種模式可以最大年夜限度地防止文件系統崩潰與數據永樂國際樂在其中尤文損掉,但因為整個數據都寫入了兩次(先寫入日志,再寫入磁盤),系統機能可能會低落。

日志的提交也有很多種不合的策略。比如,是在日志將滿時,照樣在超時后?

日志文件系統的現狀

如今,有幾種日志文件系統利用異常廣泛。每一種都有其自己的優毛病。下面先容現存最普遍的四種日志文件系統。

JFS2

JFS2(又稱 enhanced journaled file system)是最早期的日志文件系統,在植入 Linux 之前已被利用于 IBM AIX® 操作系統多年。它是 64 位的文件系統,雖然它是在原本的 JFS 的根基上開拓的,但卻較之有所改進,即:JFS2 具有更優的擴展機能,而且支持多處置懲罰器架構。

JFS2 支持預定的日志記錄要領,可以前進較高的機能,并實現亞秒級文件系統規復。JFS2 同時為前進機能供給了基于分區的文件分配(Extent-based allocation)。基于分區的分配 是指對一組繼續的塊而非單一的塊進行分配。因為這些塊在磁盤上是繼續的,其讀取和寫入的機能就會更好。這種分配的別的一個上風便是可以將元數據治理最小化。按塊分配磁盤空間就意味著要逐塊更新元數據。而應用分區,元數據則僅需按照分區(可以代表多個塊)更新。

JFS2 還應用了 B+ 樹,以便更快地查找目錄和治理分區描述符。JFS2 沒有內部日志提交策略,而是在 kupdate 守護進程超不時提交。

XFS

XFS 是 Silicon Graphicsis 于 1995 年為 IRIX 操作系統開拓的其他早期日志文件系統之一。它于 2001 年就已經被植入 Linux,是以,它已經成熟而且靠得住。

XFS 支持 64 位全地址尋址,并以 B+ 樹為目錄和文件分配供給高機能。XFS 同樣應用了基于分區的分配,支持可變的塊大年夜小(從 512 字節到 64KB )。除分區外,XFS 還采納延時分配,即等到塊將被寫入磁盤時,再為其分配磁盤空間。這樣所需磁盤空間總數就一清二楚,是以這個功能前進了分配繼續磁盤塊的可能性。

XFS 還有一些其他的有趣特點,它可以包管 rate 輸入輸出(I/O — 經由過程為文件系統用戶保留帶寬)和直接 I/O。此中,數據是直接在磁盤和用戶空間緩沖區間拷貝的(而不是從多個緩沖區進入)。XFS 采納回寫日志策略。

第三擴展文件系統(ext3fs)

第三擴展文件系統(third extended file system,ext3fs)是最盛行的日志文件系統,是由 ext2 文件系統演化而來。實際上,Ext3fs 可以與 ext2fs 兼容,這是由于 ext3fs 應用的布局與 ext2fs 相同,僅僅多了一個日志而已。我們以致可以把 ext3fs 的一部分算作 ext2 文件系統掛載,或者永樂國際樂在其中尤文將 ext2 文件系統轉換成 ext3 文件系統(應用 tune2fs 實用法度榜樣)。

Ext3fs 容許用三種要領記錄日志(回寫,預定和數據),但預定模式為默認模式。日志提交策略也是可設置設置設備擺設擺設的,然則默認在日志填滿 1/4 時或此中一個提交計時器超不時,提交日志。

ext3fs 主要的弊端之一便是它最初不是作為日志文件系統而設計的。它是在 ext2fs 的根基上開拓的,是以缺少一些其另日志文件系統所具備的高檔特點(例如分區)。它在機能方面較之 ReiserFS、JFS 以及 XFS 也尤為減色,但它所必要的 CPU 和內存要比同類辦理規劃少。

ReiserFS

什么是 tail packing?

很多環境下,一些文件的大年夜小小于邏輯塊。為了不把可以分配給一個邏輯塊的磁盤空間揮霍給小文件(稱之為tail),于是把多個文件打包到一個單一的邏輯塊中。結果發明這種措施可以讓磁盤空間的容量比其他競爭文件系統(有永樂國際樂在其中尤文機能喪掉)高 5%。

ReiserFS 是從一開始就按照記錄日志的意圖而開拓的日志文件系統。ReiserFS 于 2001 年被引進到主流 2.4 內核(Linux 采納的第一個日志文件系統)。其默認的日志記錄措施為預定,且支持以在線調劑大年夜小的要領擴展文件系統。ReiserFS 同時還具有 tail packing 功能,顯明削減了磁盤碎片。在處置懲罰較小文件方面,ReiserFS 的速率要比 ext3f 快(當 tail packing 可用時)。

ReiserFS(又稱 ReiserFS v3)具有很多先輩的功能,如 B+ 樹。該文件系統的根基款式建立在單一的 B+ 樹的根基之上,這使得搜索的效率和可伸縮性增強。永樂國際樂在其中尤文提交策略則取決于日志的大年夜小,然則要以待提交的塊的數量為根基。

ReiserFS 也碰到了幾個問題 — 大年夜多是近來呈現的,這與其開拓者碰到了一些司法膠葛有直接緣故原由。

日志文件系統的未來

現在您已經懂得了現行的(和以前的)日志文件系統,下面就讓我們看一看它的成長趨勢。

Reiser4

在成功地將 ReiserFS 合并到 Linux 內核,并被很多的 Linux 發行版采納之后,Namesys(開拓 ReiserFS 的公司)便開始致力于新的日志文件系統的開拓。Reiser4 被設計成為全新的日志文件系統,它擁有很多先輩的功能。

Resier4 擬定經由過程 wandering 日志和延遲分配塊直至日志提交(像在 XFS 中一樣)的要領來實現更優秀的日志記錄。Reiser4 還設計有機動的插件架構(以支持諸如壓縮和加密之類的功能),然則被 Linux 社區回絕了,由于這些在虛擬文件系統(virtual file system,VFS)被算作是最好的功能。

因為 Namesys 的所有者的堅持,所有關于 Reiser4 的商業活動都竣事了。

第四擴展文件系統

第四擴展日志文件系統(fourth extended journaling file system,ext4fs)是由 ext3fs 演化而來。Ext4 文件系統被設計為具有向前和向后兼容性,但它具有許多新的高檔特點(此中的一些特點破壞了兼容性)。這就意味著您可以將 ext4fs 的一部分作為 ext3fs 掛載,反之亦然。

首先,ext4fs 是 64 位文件系統,并被設計為可以支持很大年夜的容量(1 exabyte)。它還可以應用分區,然則這樣做將掉去與 ext3fs 的兼容性。像 XFS 和 Reiser4 一樣,ext4fs 還支持在需要時采取延時分配要領分配塊(這樣可以削減磁盤碎片)。日志的內容也已經履行過反省和(checksum),使日志加倍靠得住。ext4fs 并沒有采納標準的 B+ 或者 B* 樹,取而代之的是 B 樹的一種變體,叫做 H 樹,它支持更大年夜的子目錄(ext3 的上限為 32KB )。

雖然延時分配的措施可以削減磁盤碎片,但光陰久了,一個大年夜的文件系統可能會成為碎片。為辦理這個問題,開拓了在線磁盤碎片收拾對象(e4defrag)。您可以應用這個對象來收拾單個的文件或者全部文件系統。

ext3fs 與 ext4fs 間的另一個有趣的差別就在于文件的日期分辨率。在 ext3 中,光陰戳的最小分辨率為 1 秒。而 Ext4fs 是面向未來的:那時處置懲罰器和接口的速率會持續加快,必要更高的分辨率。是以,ext4 中光陰戳的最小分辨率為 1 納秒。

Ext4fs 已被合并到自 2.6.19 今后的 Linux 內核中,但它照樣不敷穩定。下一代系統的開拓將繼承致力于此;輔之以上一代的上風, 它就會是下一代的 Linux 日志文件系統。

停止語

日志文件系統在系統崩潰或斷電時供給了靠得住性,并防止系統崩潰。別的,與較傳統的文件系統措施(比如那些依附于 fsck 的系統)比擬,日志文件系統大年夜大年夜地縮短了系統崩潰的規復光陰。新的日志記錄功能的開拓要指望將來的新算法與布局,也要仰仗曩昔的算法與布局,將 JFS 和 XFS 的功能結合起來。將翌日未來志文件系統到底會若何成長還不得而知,但可以確定的是它們會更具實用性,并會成為新的日志文件系統標準。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
任选9场最高奖金多少 篮球规则犯规大全 腾讯分分彩 昨天河南快三开奖结果 江苏十一选五如何杀号 篮球赔率雪缘园 金满贯彩票苹果 澳洲幸运8规则 nba直播免费观看视频 nba篮球即时指数