Linux日志文件系統面面觀
這里/dev/xxx是希望創建ext3文件系統的新分區。-j參數表示創建ext3而不是ext2文件系統。可以使用參數-Jsize=來指定希望的日志區大小(n單位為M)。
升級一個已有的ext2,使用tune2fs就可以了:
tune2fs -j /dev/xxx
你可以對正在加載的文件系統和沒有加載的文件系統進行升級操作。如果當前文件系統正在被加載,則文件。journal會在文件系統加載點的所在目錄被創建。如果是升級一個當時沒有加載的文件系統,則使用隱含的系統inode來記錄日志,這時候文件系統的所有內容都會被保留不被破壞。
你可以使用下面的命令加載ext3文件系統:
mount -t ext3 /dev/xxx /mount_dir
由于ext3實際上是帶有日志功能的ext2文件系統 ,因此一個ext3文件系統可以以ext2的方式被加載。
安裝XFS文件系統
如果需要從技術方面了解XFS文件系統,請參考SGI的XFS文件系統和SGI信息頁面。也可以參考FAQ.
XFS是一個SGI開發的linux環境下的日志文件系統,它是一個成熟的技術,最初是使用在IRIX系統上的文件系統。XFS遵循GPL版權申明。目前xfs文件系統最新版本是1.02.可以http://linux-xfs.sgi.com/projects/xfs/102_release.html從下載得到對內核xfs文件系統支持補丁或者直接下載RPM包方式的內核,下面我們就以補丁方式說明如何對2.4.14內核使用xfs.首先下載如下內容
patch-2.4.14-xfs-1.0.2.bz2
patch-2.4.14-xfs-1.0.2-kdb.bz2
拷貝Linux內核linux-2.4.2.tar.bz2到 /usr/src目錄下,修改老的內核目錄名,然后解壓新內核:
mv linux linux-old
tar -Ixf inux-2.4.2.tar.bz2
拷貝每個每個補丁到內核源碼目錄下(例如:/usr/src/linux),并打補丁:
zcat patch-2.4.14-xfs-1.0.2.bz2 | patch -p1
zcat patch-2.4.14-xfs-1.0.2-kdb.bz2 | patch -p1
然后配置內核,打開文件系統部分的內核選項:XFS filesystem support (CONFIG_XFS_FS)和
age Buffer support (CONFIG_PAGE_BUF)。同時需要升級下面這些系統工具到下面或更高的版本:
modutils-2.4.0 autoconf-2.13 e2fsprogs-devel-1.18
安裝新內核并重啟服務器。
然后下載xfs工具。這個軟件包包括下面的命令來處理文件系統,使用下面的命令來安裝該軟件包::
tar -zxf xfsprogs-1.2.0.src.tar.gz
cd xfsprogs-1.2.0
make configure
make
make install
安裝這些命令以后,就可以創建新的XFS文件系統:
mkfs -t xfs /dev/xxx
如果xxx是一個已經存在的文件系統,那么就需要使用-f參數來創建新分區,但是記得這將會破壞該分區的所有數據。
mkfs -t xfs -f /dev/xxx
創建以后就可以使用基于下面的命令加載新文件系統:
mount -t xfs /dev/xxx /mount_dir
安裝ReiserFS文件系統
如果希望更多地從技術方面了解reiserFS文件系統,請參考NAMESYS和FAQ.
ReiserFS文件系統從2.4.1-pre4開始就是Linux內核的正式支持的文件系統了。為了使用reiserFS文件系統那你首先需要在系統上安裝文件系統支持工具(如:創建ReiserFS文件系統的mkreiserfs工具)。最新的ReiserFS文件系統版本可以以補丁的方式添加到2.2.x或者2.4.x內核中。這里我們以2.2.19為例:
第一步,首先下在內核源碼,并下在ReiserFS文件系統的2.2.19補丁 ,目前補丁最新版本是linux-2.2.19-reiserfs-3.5.34-patch.bz2.同時應該下載工具軟件包:reiserfsprogs-3.x.0j.tar.gz.
然后解壓內核源碼和補丁包到/usr/src中:
tar -Ixf linux-2.2.19.tar.bz2
bzcat linux-2.2.19-reiserfs-3.5.34-patch.bz2 | patch -p0
編譯內核支持reiserfs,安裝內核。然后安裝文件系統工具軟件:
cd /usr/src/linux/fs/reiserfs/utils
make
make install
安裝新內核并重新啟動。現在就可以創建新的reiserfs文件系統,并加載:
mkreiserfs /dev/xxxx
mount -t reiserfs /dev/xxx /mount_dir
文件系統性能測試
測試環境使用的計算機環境如下:Pentium III - 16 Mb RAM - 2 Gb HD,操作系統為RedHat6.2.所有的文件系統都能正常工作,所以就進行benchmark分析來對它們進行性能比較。首先我直接拔掉系統電源以模擬系統掉電情況,以測試日志文件系統恢復過程。所有的文件系統都成功地經過了文件掃描檢測階段,在數秒以后系統都經過了掃描然后正常啟動了系統。
下一步就采用了bonnie++性能測試程序(www.coker.com.au/bonnie++)進行測試,這個程序對一個文件進行數據庫類型的訪問,進行了創建、讀和刪除小文件,這些操作對于Squid、INN或者Maildir格式的郵件服務器程序(qmail)是最常見的操作。性能測試命令為:
bonnie++ -d/work1 -s10 -r4 -u0
其對加載在/work1目錄下的文件系統進行了10Mb(-s10)的測試。因此在執行測試之前必須創建適當類型的文件系統并加載到目錄/work1下。其他的參數指定內存大小(-r4)的M數,和以root身份運行測試程序,測試結果如下:
每種測試都有兩組數據:文件系統速度(K/sec)和CPU占用率(%CPU)。速度越高,文件系統越好。而對于CPU率來說,數字越小性能越好。可以看到Reiserfs文件系統在文件操作方面(Sequential Create和Random Create部分的) 的性能最好,超出其他文件系統10倍之多。在其他方面(Sequential Output和Sequential Input)則和其他文件系統性能不相上下。對于其他文件系統則沒有特別明顯的區別。XFS性能接近ext2文件系統,ext3文件系統則比ext2要稍微慢上一些(因為記錄日志需要一些額外的時間)。
最后使用從www.namesys.com得到的性能測試程序mongo,并對其進行了修改以對三種日志文件系統進行測試。這里在mongo.pl程序中添加了添加了加載xfs和ext3文件系統的命令,并對其進行格式化處理,然后就開始性能測試分析。 該腳本格式劃分區/dev/xxxx,加載其并在每個階段運行指定數目的進程:創建、拷貝、符號連接處理、讀、顯示文件狀態信息、重命名和刪除文件。同時,該程序在創建和拷貝階段以后會計算分段數(fragmentation)。
評論