您好,登錄后才能下訂單哦!
centos6中怎么構(gòu)建一個(gè)XFS文件系統(tǒng),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
XFS,一種高性能的日志文件系統(tǒng),最早于1993年,由Silicon Graphics為他們的IRIX操作系統(tǒng)而開(kāi)發(fā),是IRIX 5.3版的默認(rèn)文件系統(tǒng)。后來(lái)被移植到Linux 內(nèi)核上。XFS 特別擅長(zhǎng)處理大文件,同時(shí)提供平滑的數(shù)據(jù)傳輸。在存儲(chǔ)很大的環(huán)境下進(jìn)行格式化操作,XFS文件系統(tǒng)的速度比ext3、ext4文件系統(tǒng)快了很多!而且據(jù)說(shuō)XFS可以支持到100T,讀寫(xiě)速度也優(yōu)于其他文件系統(tǒng)。
系統(tǒng)環(huán)境:CENTOS6.4
一、安裝xfs文件系統(tǒng)
XFS所需要的rpm包在系統(tǒng)的ISO文件中都可以找到,我們只需要安裝xfsprogs和xfsdump這兩個(gè)包就可以了。
[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
三、掛載測(cè)試
[root@localhost /]# mount -t xfs /dev/sdb /data
[root@localhost /]# mount |grep data
/dev/sdb on /data type xfs (rw)
測(cè)試:
寫(xiě)性能
[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
四、補(bǔ)充XFS優(yōu)化
#mkfs.xfs -f -i size=512 -l size=128m,lazy-count=1 -d agcount=16 /dev/sdb1
-i size=512 : 默認(rèn)的值是256KB,這里的設(shè)置是為了selinux的,這個(gè)設(shè)置針對(duì)inode size,selinux使用xfs的Extend Attribute,首先要寫(xiě)到inode中,如果容量不夠(默認(rèn)是256KB的時(shí)候就不夠,剛剛多一點(diǎn)點(diǎn)),就寫(xiě)到block中,這會(huì)損失性能,當(dāng)需要使用selinux的時(shí)候。這似乎對(duì)一般用戶(hù)沒(méi)什么作用,因?yàn)橐话阌脩?hù)都不用selinux的,大家對(duì)linux系統(tǒng)的安全性還是挺信任的,不過(guò),說(shuō)實(shí)話(huà),我不信任,況且RedHat 的FC已經(jīng)默認(rèn)配置了selinux,這很好。做了這個(gè)改動(dòng),方便以后我在系統(tǒng)中配置selinux而不擔(dān)心性能的損失。
-l size=128m :注意是小寫(xiě)的m,不是大寫(xiě)的。默認(rèn)值的是10m(bsize=4096 x blocks=2560)。這個(gè)值可以設(shè)置成32m(分區(qū)容量不小于250M)/64m(分區(qū)容量不小于500M)/128m(分區(qū)容量不小于700M),對(duì)于分區(qū)容量的限制,我這里列出的只是大概,最大可設(shè)128m。修改這個(gè)參數(shù)成128m,可以顯著的提高xfs文件系統(tǒng)刪除文件的速度,當(dāng)然還有其它,如拷貝文件的速度。 這個(gè)參數(shù)需要大內(nèi)存的支持,內(nèi)存太少的機(jī)器大概不能設(shè)置這么高。(標(biāo)準(zhǔn)是什么?512M?1G?我不了解,所以我上面說(shuō)要自己實(shí)際的測(cè)試一下。)
-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 :默認(rèn)值是根據(jù)容量自動(dòng)設(shè)置的。可以設(shè)置成1/2/4/16等等,這個(gè)參數(shù)可以調(diào)節(jié)對(duì)CPU的占用率,值越小,占用率越低。這是理論上的,在我的機(jī)器上,agcount=1反而比agcount=2的cpu占用率還高,我想這是因?yàn)槲业腸pu是雙核的原因吧。要注意,cpu的占用率低,那每一秒處理的數(shù)據(jù)量也會(huì)降低一些。我比較了agcount=2和4,發(fā)現(xiàn)還是4比較好。這樣一來(lái),這個(gè)參數(shù)的設(shè)置,就是需要自己去選擇的了。
mount的xfs選項(xiàng)(關(guān)鍵參數(shù)nobarrier):
vi /etc/fstab
修改掛載選項(xiàng)
/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 默認(rèn)的方式下linux會(huì)把文件訪(fǎng)問(wèn)的時(shí)間atime做記錄,這在絕大部分的場(chǎng)合都是沒(méi)有必要的,如果遇到機(jī)器IO負(fù)載高或是CPU WAIT高的情況,可以嘗試使用noatime,療效好,見(jiàn)效快。
XFS文件系統(tǒng)默認(rèn)在掛載時(shí)啟用“寫(xiě)入屏障”的支持。該特性會(huì)一個(gè)合適的時(shí)間沖刷下級(jí)存儲(chǔ)設(shè)備的寫(xiě)回緩存,特別是在XFS做日志寫(xiě)入操作的時(shí)候。這個(gè)特性的初衷是保證文件系統(tǒng)的一致性,具體實(shí)現(xiàn)卻因設(shè)備而異——不是所有的下級(jí)硬件都支持 緩存 沖刷請(qǐng)求。在帶有電池供電緩存的硬件RAID控制器提供的邏輯設(shè)備上部署XFS文件系統(tǒng)時(shí),這項(xiàng)特性可能導(dǎo)致明顯的性能退化,因?yàn)槲募到y(tǒng)的代碼無(wú)法得知這種緩存是非易失性的。如果該控制器又實(shí)現(xiàn)了沖刷請(qǐng)求,數(shù)據(jù)將被不必要地頻繁寫(xiě)入 物理磁盤(pán) 。為了防止這種問(wèn)題,對(duì)于能夠在斷電或發(fā)生其它主機(jī) 故障 時(shí)保護(hù)緩存中數(shù)據(jù)的設(shè)備,應(yīng)該以 nobarrier 選項(xiàng)掛載XFS文件系統(tǒng)。
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.
測(cè)試后發(fā)現(xiàn)讀寫(xiě)性能還可以更好,測(cè)試方法同上。
五、XFS的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1、數(shù)據(jù)可恢復(fù)
采用XFS文件系統(tǒng),當(dāng)意想不到的宕機(jī)發(fā)生后,首先,由于文件系統(tǒng)開(kāi)啟了日志功能,所以你磁盤(pán)上的文件不再會(huì)意外宕機(jī)而遭到破壞了。不論目前文件系統(tǒng)上存儲(chǔ)的文件與數(shù)據(jù)有多少,文件系統(tǒng)都可以根據(jù)所記錄的日志在很短的時(shí)間內(nèi)迅速恢復(fù)磁盤(pán)文件內(nèi)容。
2、快速傳輸
XFS文件系統(tǒng)采用優(yōu)化算法,日志記錄對(duì)整體文件操作影響非常小。XFS查詢(xún)與分配存儲(chǔ)空間非常快。xfs文件系統(tǒng)能連續(xù)提供快速的反應(yīng)時(shí)間。筆者曾經(jīng)對(duì)XFS、JFS、Ext3、ReiserFS文件系統(tǒng)進(jìn)行過(guò)測(cè)試,XFS文件文件系統(tǒng)的性能表現(xiàn)相當(dāng)出眾。
3、文件系統(tǒng)可擴(kuò)展
XFS 是一個(gè)全64-bit的文件系統(tǒng),它可以支持上百萬(wàn)T字節(jié)的存儲(chǔ)空間。對(duì)特大文件及小尺寸文件的支持都表現(xiàn)出眾,支持特大數(shù)量的目錄。最大可支持的文件大 小為263 = 9 x 1018 = 9 exabytes,最大文件系統(tǒng)尺寸為18 exabytes。
XFS使用高的表結(jié)構(gòu)(B+樹(shù)),保證了文件系統(tǒng)可以快速搜索與快速空間分配。XFS能夠持續(xù)提供高速操作,文件系統(tǒng)的性能不受目錄中目錄及文件數(shù)量的限制。
注:一般大于2T的分區(qū)用PARTED來(lái)分,而對(duì)于大于16T的分區(qū)雖然可以用PARTED來(lái)分,但使用EXT4分區(qū)格式來(lái)掛載時(shí),也易出錯(cuò)。在這個(gè)時(shí)候把大于16T的單個(gè)分區(qū)用XFS來(lái)格式化,然后掛載是可以正常的。
4、I/0讀寫(xiě)快
XFS 能以接近裸設(shè)備I/O的性能存儲(chǔ)數(shù)據(jù)。在單個(gè)文件系統(tǒng)的測(cè)試中,其吞吐量最高可達(dá)7GB每秒,對(duì)單個(gè)文件的讀寫(xiě)操作,其吞吐量可達(dá)4GB每秒
缺點(diǎn):
XFS文件系統(tǒng)無(wú)法被收縮。
歷史上XFS上的元數(shù)據(jù)操作曾比其它文件系統(tǒng)都慢,表現(xiàn)為在刪除大量小文件時(shí)性能糟糕。該性能問(wèn)題是被Red Hat的XFS開(kāi)發(fā)者Dave Chinner在代碼中定位到的。使用一個(gè)叫“延遲記錄”的掛載選項(xiàng)可以成數(shù)量級(jí)地提升元數(shù)據(jù)操作的性能。該選項(xiàng)幾乎把日志整個(gè)存在內(nèi)存中。Linux內(nèi)核主線(xiàn)版本2.6.35中作為一個(gè)試驗(yàn)性特性引入了這個(gè)補(bǔ)丁,在2.6.37中使它成為了一個(gè)穩(wěn)定的特性,并計(jì)劃在2.6.39中把它作為默認(rèn)的日志記錄方法。早期測(cè)試顯示在有少量線(xiàn)程的環(huán)境中其性能接近EXT4,在大量線(xiàn)程的環(huán)境下超過(guò)了EXT4 。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。