歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux基礎知識

專家幫您解析Linux文件系統

經常有一些用戶詢問關於高性能I/O的需求——如果他們可以使用Linux系統而不是AIX或者Solaris操作系統。但是從來沒有人詢問Windows或者NTFS中的高性能I/O(高IOPS或者高流式I/O),因為這是不可能存在的。

    Windows和NTFS文件系統自從10年前出現到現在幾乎沒有太大的改變,由於它們自身結構限制的原因它們是不大可能拓展的。NTFS文件系同層、分配策略以及架構組織使得NTFS文件系統不能有效地支持多TB文件系統,更不用說PB級文件系統了,因為NTFS沒有成為微軟的目標市場也就不足為奇了。

    那麼Linux系統最初的目標市場是什麼呢?當然是取代微軟桌面了。Linux已經從在桌面上運行逐漸轉移到在Sun、IBM和SGI的大型SMP服務器上運行。但是Linux操作系統和Linux文件系統能夠應對高性能I/O帶來的挑戰嗎?

    你也許會認為你不需要高性能I/O,但是每台服務器都需要這種I/O性能來滿足備份和恢復等簡單需要。現有的LTO-4磁帶驅動器可以以每面120MB(無壓縮)的速度運行,支持每面240MB的無壓縮數據速率。如果你的文件系統不能支持這種流式數據傳輸所需的I/O的話,那麼接下來備份和恢復所花費的時間可能要比你預期的長。對於多磁帶驅動器的大型環境來說,磁帶驅動器不能以完全的數據速率進行工作的話,這就需要更多的磁帶驅動器來滿足備份時間窗口,這也會對恢復流程造成影響。因此,只要是說到備份或者恢復,似乎所有人都對Linux文件系統的性能更感興趣。

    Linux文件系統可以滿足其他大型Unix服務器的文件系統需求嗎?有些人可能會就這個問題詢問SGI,但是SGI有一款名為ProPack的軟件,這款軟件具有針對Linux的高速I/O優化功能,另外SGI還有一個名為CxFS的開放特有Linux文件系統,它並不是標准Linux套件的一部分。因為SGI的ProPack和CxFS不屬於標准Linux套件,所以我們在這裡就不談它們了。我們將主要談一談標准Linux系統,因為我們大多數認識用的都是這種系統。

    我們將主要來看兩點:

    1、Linux操作系統

    2、Linux文件系統

    Linux操作系統

    我們先不考慮Linux未來的發展,而是將重點放在現在。Linux擁有一系列可以滿足AIX以及Solaris系統I/O性能的特性(例如直接I/O),但是說到底Linux不是基於高性能多線程I/O進行設計的。

    有很多方面對Linux的性能造成了限制,例如與其他操作系統相比的頁面大小、Linux在直接I/O和頁面調整方面的限制、以及Linux不允許通過I/O請求的大小來自動直連I/O——我曾經發現Linux內核將較大的(大於512MB)的I/O請求分解成128KB的請求。因為最初Linux I/O性能和文件系統的設計目標是為了取代Windows操作系統,所以出現這種問題並不奇怪。

    Linux還存在其他一些問題,對初用者來說缺少專門的人來負責。如果你發現有問題,許多人都表示會來對它進行修復,編寫Linux程序的人也許不會對你的問題做出回應。如果一家Linux廠商答應對你發現的故障進行修復,這並不意味著Linux部門將接受他們的許諾,或者馬上接受。對故障打補丁的同時可能會帶來維護上的一些問題。

    Linux文件系統和Linux內核設計的目標應該是解決一些完全不同於AIX或者Solaris的故障問題,如果你發現有故障問題的話,應該直接找Linux部門而不是IBM或者Sun。如果你使用的是AIX或者Solaris,向IBM或者Sun求助的話,他們不會說沒有辦法解決的。

    Linux文件系統

    記住,大多數Linux文件系統的設計目標都是為了取代NTFS,而不是為了取代像GPFS(IBM)、StorNext(昆騰)或者QFS(Sun)這些高性能文件系統的。這些文件系統主要是針對流式I/O進行設計的,我們現在知道流式I/O對高速IPOS和數據庫讀取都是十分重要的。

    目前常用的Linux文件系統(EXT3、EXT4以及XFS)在很長一段時間內都沒有發生過結構上重大的變化。EXT2和EXT3在某些方面改進之後升級到了EXT4,但是像RAID條帶的超級塊以及首個元數據分配等簡單特性都沒有發生改變。

    另外,像RAID條帶值的附件文件系統元數據區和間接分配,其中間接分配是支持較小分配(最大不超過4KB)以及所需的較大分配的固定值。拿一個200TB的系統來說,它使用EXT3支持的4KB分區來實現537億個分區組成的200TB系統。如果是使用8MB的企業文件系統,就是262億個可管理的分區。這種分配圖甚至可以在內存中支持相同數量的分區。XFS文件系統與EXT3有著類似的特點,如果Linux頁面大小是64KB的話分區也可以達到64KB,但是仍然存在超級塊的調整、元數據區和其他一些問題。

    Linux占據一席之地

    這並不是說我是Linux的反對者,這只因為我不是AIX或者Solaris的支持者。我甚至不是反對Windows,因為我在我的電腦上就使用的是Windows界面。但是我相信現在Linux文件系統還不足以取代高性能、高可擴展性的SMP文件系統。計算機是工具,操作系統和文件系統也是工具。沒有人會用鏈鋸替代豎鋸,這種類比同樣也適用於操作系統、文件系統以及它們運行在的硬件設備。

    我知道有很多人每天都會用到微軟的Word、Excel、PowerPoint和Visio。如果所有這些應用都不能在Windows類似的操作系統中運行的話,我可能會使用其中一些,但是我發現其中存在一些不兼容性,很久之前有人向我證明了可以兼容之後我才決定采用Windows系統。這裡我認為每台計算機都是一個工具並且有它自己的用途。現在沒有哪個計算機或者文件系統可以滿足所有應用的需要。這並不奇怪,據我所知,Linux不支持大型文件系統的單實例以及為滿足高性能需求從小型文件系統向大型文件系統的拓展。而且我認為這在短時期內是不會有所改變的。

Copyright © Linux教程網 All Rights Reserved