ReiserFS是一個(gè)非常優(yōu)秀的文件系統(tǒng)。也是最早用于Linux的日志文件系統(tǒng)之一。
ReiserFS的開發(fā)者非常有魄力,整個(gè)文件系統(tǒng)完全是從頭設(shè)計(jì)的。目前,ReiserFS可輕松管理上百G的文件系統(tǒng),這在企業(yè)級(jí)應(yīng)用中非常重要。
一、ReiserFS的特點(diǎn)
1.先進(jìn)的日志機(jī)制
ReiserFS有先進(jìn)的日志(Journaling/logging)功能 機(jī)制。日志機(jī)制保證了在每個(gè)實(shí)際數(shù)據(jù)修改之前,相應(yīng)的日志已經(jīng)寫入硬盤。文件與數(shù)據(jù)的安全性有了很大提高。
2.高效的磁盤空間利用
Reiserfs對(duì)一些小文件不分配inode。而是將這些文件打包,存放在同一個(gè)磁盤分塊中。而其它文件系統(tǒng)則為每個(gè)小文件分別放置到一個(gè)磁盤分塊中。這意味著:如果有10000個(gè)小文件,就要占用10000個(gè)分塊。想想看這多浪費(fèi)磁盤空間。
3.獨(dú)特的搜尋方式
ReiserFS基于快速平衡樹(balancedtree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的算法。ReiserFS搜索大量文件時(shí),搜索速度要比ext2快得多。Reiserfs文件系統(tǒng)使用B*Tree存儲(chǔ)文件,而其它文件系統(tǒng)使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非??臁?
在實(shí)際運(yùn)用中,ReiserFS 在處理小于 1k 的文件時(shí),比ext2 快 8 到 15 倍!ReiserFS 幾乎在各個(gè)方面都優(yōu)于 ext2,具體數(shù)據(jù)請(qǐng)參見筆者的測(cè)試篇。
4.支持海量磁盤
ReiserFS是一個(gè)非常優(yōu)秀的文件系統(tǒng),可輕松管理上百G的文件系統(tǒng),ReiserFS文件系統(tǒng)最大支持的文件系統(tǒng)尺寸為16TB。這非常適合企業(yè)級(jí)應(yīng)用中。
5.優(yōu)異的性能
由于它的高效存儲(chǔ)和快速小文件I/O特點(diǎn),使用ReiserFs文件系統(tǒng)的PC,在啟動(dòng)X窗口系統(tǒng)時(shí),所花的時(shí)間要比在同一臺(tái)機(jī)器上使用ext2文件系統(tǒng)少1/3。另外,ReiserFS文件系統(tǒng)支持單個(gè)文件尺寸為4G的文件,這為大型數(shù)據(jù)庫系統(tǒng)在linux上的應(yīng)用提供了更好的選擇。
二、使用ReiserFS文件系統(tǒng)
1、編譯核心
本文以在2.4.x 核心下安裝Reiserfs文件系統(tǒng)為例,簡(jiǎn)述其安裝及使用過程。內(nèi)核版本為2.4.x以后的版本缺省都支持Reiserfs文件系統(tǒng)。如果你的核心目前不支持Reiserfs,要確保下載的補(bǔ)丁版本和你的kernel版本是一致的。
下載后用root身份登錄進(jìn)入系統(tǒng),切換至/usr/src/linux目錄,執(zhí)行命令:
#gunzip /path/to/linux-2.2.16-reiserfs-3.5.22-patch.gz
#patch -p1 -i /path/to/linux-2.2.16-reiserfs-3.5.22-patch
要讓新的核心支持Reiserfs文件系統(tǒng),編譯時(shí)首先要打開相應(yīng)選項(xiàng),目前內(nèi)核缺省不支持Reiserfs文件系統(tǒng)。所以,在編譯內(nèi)核時(shí),要配置內(nèi)核,以支持reiserfs文件系統(tǒng)。
#make menuconfig
在菜單"Code maturity level options"中,選擇"Prompt for development and/orincomplete code/drivers."選項(xiàng)。然后,進(jìn)入文件系統(tǒng)菜單"File systems",打開以下選項(xiàng):
<*> Reiserfs support
Have reiserfs do extra internal checking
即將Reiserfs文件系統(tǒng)的支持編譯時(shí)內(nèi)核。
然后編譯核心,安裝核心。
#make bzImage
#make module
#make module_install
#make install;
完成內(nèi)核編譯安裝工作。
2、編譯Reiserfs工具
下面我們將編譯ReiserFS工具,相應(yīng)的代碼是存放在/usr/src/linux/fs/reiserfs/utils目錄中的,首先make編譯程序,然后再make install來安裝程序。如果你的核心中沒有包括這些工具,你需要另外下載。從這里下載:
解壓文件:
# tar zxvf reiserfsprogs-3.x.0j.tar.gz
# cd reiserfsprogs-3.x.0j
# ./configure
# make
# make install
完成Reiserfs工具的編譯與安裝。
之后用新的核心啟動(dòng)系統(tǒng)。如果不出什么問題,這時(shí)新的核心已經(jīng)支持Reiserfs文件系統(tǒng)了。
三、使用新的文件系統(tǒng)
1.創(chuàng)建Reiserfs文件系統(tǒng)
要使用新的文件系統(tǒng),首先以下創(chuàng)建一個(gè)Reiserfs文件系統(tǒng):
[root@test /sbin]# ./mkreiserfs -f /dev/sda3
以下為格式化分區(qū)時(shí)所顯示的信息:
<-------------mkreiserfs, 2001------------->
reiserfsprogs 3.x.0j
=========================================================================
LEAF NODE (8211) contains level=1, nr_items=2, free_space=3932 rdkey
------------------------------------------------------------------------
|###|type|ilen|f/sp| loc|fmt|fsck| key |
| | | |e/cn| | |need| |
------------------------------------------------------------------------
| 0|1 2 0x0 SD, len 44, entry count 0, fsck need 0, format new|
(NEW SD), mode drwxr-xr-x, size 48, nlink 2, mtime 09/14/2001 15:26:51 blocks 8
------------------------------------------------------------------------
| 1|1 2 0x1 DIR, len 48, entry count 2, fsck need 0, format old|
###: Name length Object key Hash Gen number
0: ". "( 1) 1 2 0 1, loc 40, state 4 ??
1: ".. "( 2) 0 1 0 2, loc 32, state 4 ??
=======================================================================
Creating reiserfs of 3.6 format
Block size 4096 bytes
Block count 128520
... ...
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
(y/n) ALL DATA WILL BE LOST ON ‘/dev/sda3‘!
鍵入“y”后回車,開始創(chuàng)建新的文件系統(tǒng):
格式化的過程比較慢,視分區(qū)的大小而定,但是,對(duì)其它的文件系統(tǒng)的格式化比較,其明顯要慢很多。格式化完成后,顯示如下信息:
(y/n) ALL DATA WILL BE LOST ON ‘/dev/sda3‘! y
Initializing journal- 0%....20%....40%....60%....80%....100% left 0, 182 /sec
Syncing...
ReiserFS core development sponsored by SuSE Labs (suse.com)
Journaling sponsored by MP3.com.
To learn about the programmers and ReiserFS, please go to
Have fun.
至此創(chuàng)建完成Reiserfs分區(qū)的創(chuàng)建。
2.使用reiserfs文件系統(tǒng)
為了使用新的分區(qū),需要將其mount上來:
# mounut –t reiserfs /dev/sda3 /mnt/fs
這樣新的文件系統(tǒng)就被mount到/mnt/fs目錄下了?,F(xiàn)在就可以開始使用新的文件系統(tǒng)存放文件了。
最后,為了讓系統(tǒng)每次啟動(dòng)時(shí)都自動(dòng)加載Reiserfs文件系統(tǒng),應(yīng)該手工更改/etc/fstab內(nèi)容,將相應(yīng)的分區(qū)加入其中。本文在此不再贅述聯(lián)系客服