Linux環境下使用JFS檔案系統

2021-09-08 18:36:39 字數 3703 閱讀 9928

jfs提供了基於日誌的位元組級檔案系統,該檔案系統是為面向事務的高效能系統而開發的。jfs 能夠在幾秒或幾 分鐘內就把檔案系統恢復到一致狀態。jfs能夠保證資料在任何意外宕機的情況下,不會造成磁碟資料的丟失與損壞。

一、jfs檔案系統特點

1.儲存空間更大

jfs 支援的最小檔案系統是 16m 位元組。最大檔案系統的大小為 512 萬億位元組(tb)。jfs 是真正意義上的 64 位的檔案系統。所有 jfs 檔案系統結構化欄位都是 64 位大小。

2.動態磁碟 inode 分配

jfs 按需為磁碟 inode 動態地分配空間,釋放不再需要的空間。這種方式避開了在檔案系統建立期間,為磁碟 inode 保留固定數量空間的傳統方法。使用者不需要考慮檔案系統包含的檔案和目錄最大數目。

3.基於盤區的定址結構

jfs 使用基於盤區的定址結構,jfs 分配嘗試通過分配最小數量的盤區策略,而使每個盤區盡可能大。這有利於大的 i/o 傳送,磁碟讀寫效能所有提高。

4.塊尺寸可變

jfs 支援 512、1024、2048 和 4096 位元組的塊尺寸,允許使用者根據應用環境優化空間利用率。較小的塊尺寸減少有利於內部儲存碎片的數量,提高空間利用率。系統預設塊尺寸為 4096 位元組。

二、使用jfs檔案系統

1.編譯核心以支援jfs檔案系統

在/usr/src/上當目錄下解開jfs的軟體包

# tar ?zxvf jfs-2.4-1.0.4.tar.gz

# tar ?zxvf jfs-2.4-1.0.4-patch.tar.gz

得到四個檔案:

jfs-2.4.common-v1.0.4-patch

jfs-2.4.7-v1.0.4-patch

jfs-2.4.5-v1.0.4-patch

jfs-2.4.0-v1.0.4-patch

其中,jfs-2.4.common-v1.0.4-patc**件用於所有的2.4核心,jfs-2.4.0-v1.0.4-patch用於2.4.0-2.4.2。jfs-2.4.5-v1.0.4-patch可用於核心2.4.5及2.4.6。

注意仔細閱讀readme檔案,不要用錯了patc**件

接著是為核心打補丁:

# patch ?p1 < jfs-2.4.5-v1.0.4-patch

打補丁工作完成。

最後執行

#make menuconfig

將新的檔案系統加入了核心編譯配置檔案中,要進行以下核心配置:

使用make menuconfig 在選單"code maturity level options"中,選擇"prompt for development and/or incomplete code/drivers."選項。然後,進入檔案系統選單"file systems",選擇"jfs filesystem support."選項。配置核心,使核心支援jfs檔案系統。配置核心的其它選項。

<*> jfs filesystem support

##將jfs檔案系統的支援編譯入核心,也可以將其編譯成模組載入方式,見以下選擇:

jfs filesystem support

筆者建議將jfs檔案系統支援直接編譯進核心,這有利於提高系統效能。

然後編譯核心:

#make dep

#make clean

#make bzimage

#make modules

#make modules_install

#cp arch/i386/boot/bzimage /boot/vmlinuz-2.4.5-jfs

image=/boot/vmlinuz-2.4.5-jfs

label=jfs

read-only

root=/dev/hda5

然後執行lilo,使更改生效。

#lilo  

三、建立jfs檔案系統

1.檢視系統對jfs檔案系統的支援

如果新的核心正確啟動,這說明核心已支援jfs檔案系統了。檢視系統程序,可以看到以下程序:

#lsmod

7 ? sw 0:00 [jfsio]

8 ? sw 0:00 [jfscommit]

9 ? sw 0:00 [jfssync]

如果你看到了以上這幾個程序,這表明系統核心已支援jfs檔案系統。

另外,在/proc/fs/jfs 目錄下應該還有三個檔案:

jfsfyi

logmgr

txanchor

編譯安裝過程如下:

#tar ?zxvf jfsutils-1.0.7.tar.gz

#cd jfsutils-1.0.7

#./configure

#make

#make install

安裝完成後,在/usr/sbin中就多出乙個 可執行檔案mkfs.jfs,我們就用它將分割槽格式化成jfs檔案系統。

3.建立jfs檔案系統

以下開始建立乙個jfs檔案系統, 將hda6分割槽格式化成jfs檔案系統,以下為格式化時顯示的內容:

#mkfs -t jfs /dev/hda6

mkfs.jfs development version: $name: v0_3_1 $

warning! all data on device /dev/hda6 will be lost!

continue? (y/n) y

\format completed successfully.

5120608 kilobytes total disk space.

執行完成後,jfs檔案系統已經在hda6分割槽建立完成了。

4.載入jfs檔案系統

首先,建立乙個目錄jfs,以便將jfs檔案系統mount到其上:

#mkdir jfs

將新的分割槽mount到jfs目錄下:

#mount ?t jfs /dev/hda6 /jfs

這樣,新的檔案系統就載入到/jfs目錄下了。現在可以使用新的檔案系統了。

四、使用jfs檔案系統

1.普通分割槽使用jfs檔案系統

linux核心支援了jfs檔案系統後,可以將磁碟所有分割槽均格式化為jfs檔案系統。通常情況下,建議/usr,/usr/sbin等分割槽採用非日誌檔案系統,而在那些對讀寫要求頻繁的分割槽上使用jfs檔案系統。這有利於提高系統效能。

2.主引導區使用jfs檔案系統

#cd /

#cp -a bin etc lib boot dev home usr var [...] /jfs

#mkdir /jfs/proc

在使用jfs檔案系統啟動之前,還應該更改/etc/fstab檔案,將相應的分割槽用作根分割槽。如下所示:原來的根分割槽為:

label=/ / ext2 defaults 1 1

應該更改為:

/dev/hda6 / jfs defaults 1 1

然後,編譯/etc/lilo.conf檔案,將主引導分割槽更改為/dev/hda6。置label為jfs,將預設的啟動設定為jfs。

如下所示:

default=jfs

...image=/boot/vmlinuz-2.4.0-jfs

label=jfs

read-only

root=/dev/hda6

然後,執行lilo,完成。

最後,reboot 系統,啟動之後,你就得到乙個純jfs檔案系統的linux環境了,剩下的事情就是將原來的主分割槽重新格式化成 jfs,然後再將其mount到主分割槽的某個目錄下就行了。

linux環境下使用GFS檔案系統

gfs檔案系統其實是乙個網路日誌檔案系統,通常被用作多台計算機共享同一儲存裝置。由於gfs是日誌檔案系統,所以,如果將其應用到單獨的一台計算機上,即完全等同於 本地日誌檔案系統,享受日誌檔案系統帶來的好處。本文便向各位簡介gfs檔案系統在linux環境下的使用。gfs檔案系統1 編譯核心回答一大串的...

linux環境下使用GFS檔案系統

gfs檔案系統其實是乙個網路日誌檔案系統,通常被用作多台計算機共享同一儲存裝置 gfs檔案系統其實是乙個網路日誌檔案系統,通常被用作多台計算機共享同一儲存裝置。由於 gfs是日誌檔案系統,所以,如果將其應用到單獨的一台計算機上,即完全等同於 本地日誌檔案系統,享受日誌檔案系統帶來的好處。本文便向各位...

linux環境下編譯C 檔案

最近需要將 上傳到github,順便使得 要在ubuntu上能夠編譯執行。稍微學習了一下ubuntu環境下的c 檔案編譯方式。隨便寫個簡單的程式 test.cpp include int main int argc,char argv 可以直接g test.cpp編譯,編譯器預設的動作 編譯源 檔案...