萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux ext2/ext3文件系統詳解

Linux ext2/ext3文件系統詳解

    Linux ext2/ext3文件系統使用索引節點來記錄文件信息,作用像windows的文件分配表。索引節點是一個結構,它包含了一個文件的長度、創建及修改時間、權限、所屬關系、磁盤中的位置等信息。一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一一個元素對應。系統給每個索引節點分配了一個號碼,也就是該節點在數組中的索引號,稱為索引節點號。 linux文件系統將文件索引節點號和文件名同時保存在目錄中。所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。 對於一個文件來說有唯一的索引節點號與之對應,對於一個索引節點號,卻可以有多個文件名與之對應。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問它。


Linux缺省情況下使用的文件系統為Ext2,ext2文件系統的確高效穩定。但是,隨著Linux系統在關鍵業務中的應用,Linux文件系統的弱點也漸漸顯露出來了:其中系統缺省使用的ext2文件系統是非日志文件系統。這在關鍵行業的應用是一個致命的弱點。本文向各位介紹Linux下使用ext3日志文件系統應用。


Ext3文件系統是直接從Ext2文件系統發展而來,目前ext3文件系統已經非常穩定可靠。它完全兼容ext2文件系統。用戶可以平滑地過渡到一個日志功能健全的文件系統中來。這實際上了也是ext3日志文件系統初始設計的初衷。


Ext3日志文件系統的特點


1、高可用性


系統使用了ext3文件系統後,即使在非正常關機後,系統也不需要檢查文件系統。宕機發生後,恢復ext3文件系統的時間只要數十秒鐘。


2、數據的完整性:


ext3文件系統能夠極大地提高文件系統的完整性,避免了意外宕機對文件系統的破壞。在保證數據完整性方面,ext3文件系統有2種模式可供選擇。其中之一就是“同時保持文件系統及數據的一致性”模式。采用這種方式,你永遠不再會看到由於非正常關機而存儲在磁盤上的垃圾文件。


3、文件系統的速度:


盡管使用ext3文件系統時,有時在存儲數據時可能要多次寫數據,但是,從總體上看來,ext3比ext2的性能還要好一些。這是因為ext3的日志功能對磁盤的驅動器讀寫頭進行了優化。所以,文件系統的讀寫性能較之Ext2文件系統並來說,性能並沒有降低。


4、數據轉換


由ext2文件系統轉換成ext3文件系統非常容易,只要簡單地鍵入兩條命令即可完成整個轉換過程,用戶不用花時間備份、恢復、格式化分區等。用一個ext3文件系統提供的小工具tune2fs,它可以將ext2文件系統輕松轉換為ext3日志文件系統。另外,ext3文件系統可以不經任何更改,而直接加載成為ext2文件系統。


5、多種日志模式


Ext3有多種日志模式,一種工作模式是對所有的文件數據及metadata(定義文件系統中數據的數據,即數據的數據)進行日志記錄(data=journal模式);另一種工作模式則是只對metadata記錄日志,而不對數據進行日志記錄,也即所謂data=ordered或者data=writeback模式。系統管理人員可以根據系統的實際工作要求,在系統的工作速度與文件數據的一致性之間作出選擇。


實際使用Ext3文件系統


創建新的ext3文件系統,例如要把磁盤上的hda8分區格式化ext3文件系統,並將日志記錄在/dev/hda1分區,那麼操作過程如下:


[root@stationxx root]# mke2fs -j /dev/hda8
mke2fs 1.24a (02-Sep-2001)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
.. .. ..
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


在創建新的文件系統時,可以看到,ext3文件系統執行自動檢測的時間為180天或每第31次被mount時,實際上這個參數可以根據需要隨意調節。


以下將新的文件系統mount到主分區/data目錄下:

[root@stionxx root]# mount -t ext3 /dev/hda8 /data

說明:以上將已格式化為ext3文件系統的/dev/hda8分區加載到/data目錄下。


ext3 基於ext2 的代碼,它的磁盤格式和 ext2 的相同;這意味著,一個干淨卸裝的 ext3 文件系統可以作為 ext2 文件系統重新掛裝。Ext3文件系統仍然能被加載成ext2文件系統來使用,你可以把一個文件系統在ext3和ext2自由切換。


這時在ext2文件系統上的ext3日志文件仍然存在,只是ext2不能認出日志而已。


將ext2文件系統轉換為ext3文件系統


將linux系統的文件系統由ext2轉至ext3,有以下幾處優點:第一系統的可用性增強了,第二數據集成度提高,第三啟動速度提高了,第四ext2與ext3文件系統之間相互轉換容易。


以轉換文件系統為例,將ext2文件系統轉換為ext3文件系統,命令如下:


[root@stationxx root]# tune2fs -j /dev/hda9
tune2fs 1.24a (02-Sep-2001)
Creating journal inode: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


這樣,原來的ext2文件系統就轉換成了ext3文件系統。注意將ext2文件系統轉換為ext3文件系統時,不必要將分區缷載下來轉換。


轉換完成後,不要忘記將/etc/fstab文件中所對應分區的文件系統由原來的ext2更改為ext3。


ext3日志的存放位置


可以將日志放置在另外一個存儲設備上,例如存放到分區/dev/hda8。例如要在/dev/hda8上創建一個ext3文件系統,並將日志存放在外部設備/dev/hda2上,則運行以下命令:

[root @stationxx root]#mke2fs -J device=/dev/hda8 /dev/hda2


ext3文件系統修復


新的e2fsprogs中的e2fsck支持ext3文件系統。當一個ext3文件系統被破壞時,先卸載該設備,在用


e2fsck修復:

[root @stationxx root] # umount /dev/hda8

[root @stationxx root] #e2fsck -fy /dev/hda8

總而言之,ext3日志文件系統是目前linux系統由ext2文件系統過度到日志文件系統最為簡單的一種選擇,實現方式也最為簡潔。由於是直接從ext2文件系統發展而來,系統由ext2文件系統過渡到ext3日志文件系統升級過程平滑,可以最大限度地保證系統數據的安全性。目前linux系統要使用日志文件系統,最保險的方式就是選擇ext3文件系統。
copyright © 萬盛學電腦網 all rights reserved