ReiserFS的開發者非常有魄力,整個文件系統完全是從頭設計的。目前,ReiserFS可輕松管理上百G的文件系統,這在企業級應用中非常重要。
一、ReiserFS的特點
1.先進的日志機制
ReiserFS有先進的日志(Journaling/logging)功能機制。日志機制保證了在每個實際數據修改之前,相應的日志已經寫入硬盤。文件與數據的安全性有了很大提高。
2.高效的磁盤空間利用
Reiserfs對一些小文件不分配inode。而是將這些文件打包,存放在同一個磁盤分塊中。而其它文件系統則為每個小文件分別放置到一個磁盤分塊中。這意味著:如果有10000個小文件,就要占用10000個分塊。想想看這多浪費磁盤空間。
3.獨特的搜尋方式
ReiserFS基於快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的算法。ReiserFS搜索大量文件時,搜索速度要比ext2快得多。Reiserfs文件系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常快。
在實際運用中,ReiserFS 在處理小於 1k 的文件時,比ext2 快 8 到 15 倍!ReiserFS 幾乎在各個方面都優於 ext2.
4.支持海量磁盤
ReiserFS是一個非常優秀的文件系統,可輕松管理上百G的文件系統,ReiserFS文件系統最大支持的文件系統尺寸為16TB。這非常適合企業級應用中。
5.優異的性能
由於它的高效存儲和快速小文件I/O特點,使用ReiserFs文件系統的PC,在啟動X窗口系統時,所花的時間要比在同一台機器上使用ext2文件系統少1/3。另外,ReiserFS文件系統支持單個文件尺寸為4G的文件,這為大型數據庫系統在linux上的應用提供了更好的選擇。
二、使用ReiserFS文件系統
1、編譯核心
本文以在2.4.x 核心下安裝Reiserfs文件系統為例,簡述其安裝及使用過程。內核版本為2.4.x以後的版本缺省都支持Reiserfs文件系統。如果你的核心目前不支持Reiserfs,那麼從http://www.namesys.com/處下載reiserfs的補丁程序,要確保下載的補丁版本和你的kernel版本是一致的。
下載後用root身份登錄進入系統,切換至/usr/src/linux目錄,執行命令:
#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文件系統,編譯時首先要打開相應選項,目前內核缺省不支持Reiserfs文件系統。所以,在編譯內核時,要配置內核,以支持reiserfs文件系統。
#make menuconfig
在菜單"Code maturity level options"中,選擇"Prompt for development and/or incomplete code/drivers."選項。然後,進入文件系統菜單"File systems",打開以下選項:
Reiserfs support
Have reiserfs do extra internal checking
即將Reiserfs文件系統的支持編譯時內核。 然後編譯核心,安裝核心。
#make bzImage #make module #make module_install #make install; 完成內核編譯安裝工作。
2、編譯Reiserfs工具
下面我們將編譯ReiserFS工具,相應的代碼是存放在/usr/src/linux/fs/reiserfs/utils目錄中的,首先make編譯程序,然後再make install來安裝程序。如果你的核心中沒有包括這些工具,你需要另外下載。從這裡下載:
ftp://ftp.namesys.com/pub/reiser ... progs-3.x.0j.tar.gz
解壓文件:
# tar zxvf reiserfsprogs-3.x.0j.tar.gz # cd reiserfsprogs-3.x.0j # ./configure # make # make install
完成Reiserfs工具的編譯與安裝。 之後用新的核心啟動系統。如果不出什麼問題,這時新的核心已經支持Reiserfs文件系統了。
三、使用新的文件系統
1.創建Reiserfs文件系統
要使用新的文件系統,首先以下創建一個Reiserfs文件系統:
[root@test /sbin]# ./mkreiserfs -f /dev/sda3
以下為格式化分區時所顯示的信息:
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”後回車,開始創建新的文件系統:
格式化的過程比較慢,視分區的大小而定,但是,對其它的文件系統的格式化比較,其明顯要慢很多。格式化完成後,顯示如下信息:
(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 http://www.devlinux.com/namesys Have fun.
至此創建完成Reiserfs分區的創建。
2.使用reiserfs文件系統
為了使用新的分區,需要將其mount上來:
# mounut –t reiserfs /dev/sda3 /mnt/fs
這樣新的文件系統就被mount到/mnt/fs目錄下了。現在就可以開始使用新的文件系統存放文件了。
最後,為了讓系統每次啟動時都自動加載Reiserfs文件系統,應該手工更改/etc/fstab內容,將相應的分區加入其中。本文在此不再贅述。