天天看點

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分區,那麼操作過程如下:

[[email protected] 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目錄下:

[[email protected] 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檔案系統,指令如下:

[[email protected] 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檔案系統。

原文連接配接:http://www.blueidea.com/computer/system/2008/5536.asp

繼續閱讀