Linux學習----在Linux環境下如何使用XFS文件系統

來源:馬哥教育linux

連接:https://mp.weixin.qq.com/s/UupllldADYE0sHbRs0uouQ算法

XfS文件系統是SGI開發的高級日誌文件系統,XFS極具伸縮性,很是健壯。所幸的是SGI將其移植到了Linux系統中。在linux環境下。目前版本可用的最新XFS文件系統的爲1.2版本,能夠很好地工做在2.4核心下。安全

XFS文件系統簡介工具

主要特性包括如下幾點:性能

數據徹底性測試

採用XFS文件系統,當意想不到的宕機發生後,首先,因爲文件系統開啓了日誌功能,因此你磁盤上的文件再也不會意外宕機而遭到破壞了。不論目前文件系統上存儲的文件與數據有多少,文件系統均可以根據所記錄的日誌在很短的時間內迅速恢復磁盤文件內容。優化

傳輸特性日誌

XFS文件系統採用優化算法,日誌記錄對總體文件操做影響很是小。XFS查詢與分配存儲空間很是快。xfs文件系統能連續提供快速的反應時間。筆者曾經對XFS、JFS、Ext三、ReiserFS文件系統進行過測試,XFS文件文件系統的性能表現至關出衆。內存

可擴展性開發

XFS 是一個全64-bit的文件系統,它能夠支持上百萬T字節的存儲空間。對特大文件及小尺寸文件的支持都表現出衆,支持特大數量的目錄。最大可支持的文件大小爲263 = 9 x 1018 = 9 exabytes,最大文件系統尺寸爲18 exabytes。

XFS使用高的表結構(B+樹),保證了文件系統能夠快速搜索與快速空間分配。XFS可以持續提供高速操做,文件系統的性能不受目錄中目錄及文件數量的限制。

傳輸帶寬

XFS 能以接近裸設備I/O的性能存儲數據。在單個文件系統的測試中,其吞吐量最高可達7GB每秒,對單個文件的讀寫操做,其吞吐量可達4GB每秒。

XFS文件系統的使用

下載與編譯內核

下載相應版本的內核補丁,解壓補丁軟件包,對系統核心打補丁

下載地址:ftp://oss.sgi.com/projects/xfs/d … .4.18-all.patch.bz2

對核心打補丁,下載解壓後,獲得一個文件:xfs-1.1-2.4.18-all.patch文件。

對核心進行修補以下:

# cd /usr/src/linux

# patch -p1 < /path/to/xfs-1.1-2.4.18-all.patch

修補工做完成後,下一步要進行的工做是編譯核心,將XFS編譯進Linux核心可中。

首先運行如下命令,選擇核心支持XFS文件系統:

#make menuconfig

在「文件系統「菜單中選擇:

<*> SGI XFS filesystem support ##說明:將XFS文件系統的支持編譯進核心或 SGI XFS filesystem support ##說明:以動態加載模塊的方式支持XFS文件系統

另外還有兩個選擇:

Enable XFS DMAPI ##說明:對磁盤管理的API,存儲管理應用程序使用

Enable XFS Quota ##說明:支持配合Quota對用戶使用磁盤空間大小管理

完成以上工做後,退出並保存核心選擇配置

以後,而後編譯內核,安裝核心:

#make bzImage

#make module

#make module_install

#make install

若是你對以上覆雜繁瑣的工做沒有耐心或沒有把握,那麼能夠直接從SGI的站點上下載已經打好補丁的核心,其版本爲2.4.18。它是一個rpm軟件包,你只要簡單地安裝便可。SGI提交的核心有兩種,分別供smp及單處理器的機器使用。

建立XFS文件系統

完成對核心的編譯後,還應下載與之配套的XFSprogs工具軟件包,也即mkfs.xfs工具。否則咱們沒法完成對分區的格式化:即沒法將一個分區格式化成XFS文件系統的格式。要下載的軟件包名稱:xfsprogs-2.0.3。

將所下載的XFSProgs工具解壓,安裝,mkfs.xfs自動安裝在/sbin目錄下。

#tar –xvf xfsprogs-2.0.3.src.tar.gz

#cd xfsprogs-2.0.3src

#./configure

#make

#make install

使用mkfs.xfs格式化磁盤爲xfs文件系統,方法以下:

# /sbin/mkfs.xfs /dev/sda6 #說明:將分區格式化爲xfs文件系統,如下爲顯示內容:

meta-data=/dev/sda6 isize=256 agcount=8, agsize=128017 blks

data = bsize=4096 blocks=1024135, imaxpct=25

= sunit=0 swidth=0 blks, unwritten=0

naming =version 2 bsize=4096

log =internal log bsize=4096 blocks=1200

realtime =none extsz=65536 blocks=0, rtextents=0

格式化磁盤時,若是mkfs.xfs提示你分區本來已被格式化爲其它文件系統,可使用參數 –f 強行格式化:

#/sbin/mkfs.xfs –f /dev/sda6

加載XFS文件系統

#mount –t xfs /dev/sda6 /xfs

其中/xfs是主分區/下的一個目錄。

最後,爲了讓系統啓動後就自動加載,應該更改/etc/fstab,這樣系統啓動後就會自動加載xfs分區而沒必要每次都手工加載。

要說明的一點是目前的xfs因爲受linux內存頁限制,在x86版本中,只能實現文件系統的塊尺寸爲4K。另外,XFS文件系統能夠不一樣的方式 mount,即容許文件系統以讀方式加載,也容許以讀寫方式加載。這是由於xfs文件系統用做根文件系統時,爲了安全要以只讀方式加載。

文件系統的遷移

要使得系統中的其它分區使用XFS文件系統,還有一步是遷移文件系統。建議在遷移文件系統時,首先將磁盤上的數據、文件先備份,以避免發生不可挽回的損失,在進行文件系統轉換之間,最好能將整個系統進行徹底備份。這一步有不少種方法,本文僅就筆者的遷移方法加以描述。各位能夠按照本身習慣的方式去完成

若是你想獲得一個純的xfs系統(系統的全部文件系統均採用XFS文件系統)話,還得將根文件系統也格式化爲xfs文件系統。這其實是比較繁雜的一步。由於根文件系統不能被umount,因此,必須首先建立一個分區,其文件系統爲ext2文件系統,而後將目前的根分區上的全部文件與目錄,原本來本地複製到這一個分區,而後更改/etc/fstab文件,替換原來的根分區。

方法以下:

$ mkfs -t ext2 /dev/hda4

$ mkdir /mnt/temp

$ mount -t ext2 /dev/hda4 /mnt/temp

$ cd /

$ tar lcvf - .|(cd /mnt/temp; tar xpvf - )

以上操做是將根分區上的全部文件打包,複製到新創建的分區。固然,你也能夠直接使用如下命令複製文件。

# cp –dpR / /mnt/temp

接着,將下次啓動的根分區更改到/dev/hda4分區,更改/etc/fstab文件及/etc/lilo.conf ,而後,運行 lilo.

從新啓動後,新的根分區就已經爲/dev/hda4。

接下來,建立一個xfs文件系統的分區:

$ mkfs -t xfs /dev/hda2

加載此分區,採用兩樣的方法,將根分區的內容複製到此分區

$ mount -t xfs /dev/hda2 /mnt/temp

在根分區下,運行

$ cd /

$ tar lcvf - .|(cd /mnt/temp; tar xpvf - )

再次更改/etc/fstab、/etc/lilo.conf,用新建的xfs分區替換原來的ext2主分區。以下所示:

/dev/hda2 / xfs defaults 1 1

將新建的xfs分區用做根分區,保存以上設置。再次檢查配置文件內容,確認無誤後再從新啓動系統。若是你的設置所有正確,那麼系統成功啓動後,你就擁有一個純XFS文件系統的系統了。

相關文章
相關標籤/搜索