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