專家?guī)湍馕鯨inux文件系統(tǒng) |
發(fā)布時間: 2012/9/15 13:15:12 |
經(jīng)常有一些用戶詢問關(guān)于高性能I/O的需求——如果他們可以使用Linux系統(tǒng)而不是AIX或者Solaris操作系統(tǒng)。但是從來沒有人詢問Windows或者NTFS中的高性能I/O(高IOPS或者高流式I/O),因為這是不可能存在的。 Windows和NTFS文件系統(tǒng)自從10年前出現(xiàn)到現(xiàn)在幾乎沒有太大的改變,由于它們自身結(jié)構(gòu)限制的原因它們是不大可能拓展的。NTFS文件系同層、分配策略以及架構(gòu)組織使得NTFS文件系統(tǒng)不能有效地支持多TB文件系統(tǒng),更不用說PB級文件系統(tǒng)了,因為NTFS沒有成為微軟的目標(biāo)市場也就不足為奇了。 那么Linux系統(tǒng)最初的目標(biāo)市場是什么呢?當(dāng)然是取代微軟桌面了。Linux已經(jīng)從在桌面上運行逐漸轉(zhuǎn)移到在Sun、IBM和SGI的大型SMP服務(wù)器上運行。但是Linux操作系統(tǒng)和Linux文件系統(tǒng)能夠應(yīng)對高性能I/O帶來的挑戰(zhàn)嗎? 你也許會認(rèn)為你不需要高性能I/O,但是每臺服務(wù)器都需要這種I/O性能來滿足備份和恢復(fù)等簡單需要,F(xiàn)有的LTO-4磁帶驅(qū)動器可以以每面120MB(無壓縮)的速度運行,支持每面240MB的無壓縮數(shù)據(jù)速率。如果你的文件系統(tǒng)不能支持這種流式數(shù)據(jù)傳輸所需的I/O的話,那么接下來備份和恢復(fù)所花費的時間可能要比你預(yù)期的長。對于多磁帶驅(qū)動器的大型環(huán)境來說,磁帶驅(qū)動器不能以完全的數(shù)據(jù)速率進(jìn)行工作的話,這就需要更多的磁帶驅(qū)動器來滿足備份時間窗口,這也會對恢復(fù)流程造成影響。因此,只要是說到備份或者恢復(fù),似乎所有人都對Linux文件系統(tǒng)的性能更感興趣。 Linux文件系統(tǒng)可以滿足其他大型Unix服務(wù)器的文件系統(tǒng)需求嗎?有些人可能會就這個問題詢問SGI,但是SGI有一款名為ProPack的軟件,這款軟件具有針對Linux的高速I/O優(yōu)化功能,另外SGI還有一個名為CxFS的開放特有Linux文件系統(tǒng),它并不是標(biāo)準(zhǔn)Linux套件的一部分。因為SGI的ProPack和CxFS不屬于標(biāo)準(zhǔn)Linux套件,所以我們在這里就不談它們了。我們將主要談一談標(biāo)準(zhǔn)Linux系統(tǒng),因為我們大多數(shù)認(rèn)識用的都是這種系統(tǒng)。 我們將主要來看兩點: 1、Linux操作系統(tǒng) 2、Linux文件系統(tǒng) Linux操作系統(tǒng) 我們先不考慮Linux未來的發(fā)展,而是將重點放在現(xiàn)在。Linux擁有一系列可以滿足AIX以及Solaris系統(tǒng)I/O性能的特性(例如直接I/O),但是說到底Linux不是基于高性能多線程I/O進(jìn)行設(shè)計的。 有很多方面對Linux的性能造成了限制,例如與其他操作系統(tǒng)相比的頁面大小、Linux在直接I/O和頁面調(diào)整方面的限制、以及Linux不允許通過I/O請求的大小來自動直連I/O——我曾經(jīng)發(fā)現(xiàn)Linux內(nèi)核將較大的(大于512MB)的I/O請求分解成128KB的請求。因為最初Linux I/O性能和文件系統(tǒng)的設(shè)計目標(biāo)是為了取代Windows操作系統(tǒng),所以出現(xiàn)這種問題并不奇怪。 Linux還存在其他一些問題,對初用者來說缺少專門的人來負(fù)責(zé)。如果你發(fā)現(xiàn)有問題,許多人都表示會來對它進(jìn)行修復(fù),編寫Linux程序的人也許不會對你的問題做出回應(yīng)。如果一家Linux廠商答應(yīng)對你發(fā)現(xiàn)的故障進(jìn)行修復(fù),這并不意味著Linux部門將接受他們的許諾,或者馬上接受。對故障打補丁的同時可能會帶來維護(hù)上的一些問題。 Linux文件系統(tǒng)和Linux內(nèi)核設(shè)計的目標(biāo)應(yīng)該是解決一些完全不同于AIX或者Solaris的故障問題,如果你發(fā)現(xiàn)有故障問題的話,應(yīng)該直接找Linux部門而不是IBM或者Sun。如果你使用的是AIX或者Solaris,向IBM或者Sun求助的話,他們不會說沒有辦法解決的。 Linux文件系統(tǒng) 記住,大多數(shù)Linux文件系統(tǒng)的設(shè)計目標(biāo)都是為了取代NTFS,而不是為了取代像GPFS(IBM)、StorNext(昆騰)或者QFS(Sun)這些高性能文件系統(tǒng)的。這些文件系統(tǒng)主要是針對流式I/O進(jìn)行設(shè)計的,我們現(xiàn)在知道流式I/O對高速IPOS和數(shù)據(jù)庫讀取都是十分重要的。 目前常用的Linux文件系統(tǒng)(EXT3、EXT4以及XFS)在很長一段時間內(nèi)都沒有發(fā)生過結(jié)構(gòu)上重大的變化。EXT2和EXT3在某些方面改進(jìn)之后升級到了EXT4,但是像RAID條帶的超級塊以及首個元數(shù)據(jù)分配等簡單特性都沒有發(fā)生改變。 另外,像RAID條帶值的附件文件系統(tǒng)元數(shù)據(jù)區(qū)和間接分配,其中間接分配是支持較小分配(最大不超過4KB)以及所需的較大分配的固定值。拿一個200TB的系統(tǒng)來說,它使用EXT3支持的4KB分區(qū)來實現(xiàn)537億個分區(qū)組成的200TB系統(tǒng)。如果是使用8MB的企業(yè)文件系統(tǒng),就是262億個可管理的分區(qū)。這種分配圖甚至可以在內(nèi)存中支持相同數(shù)量的分區(qū)。XFS文件系統(tǒng)與EXT3有著類似的特點,如果Linux頁面大小是64KB的話分區(qū)也可以達(dá)到64KB,但是仍然存在超級塊的調(diào)整、元數(shù)據(jù)區(qū)和其他一些問題。 Linux占據(jù)一席之地 這并不是說我是Linux的反對者,這只因為我不是AIX或者Solaris的支持者。我甚至不是反對Windows,因為我在我的電腦上就使用的是Windows界面。但是我相信現(xiàn)在Linux文件系統(tǒng)還不足以取代高性能、高可擴(kuò)展性的SMP文件系統(tǒng)。計算機(jī)是工具,操作系統(tǒng)和文件系統(tǒng)也是工具。沒有人會用鏈鋸替代豎鋸,這種類比同樣也適用于操作系統(tǒng)、文件系統(tǒng)以及它們運行在的硬件設(shè)備。 我知道有很多人每天都會用到微軟的Word、Excel、PowerPoint和Visio。如果所有這些應(yīng)用都不能在Windows類似的操作系統(tǒng)中運行的話,我可能會使用其中一些,但是我發(fā)現(xiàn)其中存在一些不兼容性,很久之前有人向我證明了可以兼容之后我才決定采用Windows系統(tǒng)。這里我認(rèn)為每臺計算機(jī)都是一個工具并且有它自己的用途,F(xiàn)在沒有哪個計算機(jī)或者文件系統(tǒng)可以滿足所有應(yīng)用的需要。這并不奇怪,據(jù)我所知,Linux不支持大型文件系統(tǒng)的單實例以及為滿足高性能需求從小型文件系統(tǒng)向大型文件系統(tǒng)的拓展。而且我認(rèn)為這在短時期內(nèi)是不會有所改變的。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |