Linux環境下使用XFS檔案系統

來源:互聯網
上載者:User

XfS檔案系統是SGI開發的進階記錄檔系統,XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Lin ux系統中。在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檔案系統的使用

  1.下載與編譯核心

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

  :

  對核心打補丁,下載解壓後,得到一個檔案: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檔案系統的支援編譯進核心
  或
  <M> 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及單一處理器的機器使用。

  2.建立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

  3.載入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檔案系統的系統了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.