歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

日志式文件系統簡介

  盡管Linux可以支持種類繁多的文件系統,但是幾乎所有的Linux發行版都用ext2作為默認的文件系統。 ext2的設計者主要考慮的是文件系統性能方面的問題。ext2在寫入文件內容的同時並沒有同時寫入文件的meta-data(和文件有關的信息,例如:權限、所有者以及創建和訪問時間)。換句話說,Linux先寫入文件的內容,然後等到有空的時候才寫入文件的meta-data。這樣若出現寫入文件內容之後但在寫入文件的meta-data之前系統突然斷電,就可能造成在文件系統就會處於不一致的狀態。在一個有大量文件操作的系統中出現這種情況會導致很嚴重的後果。 日志文件系統比傳統的文件系統安全,因為它用獨立的日志文件跟蹤磁盤內容的變化。就像關系型數據庫(RDBMS),日志文件系統可以用事務處理的方式,提交或撤消文件系統的變化。Linux系統缺少日志式文件系統是限制推廣其在企業級應用的一個重要制約因素。 日志式文件系統在強調數據完整性的企業級服務器中有著重要的需求,是文件系統發展的方向。日志式文件系統的思想來自於如Oracle等大型數據庫。數據庫操作往往是由多個相關的、相互依賴的子操作組成,任何一個子操作的失敗都意味著整個操作的無效性,對數據庫數據的任何修改都要回復到操作以前的狀態。日志式文件系統采用了類似的技術。 在分區中保存有一個日志記錄文件,文件系統寫操作首先是對記錄文件進行操作,若整個寫操作由於某種原因(如系統掉電)而中斷,則在下次系統啟動時就會讀日志記錄文件的內容來恢復沒有完成的寫操作。而這個過程一般只需要幾秒鐘到幾分鐘,而不是ext2文件系統的fsck那樣在大型服務器情況下可能需要幾個小時來完成掃描。 當前linux環境下有下面幾種日志文件可供選擇: 一、SGI的xfs文件系統 SGI最新發布xfs為 1.0.1版.(http://oss.sgi.com/projects/xfs/) 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文件系統的主頁是http://www.reiserfs.org/ 在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雖然性能已經很好了,但其設計還只是19世紀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版.(http://oss.software.ibm.com/developerworks/opensource/jfs/) 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不能認出而已.



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不能認出而已.



Copyright © Linux教程網 All Rights Reserved