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檔案系統
1.下載與編譯核心
對核心打補丁,補丁:之後運行:
#make menuconfig
在Filesystem菜單中,會多出以下選項,選擇核心支援Ext3檔案系統:
<*> Ext3 journalling file system support (EXPERIMENTAL)
JBD (ext3) debugging support
選擇支援Ext3檔案系統,儲存核心設定檔,重新編譯核心。
#make bzImage
#make module
#make module_install
#make install
核心編譯安裝完成。使用新的核心啟動系統後,就可以建立ext3檔案系統了。
2.實際使用Ext3檔案系統
建立新的ext3檔案系統,例如要把磁碟上的hda5分區格式化ext3檔案系統,並將日誌記錄在/dev/hda1分區,那麼操作過程如下:
[root@test /sbin]# ./mke2fs -j /dev/sda5
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到主要磁碟分割ext3目錄下:
#[root@test /sbin]# mount -t ext3 /dev/sda5 /ext3
說明:以上將已格式化為ext3檔案系統的/dev/sda5分區載入到/ext3目錄下。
ext3 基於ext2 的代碼,它的磁碟格式和 ext2 的相同;這意味著,一個乾淨卸裝的 ext3 檔案系統可以作為 ext2 檔案系統重新掛裝。Ext3檔案系統仍然能被載入成ext2檔案系統來使用,你可以把一個檔案系統在ext3和ext2自由切換。這時在ext2檔案系統上的ext3記錄檔仍然存在,只是ext2不能認出日誌而已。
3.將ext2檔案系統轉換為ext3檔案系統
將linux系統的檔案系統由ext2轉至ext3,有以下幾處優點:第一系統的可用性增強了,第二Data Integration度提高,第三啟動速度提高了,第四ext2與ext3檔案系統之間相互轉換容易。
以轉換檔系統為例,將ext2檔案系統轉換為ext3檔案系統,命令如下:
[root@test /sbin]# ./tune2fs -j /dev/sda6
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。如果你正在轉換的分區為根分區,你還應使用initrd啟動系統,運行mkinitrd,確保lilo或grub能正常載入initrd。如果你沒有做以上幾步,那麼根在下次啟動時仍然會以ext2檔案系統的方式載入。要查看根分區目前的檔案系統,可以運行“cat /proc/mounts”查看結果,有關對根檔案系統的轉換,可以從隨ext3軟體包的說明手冊中找到詳細說明
4.日誌的存放位置
可以將日誌放置在另外一個存放裝置上,例如存放到分區/dev/hda9。例如要在/dev/hda5上建立一個ext3檔案系統,並將日誌存放在外部裝置/dev/hda9上,則運行以下命令:
#mke2fs -J device=/dev/hda9 /dev/hda5
5.檔案系統修複
新的e2fsprogs中的e2fsck支援ext3檔案系統。當一個ext3檔案系統被破壞時,先卸載該裝置,在用e2fsck修複:
#umount /dev/hda6
#e2fsck -fy /dev/hda6
總之,ext3記錄檔系統是目前linux系統由ext2檔案系統過度到記錄檔系統最為簡單的一種選擇,實現方式也最為簡潔。由於是直接從ext2檔案系統發展而來,系統由ext2檔案系統過渡到ext3記錄檔系統升級過程平滑,可以最大限度地保證系統資料的安全性。目前linux系統要使用記錄檔系統,最保險的方式就是選擇ext3檔案系統。