究竟什么是文件系統(tǒng)?
我們很高興你問了這個問題。文件系統(tǒng)為在給定物理設(shè)備(例如硬盤驅(qū)動器、閃存陣列或者光盤)上的數(shù)據(jù)進(jìn)行存儲、檢索和修改提供方法,即在磁盤上組織文件的方法。文件系統(tǒng)很像是操作系統(tǒng)的記賬人,它可能會與其他協(xié)議(例如NFS或者SMB)交互或者成為這些協(xié)議的一部分以支持對安裝的文件系統(tǒng)的網(wǎng)絡(luò)訪問。它還負(fù)責(zé)管理存儲容量、數(shù)據(jù)布局、目錄和文件名、元數(shù)據(jù)、數(shù)據(jù)完整性和訪問權(quán)限等。文件系統(tǒng)的特性和功能應(yīng)該與其正在使用的設(shè)備以及應(yīng)用程序目標(biāo)相符合。,
有很多不同的文件系統(tǒng),但是只有少數(shù)與使用基于閃存的存儲設(shè)備的Windows用戶相關(guān)的文件系統(tǒng)。FAT32和NTFS可能是Windows世界最流行的文件系統(tǒng),但事實(shí)上還存在很多其他文件系統(tǒng)。Mac用戶很熟悉的HFS+,Ext3和ext4主宰者Linux世界,SCO則有HTFS,UFS 被用于Solaris和BSD,惠普UX運(yùn)行VxFS等。
文件系統(tǒng)領(lǐng)域最新加入者就是exFAT。最初由微軟設(shè)計(jì)作為閃存設(shè)備的FAT32的擴(kuò)展文件(它代表擴(kuò)展文件分配表,Extended File Allocation Table),它也受到Mac操作系統(tǒng)(Snow Leopard 10.6.5以上版本)的支持。雖然微軟對exFAT擁有專利權(quán),從長遠(yuǎn)來看在其他系統(tǒng)部署exFAT可能會存在問題,但我們決定對比NTFS、 exFAT和較老的FAT32(因?yàn)槠淇缦到y(tǒng)兼容性仍然很流行)。
文件系統(tǒng):FAT32、NTFS、exFAT和HFS+
FAT32
FAT32最早出現(xiàn)在1997年的Windows 95B中,幾乎所有主流操作系統(tǒng)都可以創(chuàng)建、讀取和寫入FAT32分區(qū),對于低容量外部存儲(例如USB閃存驅(qū)動器)FAT32仍然是一個不錯的選擇?,F(xiàn)代操作系統(tǒng)在默認(rèn)情況下選擇NTFS,Mac操作系統(tǒng)運(yùn)行HFS+。
作為一個32位文件系統(tǒng),F(xiàn)AT32被限制為最大分區(qū)大小32TB,8KB簇,雖然這種格式的原來格式限制被限制為最大分區(qū)2TB,而當(dāng)前 Windows操作系統(tǒng)讓其難以使FAT32分區(qū)大于32GB。簇大小直接取決于分區(qū)大小,簇的范圍從512字節(jié)到8KB之間。由于文件大小被存儲在4字節(jié)字段中,最大文件大小限制為4GB。這對于視頻文件或者驅(qū)動器鏡像而言,將是一個問題。文件名是靈活地,允許最多255字符。FAT32并不支持日志 (journaling),這意味著用戶數(shù)據(jù)或元數(shù)據(jù)的完整性問題可能導(dǎo)致信息丟失。FAT32不支持權(quán)限管理。
Windows XP提供安裝到FAT32分區(qū)的選項(xiàng),而Windows Vista和7并不提供,因?yàn)樗鼈円蕾囉贜TFS。
NTFS
新技術(shù)文件系統(tǒng)與Windows NT一起推出,與IBM的HPFS很類似。文件大小可以高達(dá)16TB(理論上是16EB),而分區(qū)目前最大可達(dá)256TB。其文件大小限制與FAT32的 4GB相比更具現(xiàn)實(shí)意義。文件名最多可長達(dá)255字符。NTFS支持LZ77壓縮、文件級加密(通常是AES)和訪問控制,通過ACL管理。 4KB(FAT32為32KB)簇大小確保寫入驅(qū)動器的小文件不會浪費(fèi)太多容量。這也是為什么4KB簇大小對SSD性能的重要性,你會發(fā)現(xiàn),NTFS比其他文件系統(tǒng)更具優(yōu)勢。
主文件表(Master File Table,以下簡稱MFT)存儲文件的屬性、位置和訪問信息。最小的文件直接被保存在MFT中。與文件分配表不同,MFT在格式化過程中并不會被完全寫入,會隨著時間的推移而增長。正因?yàn)槿绱?,它是唯一可以?jīng)受碎片的。它還能夠日志記錄元數(shù)據(jù),這意味著寫入操作先被記錄,寫入程序再執(zhí)行,日志中會記錄成功完成的結(jié)果。寫入過程會因?yàn)殡娫垂收隙?例如,系統(tǒng)恢復(fù)之前寫入的日志和恢復(fù)到穩(wěn)定的文件系統(tǒng)狀態(tài)。
exFAT
exFAT是微軟專門設(shè)計(jì)來處理閃存的,高容量SDXC卡都采用了exFAT,雖然并沒有嚴(yán)格要求使用。所有現(xiàn)有Windows版本(從Vista SP1或XP SP2起)都支持exFAT,高達(dá)64ZB,文件高達(dá)16EB。與FAT32不同,其簇可以增加到32MB,訪問控制通過ACL管理。自由空間位圖負(fù)責(zé)容量分配,提高刪除性能。這能夠最大程度的提高寫入性能,尤其是與NTFS相比,NTFS要求被刪除的數(shù)據(jù)被覆蓋。
然而,因?yàn)槲④浀膃xFAT授權(quán)機(jī)制,該文件系統(tǒng)并沒有像FAT32和NTFS一樣受到廣泛支持。因此,exFAT還沒有廣泛應(yīng)用于消費(fèi)類電子產(chǎn)品,盡管它就是為此目的而設(shè)計(jì)(即使XP SP2和Mac OS X 10.6.5都支持exFAT)。Windows Vista和7在很大程度上依賴于NTFS提供的文件權(quán)限和其他功能。
HFS+
HFS+也被稱為Mac OS Extended, 它能夠在所有類型的存儲設(shè)備上運(yùn)作,包括光盤。HFS+支持日志,且分袂通??梢园惭b在Unix和Linux系統(tǒng)中。即使給定內(nèi)核不支持HFS+,通??梢哉业娇蛇x軟件包,然而,有時候這些只支持讀取HFS+格式化的分區(qū)。另外還有第三方工具提供Windows對HFS+的支持,例如Paragon Software的HFS for Windows或者M(jìn)ediafour的MacDrive。
HFS+具有512字節(jié)扇區(qū)(被分組成分配塊),最多支持255個字符的文件名,最大文件大小為8EB。HFS+通過不斷嘗試尋找足夠容納一個被寫入文件的自由空間來管理文件碎片。文件大小的增加可能會導(dǎo)致文件需要完全被重寫。最后,自10.3版本的Mac OS X開始支持動態(tài)碎片整理,當(dāng)文件被分為8個以上部分且其他活動/訪問先決條件不適用時就會采取行動,HFS+支持訪問控制、壓縮和加密。
測試SSD: Samsung 830和Zalman F1 Series
Samsung 830 Series (256 GB)
三星的830系列SSD目前是我們的最愛之一,雖然它相當(dāng)昂貴。
該產(chǎn)品分為64GB、128GB、256GB和512GB四種容量類型。256GB和512GB比低容量版本更快。三星目前架構(gòu)的主要優(yōu)點(diǎn)在于其基于ARM的三核A9控制器,無需任何硬件壓縮,并且提供非常一致的性能。雖然這個產(chǎn)品在我們的測試結(jié)果表中并沒有總是名列榜首,但各方面的測試結(jié)果都還不錯。
Zalman F1 (SandForce SF-2281, 240 GB)
我們決定測試基于SandForce的SSD是因?yàn)樵摴镜募夹g(shù)依賴于壓縮來最大限度地提高性能。它可能或者可能不會返回你期望的結(jié)果,這取決于驅(qū)動器處理的信息。當(dāng)在Windows中運(yùn)行時,你不會感覺到什么差異,然而,涉及不可壓縮數(shù)據(jù)的更極端的工作負(fù)載絕對會讓SandForce的技術(shù)特質(zhì)更加突出。
我們選擇了Zalman的F1系列,利用現(xiàn)有的SandForce SF-2281控制器。Zalman提供60GB、120GB和240GB容量的產(chǎn)品。
Zalman在其產(chǎn)品網(wǎng)站上提供的圖表清楚地表示寫入不可壓縮數(shù)據(jù)可能會比可壓縮數(shù)據(jù)更慢。
測試配置和基準(zhǔn)測試項(xiàng)目
為了讓SSD符合測試條件,我們進(jìn)行了兩小時的燒機(jī),其中包括I/O密集型和流密集型工作負(fù)載的腳本運(yùn)行。這樣,我們可以確保所有結(jié)果都能夠反映真正的性能,而不只是峰值性能數(shù)字,這些峰值性能數(shù)據(jù)在日常生活中不太具有相關(guān)性,并且會隨著時間的推移而下降。
SSD隨機(jī)和順序讀寫性能測試
不飽和隊(duì)列(隊(duì)列深度1)的隨機(jī)4KB讀取和寫入操作代表了相當(dāng)?shù)湫偷呢?fù)載情況。
寫入更快,因?yàn)轵?qū)動器可以迅速地找到一個自由扇區(qū)來寫入,而讀取操作是針對給定扇區(qū)的。使用FAT32時,寫入到三星830非常慢,而Zalman F1驅(qū)動器的測試結(jié)果表明這似乎并不是文件系統(tǒng)本身的固有問題。
隊(duì)列深度64等候命令允許驅(qū)動器優(yōu)化讀取操作,從而大大改善了吞吐量。
對于exFAT和NTFS,這有一個非常積極的影響,而使用FAT32的驅(qū)動器遭受巨大的性能打擊。然而,隊(duì)列64只是理論上的,因?yàn)樽烂嫦到y(tǒng)幾乎從未遇到過超過隊(duì)列深度4的情況。
順序吞吐量幫助展示了FAT32在更現(xiàn)實(shí)的情況下的性能落后,并且其吞吐量嚴(yán)重受限,特別是在Zalman固態(tài)硬盤上。由于存儲驅(qū)動器往往用于承載較大文件(例如視頻文件),這個指標(biāo)與我們的測試最為相關(guān)。
SSD:訪問時間、復(fù)制測試和整體分?jǐn)?shù)
FAT32在訪問時間方面落后于其他文件系統(tǒng),而exFAT和NTFS非常接近
這些測試基準(zhǔn)代表了現(xiàn)實(shí)生活中的復(fù)制/粘貼工作負(fù)載,這些測試結(jié)果證實(shí)NTFS似乎是最佳隨著,其次是exFAT,F(xiàn)AT32在這里體現(xiàn)出了其的陳舊,非常不適合SSD。
CrystalDiskMark:隨機(jī)和順序吞吐量
CrystalDiskMark隨機(jī)4 KB結(jié)果證實(shí)了我們在AS SSD看到的結(jié)果
使用512KB的吞吐量與我們預(yù)期的結(jié)果一樣,exFAT和NTFS優(yōu)于FAT32,F(xiàn)AT32再一次落后了。
對于三個文件系統(tǒng),順序傳輸性能非常具有可比性
測試結(jié)果:Iometer 4KB隨機(jī)和流讀寫
4 KB隨機(jī)寫入測試真正提醒了我們FAT32的“年齡”。從AS SSD和CrystalDiskMark的結(jié)果來看,這里的結(jié)果并沒有令我們感到驚訝。很明顯,在較大驅(qū)動器上,F(xiàn)AT32的靈活的簇大小成為寫入操作的問題。4KB塊需要被容納到32KB簇中,在這方面,exFAT比FAT32表現(xiàn)得更好,盡管FAT32有更大的簇大小。因?yàn)槠渥杂煽臻g進(jìn)行了索引,找出自由空間是很簡單的事情。
再次,持續(xù)吞吐量的測試結(jié)果與我們前面的測試結(jié)果相類似,并沒有看到任何驚喜。
測試結(jié)果:Iometer工作負(fù)載測試
數(shù)據(jù)庫測試是一些完全隨機(jī)的操作,其中67%是讀取。該測試是8KB塊大小,在其上面NTFS可以利用非壓縮三星架構(gòu),而基于SandForce的驅(qū)動器在NTFS和exFAT上運(yùn)行的結(jié)果類似,F(xiàn)AT32在這里根本不值得一提。
Web服務(wù)器工作負(fù)載不執(zhí)行寫入,所以所有文件系統(tǒng)的性能都差不多。
工作站工作量模式按照80%和20%分隔了讀取和寫入操作,隨機(jī)和順序操作也分為80%和20%。這涉及64KB、128KB和256KB的塊大小,這也是為什么FAT32再次暴露其性能限制的原因,因?yàn)樗恢С诌@么大的塊。
測試結(jié)果:PCMark 7
為了反映更真實(shí)的情況,我們轉(zhuǎn)向了PCMark 7,雖然PCMark并不完全是真實(shí)世界情況,但它基本能夠反映每條操作的典型性能。
向Windows照片庫導(dǎo)入圖片意味著需要寫入相當(dāng)多的數(shù)據(jù),很顯然,F(xiàn)AT32并不是這種工作量的最佳選擇。
從整體的測試結(jié)果來看,真實(shí)世界的差異要比更綜合的實(shí)驗(yàn)室結(jié)果的差異更小,這意味著,無論你是對比文件系統(tǒng)還是SSD架構(gòu),F(xiàn)AT32在Samsung 830都是一個糟糕的選擇。
Windows系統(tǒng)應(yīng)堅(jiān)持使用NTFS
很難找出適用于所有平臺(Windows、Mac、Linux等)的測試基準(zhǔn),在這一塊,我們選擇了針對Windows平臺,并選擇對比 FAT32、NTFS和exFAT,以代表絕大多數(shù)臺式機(jī)用戶。此外,因?yàn)閑xFAT包含在SDXC卡和即將發(fā)布的數(shù)字設(shè)備中,exFAT有望成為受各種操作系統(tǒng)支持的少數(shù)文件系統(tǒng)之一。
如果使用的是基于windows的系統(tǒng),可以堅(jiān)持使用NTFS。這個默認(rèn)windows文件系統(tǒng)在我們這次測試中使用的兩個SSD架構(gòu)上都提供了最佳性能。NTFS而且還能夠在很多非windows操作系統(tǒng)上進(jìn)行讀取,使其具有跨操作系統(tǒng)兼容性。
雖然FAT32具有更廣泛的平臺兼容性的優(yōu)勢,除了USB閃存驅(qū)動器或者使用WindowsXP SP2之前版本的操作系統(tǒng)環(huán)境外,我們并不推薦使用FAT32.它缺乏文件訪問權(quán)限、自由空間位圖、文件日志和基本性能,讓其在與比較現(xiàn)代的文件系統(tǒng)(例如NTFS和exFAT)相比時,有點(diǎn)相形見拙。
在exFAT和NTFS之間,幾乎是一個平局。NTFS的強(qiáng)大的文件權(quán)限控制讓其成為內(nèi)部存儲設(shè)備更好的選擇,而exFAT對熱插拔的容忍使其成為 USB連接的存儲更好的選擇。正如我們前面提到的,F(xiàn)AT32和exFAT格式化的驅(qū)動器不能夠用于現(xiàn)代操作系統(tǒng)磁盤。但是對于想要快速訪問數(shù)據(jù)的用戶,或者希望在不同磁盤驅(qū)動器而不是操作系統(tǒng)上安裝程序的人而言,這些測試結(jié)果更具意義。如果用于內(nèi)部存儲,請堅(jiān)持使用NTFS,使用exFAT僅用于外部存儲。