XfS檔案系統是SGI開發的高階日誌檔案系統,XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Linux系統中。在linux環境下。目前版本可用的最新XFS檔案系統的為1.2版本,可以很好地工作在2.4核心下。
XFS檔案系統簡介
主要特性包括以下幾點:
資料完全性
採用XFS檔案系統,當意想不到的宕機發生後,首先,由於檔案系統開啟了日誌功能,所以你磁碟上的檔案不再會意外宕機而遭到破壞了。不論目前檔案系統上儲存的檔案與資料有多少,檔案系統都可以根據所記錄的日誌在很短的時間內迅速恢復磁碟檔案內容。
傳輸特性
XFS檔案系統採用最佳化演演算法,日誌記錄對整體檔案操作影響非常小。XFS查詢與分配儲存空間非常快。xfs檔案系統能連續提供快速的反應時間。筆者曾經對XFS、JFS、Ext3、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
修補工作完成後,下一步要進行的工作是編譯核心,將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檔案系統的系統了。
《Linux雲端計算及運維架構師高薪實戰班》2018年08月27日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~
*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。
– END –
更多Linux好文請點選【閱讀原文】哦
↓↓↓