您好,登錄后才能下訂單哦!
centos6中怎么構建一個XFS文件系統,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
XFS,一種高性能的日志文件系統,最早于1993年,由Silicon Graphics為他們的IRIX操作系統而開發,是IRIX 5.3版的默認文件系統。后來被移植到Linux 內核上。XFS 特別擅長處理大文件,同時提供平滑的數據傳輸。在存儲很大的環境下進行格式化操作,XFS文件系統的速度比ext3、ext4文件系統快了很多!而且據說XFS可以支持到100T,讀寫速度也優于其他文件系統。
系統環境:CENTOS6.4
一、安裝xfs文件系統
XFS所需要的rpm包在系統的ISO文件中都可以找到,我們只需要安裝xfsprogs和xfsdump這兩個包就可以了。
[root@localhost Packages]# find . -name "xfs*.rpm"
./xfsdump-3.0.4-3.el6.x86_64.rpm
./xfsprogs-devel-3.1.1-10.el6.x86_64.rpm
./xfsprogs-qa-devel-3.1.1-10.el6.i686.rpm
./xfsprogs-qa-devel-3.1.1-10.el6.x86_64.rpm
./xfsprogs-devel-3.1.1-10.el6.i686.rpm
./xfsprogs-3.1.1-10.el6.i686.rpm
./xfsprogs-3.1.1-10.el6.x86_64.rpm
[root@localhost Packages]# rpm -ivh xfsprogs-3.1.1-10.el6.x86_64.rpm xfsdump-3.0.4-3.el6.x86_64.rpm
warning: xfsprogs-3.1.1-10.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:xfsprogs ########################################### [ 50%]
2:xfsdump ########################################### [100%]
二、XFS格式化
XFS格式化速度很快,幾乎是立刻就完成了格式化。
[root@localhost Packages]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=256 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
三、掛載測試
[root@localhost /]# mount -t xfs /dev/sdb /data
[root@localhost /]# mount |grep data
/dev/sdb on /data type xfs (rw)
測試:
寫性能
[root@localhost test]# time dd if=/dev/zero of=/data/test/ceshi.txt bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.42419 s, 247 MB/s
real0m0.431s
user0m0.001s
sys0m0.427s
讀性能
[root@localhost test]# time dd if=/data/test/ceshi.txt of=/dev/null bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.129903 s, 807 MB/s
real0m0.135s
user0m0.003s
sys0m0.132s
四、補充XFS優化
#mkfs.xfs -f -i size=512 -l size=128m,lazy-count=1 -d agcount=16 /dev/sdb1
-i size=512 : 默認的值是256KB,這里的設置是為了selinux的,這個設置針對inode size,selinux使用xfs的Extend Attribute,首先要寫到inode中,如果容量不夠(默認是256KB的時候就不夠,剛剛多一點點),就寫到block中,這會損失性能,當需要使用selinux的時候。這似乎對一般用戶沒什么作用,因為一般用戶都不用selinux的,大家對linux系統的安全性還是挺信任的,不過,說實話,我不信任,況且RedHat 的FC已經默認配置了selinux,這很好。做了這個改動,方便以后我在系統中配置selinux而不擔心性能的損失。
-l size=128m :注意是小寫的m,不是大寫的。默認值的是10m(bsize=4096 x blocks=2560)。這個值可以設置成32m(分區容量不小于250M)/64m(分區容量不小于500M)/128m(分區容量不小于700M),對于分區容量的限制,我這里列出的只是大概,最大可設128m。修改這個參數成128m,可以顯著的提高xfs文件系統刪除文件的速度,當然還有其它,如拷貝文件的速度。 這個參數需要大內存的支持,內存太少的機器大概不能設置這么高。(標準是什么?512M?1G?我不了解,所以我上面說要自己實際的測試一下。)
-l lazy-count=value
This changes the method of logging various persistent counters in the superblock. Under metadata intensive workloads, these counters are updated and logged frequently enough that the superblock updates become a serialisation point in the filesystem. The value can be either 0 or 1.
With lazy-count=1, the superblock is not modified or logged on every change of the persis-tent counters. Instead, enough information is kept in other parts of the filesystem to be able to maintain the persistent counter values without needed to keep them in the superblock. This gives significant improvements in performance on some configurations. The default value is 0 (off) so you must specify lazy-count=1 if you want to make use of this feature.
-d agcount=4 :默認值是根據容量自動設置的。可以設置成1/2/4/16等等,這個參數可以調節對CPU的占用率,值越小,占用率越低。這是理論上的,在我的機器上,agcount=1反而比agcount=2的cpu占用率還高,我想這是因為我的cpu是雙核的原因吧。要注意,cpu的占用率低,那每一秒處理的數據量也會降低一些。我比較了agcount=2和4,發現還是4比較好。這樣一來,這個參數的設置,就是需要自己去選擇的了。
mount的xfs選項(關鍵參數nobarrier):
vi /etc/fstab
修改掛載選項
/dev/sdb1 /data xfs defaults,noatime,nobarrier 00
重新掛載
mount -o remount /data
nobarrier
Many hardware RAID have a persistent write cache which preserves it across power failure, interface resets, system crashes, etc. Using write barriers in this instance is not recommended and will in fact lower performance. Therefore, it is recommended to turn off the barrier support and mount the filesystem with "nobarrier". But take care about the hard disk write cache, which should be off.
noatime 默認的方式下linux會把文件訪問的時間atime做記錄,這在絕大部分的場合都是沒有必要的,如果遇到機器IO負載高或是CPU WAIT高的情況,可以嘗試使用noatime,療效好,見效快。
XFS文件系統默認在掛載時啟用“寫入屏障”的支持。該特性會一個合適的時間沖刷下級存儲設備的寫回緩存,特別是在XFS做日志寫入操作的時候。這個特性的初衷是保證文件系統的一致性,具體實現卻因設備而異——不是所有的下級硬件都支持 緩存 沖刷請求。在帶有電池供電緩存的硬件RAID控制器提供的邏輯設備上部署XFS文件系統時,這項特性可能導致明顯的性能退化,因為文件系統的代碼無法得知這種緩存是非易失性的。如果該控制器又實現了沖刷請求,數據將被不必要地頻繁寫入 物理磁盤 。為了防止這種問題,對于能夠在斷電或發生其它主機 故障 時保護緩存中數據的設備,應該以 nobarrier 選項掛載XFS文件系統。
logbufs=value
Set the number of in-memory log buffers. Valid numbers range from 2-8 inclusive. The default value is 8 buffers for filesystems with a blocksize of 64K, 4 buffers for filesystems with a blocksize of 32K, 3 buffers for filesystems with a blocksize of 16K, and 2 buffers for all other configurations. Increasing the number of buffers may increase performance on some workloads at the cost of the memory used for the additional log buffers and their associated control structures.
logbsize=value
Set the size of each in-memory log buffer. Valid sizes are 16384 (16K) and 32768 (32K). The default value for machines with more than 32MB of memory is 32768, machines with less memory use 16384 by default.
測試后發現讀寫性能還可以更好,測試方法同上。
五、XFS的優缺點
優點:
1、數據可恢復
采用XFS文件系統,當意想不到的宕機發生后,首先,由于文件系統開啟了日志功能,所以你磁盤上的文件不再會意外宕機而遭到破壞了。不論目前文件系統上存儲的文件與數據有多少,文件系統都可以根據所記錄的日志在很短的時間內迅速恢復磁盤文件內容。
2、快速傳輸
XFS文件系統采用優化算法,日志記錄對整體文件操作影響非常小。XFS查詢與分配存儲空間非常快。xfs文件系統能連續提供快速的反應時間。筆者曾經對XFS、JFS、Ext3、ReiserFS文件系統進行過測試,XFS文件文件系統的性能表現相當出眾。
3、文件系統可擴展
XFS 是一個全64-bit的文件系統,它可以支持上百萬T字節的存儲空間。對特大文件及小尺寸文件的支持都表現出眾,支持特大數量的目錄。最大可支持的文件大 小為263 = 9 x 1018 = 9 exabytes,最大文件系統尺寸為18 exabytes。
XFS使用高的表結構(B+樹),保證了文件系統可以快速搜索與快速空間分配。XFS能夠持續提供高速操作,文件系統的性能不受目錄中目錄及文件數量的限制。
注:一般大于2T的分區用PARTED來分,而對于大于16T的分區雖然可以用PARTED來分,但使用EXT4分區格式來掛載時,也易出錯。在這個時候把大于16T的單個分區用XFS來格式化,然后掛載是可以正常的。
4、I/0讀寫快
XFS 能以接近裸設備I/O的性能存儲數據。在單個文件系統的測試中,其吞吐量最高可達7GB每秒,對單個文件的讀寫操作,其吞吐量可達4GB每秒
缺點:
XFS文件系統無法被收縮。
歷史上XFS上的元數據操作曾比其它文件系統都慢,表現為在刪除大量小文件時性能糟糕。該性能問題是被Red Hat的XFS開發者Dave Chinner在代碼中定位到的。使用一個叫“延遲記錄”的掛載選項可以成數量級地提升元數據操作的性能。該選項幾乎把日志整個存在內存中。Linux內核主線版本2.6.35中作為一個試驗性特性引入了這個補丁,在2.6.37中使它成為了一個穩定的特性,并計劃在2.6.39中把它作為默認的日志記錄方法。早期測試顯示在有少量線程的環境中其性能接近EXT4,在大量線程的環境下超過了EXT4 。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。