複製鏈接
請複製以下鏈接發送給好友

日誌式文件系統

鎖定
日誌式文件系統,具有故障恢復能力的文件系統。
中文名
日誌式文件系統
外文名
Journaling file system (logging file system)
類    型
內核、服務等
作    用
跟蹤磁盤數據變更

日誌式文件系統系統介紹

日誌文件系統(journaling file system)是一個具有故障恢復能力的文件系統,在這個文件系統中,因為對目錄以及位圖的更新信息總是在原始的磁盤日誌被更新之前寫到磁盤上的一個連續的日誌上,所以它保證了數據的完整性。當發生系統錯誤時,一個全日誌文件系統將會保證磁盤上的數據恢復到發生系統崩潰前的狀態。同時,它還將覆蓋未保存的數據,並將其存在如果計算機沒有崩潰的話這些數據可能已經遺失的位置,這是對關鍵業務應用來説的一個很重要的特性。
並不是所有的操作系統都提供了同樣的日誌技術。Windows NT提供了一個完整系統的不太健壯的版本。如果你的Windows NT系統崩潰了,你可能不會丟失整個磁盤卷,但你可能會丟失系統崩潰前沒寫到磁盤的所有數據。出於同樣的原因,缺省的Linux系統,ext2fs,根本沒有登記日誌。這就意味着,一旦系統崩潰——雖然在Linux系統中不常見——就會毀壞整個磁盤卷。

日誌式文件系統舉例

例如,有的是默認的系統日誌文件,有的僅用於安全消息,有的記載 cron 任務的日誌。 當你在試圖診斷和解決系統問題時,如試圖載入內核驅動程序或尋找對系統未經授權的使用企圖時,日誌文件會很有用。本節討論要到哪裏去尋找日誌文件,如何查看日誌文件,以及在日誌文件中查看什麼。 某些日誌文件被叫做 syslogd 的守護進程控制。被 syslogd 維護的日誌消息列表可以在 /etc/syslog.conf 配置文件中找到。
儘管Linux可以支持種類繁多的文件系統,但是幾乎所有的現代Linux發行版都用ext4作為默認的文件系統。
ext4的設計者主要考慮的是文件系統性能方面的問題。ext4在寫入文件內容的同時並沒有同時寫入文件的meta-data(和文件有關的信息,例如:權限所有者以及創建和訪問時間)。換句話説,Linux先寫入文件的內容,然後等到有空的時候才寫入文件的meta-data。這樣若出現寫入文件內容之後但在寫入文件的meta-data之前系統突然斷電,就可能造成在文件系統就會處於不一致的狀態。在一個有大量文件操作的系統中出現這種情況會導致很嚴重的後果。
日誌文件系統比傳統的文件系統安全,因為它用獨立的日誌文件跟蹤磁盤內容的變化。就像關係型數據庫RDBMS),日誌文件系統可以用事務處理的方式,提交或撤消文件系統的變化。
日誌式文件系統在強調數據完整性企業級服務器中有着重要的需求,是文件系統發展的方向。日誌式文件系統的思想來自於如Oracle等大型數據庫。數據庫操作往往是由多個相關的、相互依賴的子操作組成,任何一個子操作的失敗都意味着整個操作的無效性,對數據庫數據的任何修改都要回復到操作以前的狀態。日誌式文件系統採用了類似的技術。
在分區中保存有一個日誌記錄文件,文件系統寫操作首先是對記錄文件進行操作,若整個寫操作由於某種原因(如系統掉電)而中斷,則在下次系統啓動時就會讀日誌記錄文件的內容來恢復沒有完成的寫操作,這個過程一般只需要幾秒鐘。

日誌式文件系統linux環境下

SGI的xfs文件系統
SGI最新發布xfs為 1.0.1版。SGI的XFS 1.0是可被linux的2.4.x核心支持.在redhat上運行的很好,SGI還在redhat上開發了一個安裝程序.
其它linux發行版的安裝程序也正在開發中.
SGI的xfs被稱為業界最先進的、最具可升級性的文件系統技術。它是一個全64位,快速、穩固的日誌文件系統,多年用於sgi的irix操作系統。sgi決定支持linux社區,將關鍵的基本架構技術授權於linux。它以開放資源形式發佈了他們自己擁有的xfs的源代碼,並開始進行移植。此工作進展得很快,目前已進入beta版階段。作為一個64位文件系統,xfs可以支持超大數量的文件(9g×1gb,甚至更大的18g×1gb),可在大型 2d 和 3d 數據方面提供顯著的性能。xfs有能力預測其它文件系統薄弱環節,同時xfs提供了在不妨礙性能的情況下增強可靠性和快速的事故恢復。
sgi的xfs可為linux和開放資源社區帶來的新特性有:
可升級性
xfs被設計成可升級,以面對大多數的存儲容量和i/o存儲需求,可處理大型文件和包含巨大數量文件的大型目錄,滿足二十一世紀快速增長的磁盤需求。xfs有能力動態地為文件分配索引空間,使系統形成高效支持大數量文件的能力。在它的支持下,用户可使用1exabyte (1g×1gb) 大的文件,遠遠大於現在最大的文件系統。
優秀的i/o 性能
典型的現代服務器使用大型的條帶式磁盤陣列,以提供達數gb/秒的總帶寬。xfs可以很好地滿足i/o請求的大小和併發i/o請求的數量。
系統排錯
xfs可以在一秒內從大多數意外中斷中恢復。傳統文件系統必須在中斷後做一些特定的文件系統檢查,可能會花費數小時才完成。xfs避免了冗長的文件系統檢查,可明顯地減少讀寫磁盤的時間。
xfs可作為root文件系統,並被lilo支持.在NFS服務器上使用也沒問題.支持軟件raid和LVM.
Reiserfs文件系統
Reiserfs文件系統的主頁是在1997年7月23日,Hans Reiser把他的基於平衡樹結構的ReiserFS文件系統在網上公佈 。 這是ReiserFS的第一次公開亮相。此後,ReiserFS一直在Hans Reiser和領導下的開發小組下開發和發展,SuSE Linux也對它的發展起了重大的幫助。
由於ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。Linux內核2.4.1-pre4版本開始包含ReiserFS文件系統。當前的ReiserFS只能在Intel結構體系上使用,但支持其他體系結構的ReiserFS版本也正在積極開發中。
新一代的reiser4將於2002/9/30日發佈.
ReiserFS是一種新型的文件系統,在藍點Linux中你可以選擇它來裝載你的Linux操作系統和其他應用程序和數據文件。它通過一種與眾不同的方式--完全平衡樹結構來容納數據,包括文件數據,文件名以及日誌支持。ReiserFS還以支持
海量磁盤和磁盤陣列,並能在上面繼續保很快的搜索速度和很高的效率。
ReiserFS是基於平衡樹的文件系統結構,尤其對於大量文件的巨型文件系統,如服務器上的文件系統,搜索速度要比ext2快;ext2使用局部的二分查找法,綜合性能比不上ReiserFS。
空間分配和利用情況
ReiserFS裏的目錄是完全動態分配的,因此不存在ext2中常見的無法回收巨型目錄佔用的磁盤空間的情況。ReiserFS裏小文件(<4K)可以直接存儲進樹,小文件讀取和寫入的速度更快,樹內節點是按字節對齊的,小的文件可共享同一個硬盤塊,
節約大量空間。Ext2使用固定大小的塊分配策略,也就是説,不到4K的小文件也要佔據4K的空間,導致的空間浪費比較嚴重。
先進的日誌機制
ReiserFS有先進的日誌(Journaling/logging)機制,在系統意外崩潰的時候,未完成的文件操作不會影響到整個文件系統結構的完整性。 ext2雖然健壯性很強,但一旦文件系統被不正常地斷開,在下一次啓動時它將不得不進行漫長的檢查系統數
據結構的完整性的過程,這是為了防止數據丟失而必需的操作。對於較大型的服務器文件系統,這種"文件系統檢查"可能要持續好幾個小時,在很多場合下這樣長的時間是無法接受的。 解決這個問題的一種技術"日誌文件系統"。在日誌的幫助下,每個對數據結構的改變都被記錄下來,日誌在機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬盤。正因為如此,在系統突然崩潰時,在下次啓動幾秒鐘後就能恢復成一個完整的系統,系統也就能很快的使用了。
支持海量磁盤和優秀的綜合性能
ReiserFS是一個相當現代化的文件系統,相比之下,ext2雖然性能已經很好了,但其設計還只是20世紀80年代的水準。
ReiserFS的出現,使Linux擁有了像Irix/AIX那樣的高檔商用Unix才有的高級文件系統。ReiserFS可輕鬆管理上百G的文件系統,在企業級應用中有其用武之地,由於它的高效存儲和快速小文件I/O特點,它在桌面系統上也表現出色:啓動X窗口系統的時間ReiserFS比ext2少1/3。而ext2則無法管理2G以上的單個文件,這也使得ReiserFS在某些大型企業級應用中比ext2要出色。
ReiserFS一個最受人批評的缺點是每升級一個版本,都將要將磁盤重新格式化一次,這個缺點也正在改進中。
IBM的jfs文件系統
IBM最新發布xfs 1.0.2版.
jfs(Journaled File System Technology for Linux)的開發者包括AIX(IBM的Unix)的jfs的主要開發者。在AIX上,jfs已經經受住了考驗。它是可靠、快速和容易使用的。
2000年2月,ibm宣佈在一個開放資源許可證下,移植linux版的jfs文件系統。jfs也是一個有大量用户安裝使用的企業級文件系統。
使用日誌文件系統,性能上會稍有損失,是因為當它保持一個日誌時,系統需要寫許多數據。但面對系統崩潰及運行fsck,這是值得的。jfs通過把同步日誌轉為異步日誌從而減少了性能的損耗。使用同步日誌,系統直接進行與文件系統的動作成比例的日誌記錄操作;而異步日誌,日誌記錄較少,且其可以在不影響其它文件系統操作時進行記錄,因而可減少日誌的開銷。
四、ext2的後繼者ext3fs
ext3是由開放資源社區開發的日誌文件系統,主要開發人員是redhat的黑客高手stephen tweedie。ext3被設計成是ext2的升級版本,儘可能地方便用户從ext2fs向ext3fs遷移。ext3在ext2的基礎上加入了記錄元數據的日誌功能,努力保持向前和向後的兼容性。這個文件系統也許稱為ext2的下一個版本更為合適些。
ext3fs工作得很好。ext3fs最大的優點是向下兼容ext2。而且ext3fs還支持異步的日誌,這意味着它的性能可能比ext2還好。但是使用ext3文件系統時要注意硬盤限額問題,在這個問題解決之前,不推薦在重要的應用上採用ext3+disk quota
ext3最新版本是針對kernel 2.4.8的ext3-2.4-0.9.6-248.gz
新推出的redhat 7.2B上正式啓用了ext3,Turbolinux Server 6.5則同時支持 ReiserFS 及 ext3.
通過在已有的ext2文件系統上添加日誌文件可把ext2文件系統轉換成ext3文件系統.
你可以把一個文件系統在ext3和ext2自由切換.因為在ext2文件系統上的ext3日誌文件仍然存在,只是ext2不能認出而已.