inux ext2/ext3文件系統使用索引節點來記錄文件信息,做用像windows的文件分配表。索引節點是一個結構,它包含了一個文件的長度、建立及修改時間、權限、所屬關係、磁盤中的位置等信息。一個文件系統維護了一個索引節點的數組,每一個文件或目錄都與索引節點數組中的惟一一個元素對應。系統給每一個索引節點分配了一個號碼,也就是該節點在數組中的索引號,稱爲索引節點號。 linux文件系統將文件索引節點號和文件名同時保存在目錄中。因此,目錄只是將文件的名稱和它的索引節點號結合在一塊兒的一張表,目錄中每一對文件名稱和索引節點號稱爲一個鏈接。 對於一個文件來講有惟一的索引節點號與之對應,對於一個索引節點號,卻能夠有多個文件名與之對應。所以,在磁盤上的同一個文件能夠經過不一樣的路徑去訪問它。 Linux缺省狀況下使用的文件系統爲Ext2,ext2文件系統的確高效穩定。可是,隨着Linux系統在關鍵業務中的應用,Linux文件系統的弱點也漸漸顯露出來了:其中系統缺省使用的ext2文件系統是非日誌文件系統。這在關鍵行業的應用是一個致命的弱點。本文向各位介紹Linux下使用ext3日誌文件系統應用。 Ext3文件系統是直接從Ext2文件系統發展而來,目前ext3文件系統已經很是穩定可靠。它徹底兼容ext2文件系統。用戶能夠平滑地過渡到一個日誌功能健全的文件系統中來。這實際上了也是ext3日誌文件系統初始設計的初衷。 Ext3日誌文件系統的特色 一、高可用性 系統使用了ext3文件系統後,即便在非正常關機後,系統也不須要檢查文件系統。宕機發生後,恢復ext3文件系統的時間只要數十秒鐘。 二、數據的完整性: ext3文件系統可以極大地提升文件系統的完整性,避免了意外宕機對文件系統的破壞。在保證數據完整性方面,ext3文件系統有2種模式可供選擇。其中之一就是「同時保持文件系統及數據的一致性」模式。採用這種方式,你永遠再也不會看到因爲非正常關機而存儲在磁盤上的垃圾文件。 三、文件系統的速度: 儘管使用ext3文件系統時,有時在存儲數據時可能要屢次寫數據,可是,從整體上看來,ext3比ext2的性能還要好一些。這是由於ext3的日誌功能對磁盤的驅動器讀寫頭進行了優化。因此,文件系統的讀寫性能較之Ext2文件系統並來講,性能並無下降。 四、數據轉換 由ext2文件系統轉換成ext3文件系統很是容易,只要簡單地鍵入兩條命令便可完成整個轉換過程,用戶不用花時間備份、恢復、格式化分區等。用一個ext3文件系統提供的小工具tune2fs,它能夠將ext2文件系統輕鬆轉換爲ext3日誌文件系統。另外,ext3文件系統能夠不經任何更改,而直接加載成爲ext2文件系統。 五、多種日誌模式 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文件系統。