文件系统数否影响SSD性能探秘

固态硬盘(SSD)处理数据的速度很快,并且价格也不算太离谱,一些爱好者可能想将SSD用于数据存储。但是你使用的文件系统会给SSD的性能带来影响吗?我们对比了FAT32、NTFS以及新的exFAT等主流文件系统在SSD上的性能情况。

固态硬盘继续蚕食被硬盘驱动器统治几十年的领土,快如闪电的性能、适当的能耗以及基于闪存的设备具有的物理坚固性都是吸引用户投入固态硬盘怀抱的因素。随着越来越多的爱好者选择固态硬盘,产量增加,价格也随之下降,使SSD占据市场主导地位成为可能。移动用户尤其能够从固态技术中获利,降低10%的功耗预算可以转换成数小时的电池寿命或者节省电费。

对家用电脑影响最大的一点是很多人都喜欢24小时不间断地运行系统。随着容量需求的增加,承载所有数据所需要的驱动器的数量也会增加,使得电耗直线上升。假如总是开机的电脑,增加一个五驱动NAS,并使用HTPC来记录你喜欢的节目,你的电耗将赶上一家小型企业的电耗。

但是现在你可以选择使用一个或者多个固态硬盘。不管你是因为磁盘存储太慢、太吵或者太耗电,现在都是时候考虑下一代存储方式了。

几乎我们进行的所有测试都强调性能和存储,而最近我们才开始分析文件系统带来的影响,我们将对FAT32、NTFS和exFAT进行比较,但首先你可能会问:

究竟什么是文件系统?它有什么影响?

究竟什么是文件系统?

我们很高兴你问了这个问题。文件系统为在给定物理设备(例如硬盘驱动器、闪存阵列或者光盘)上的数据进行存储、检索和修改提供方法,即在磁盘上组织文件的方法。文件系统很像是操作系统的记账人,它可能会与其他协议(例如NFS或者SMB)交互或者成为这些协议的一部分以支持对安装的文件系统的网络访问。它还负责管理存储容量、数据布局、目录和文件名、元数据、数据完整性和访问权限等。文件系统的特性和功能应该与其正在使用的设备以及应用程序目标相符合。,

有很多不同的文件系统,但是只有少数与使用基于闪存的存储设备的Windows用户相关的文件系统。FAT32和NTFS可能是Windows世界最流行的文件系统,但事实上还存在很多其他文件系统。Mac用户很熟悉的HFS+,Ext3和ext4主宰者Linux世界,SCO则有HTFS,UFS 被用于Solaris和BSD,惠普UX运行VxFS等。

文件系统领域最新加入者就是exFAT。最初由微软设计作为闪存设备的FAT32的扩展文件(它代表扩展文件分配表,Extended File Allocation Table),它也受到Mac操作系统(Snow Leopard 10.6.5以上版本)的支持。虽然微软对exFAT拥有专利权,从长远来看在其他系统部署exFAT可能会存在问题,但我们决定对比NTFS、 exFAT和较老的FAT32(因为其跨系统兼容性仍然很流行)。

文件系统:FAT32、NTFS、exFAT和HFS+

FAT32

FAT32最早出现在1997年的Windows 95B中,几乎所有主流操作系统都可以创建、读取和写入FAT32分区,对于低容量外部存储(例如USB闪存驱动器)FAT32仍然是一个不错的选择。现代操作系统在默认情况下选择NTFS,Mac操作系统运行HFS+。

作为一个32位文件系统,FAT32被限制为最大分区大小32TB,8KB簇,虽然这种格式的原来格式限制被限制为最大分区2TB,而当前 Windows操作系统让其难以使FAT32分区大于32GB。簇大小直接取决于分区大小,簇的范围从512字节到8KB之间。由于文件大小被存储在4字节字段中,最大文件大小限制为4GB。这对于视频文件或者驱动器镜像而言,将是一个问题。文件名是灵活地,允许最多255字符。FAT32并不支持日志 (journaling),这意味着用户数据或元数据的完整性问题可能导致信息丢失。FAT32不支持权限管理。

Windows XP提供安装到FAT32分区的选项,而Windows Vista和7并不提供,因为它们依赖于NTFS。

NTFS

新技术文件系统与Windows NT一起推出,与IBM的HPFS很类似。文件大小可以高达16TB(理论上是16EB),而分区目前最大可达256TB。其文件大小限制与FAT32的 4GB相比更具现实意义。文件名最多可长达255字符。NTFS支持LZ77压缩、文件级加密(通常是AES)和访问控制,通过ACL管理。 4KB(FAT32为32KB)簇大小确保写入驱动器的小文件不会浪费太多容量。这也是为什么4KB簇大小对SSD性能的重要性,你会发现,NTFS比其他文件系统更具优势。

主文件表(Master File Table,以下简称MFT)存储文件的属性、位置和访问信息。最小的文件直接被保存在MFT中。与文件分配表不同,MFT在格式化过程中并不会被完全写入,会随着时间的推移而增长。正因为如此,它是唯一可以经受碎片的。它还能够日志记录元数据,这意味着写入操作先被记录,写入程序再执行,日志中会记录成功完成的结果。写入过程会因为电源故障而失败吗?例如,系统恢复之前写入的日志和恢复到稳定的文件系统状态。

exFAT

exFAT是微软专门设计来处理闪存的,高容量SDXC卡都采用了exFAT,虽然并没有严格要求使用。所有现有Windows版本(从Vista SP1或XP SP2起)都支持exFAT,高达64ZB,文件高达16EB。与FAT32不同,其簇可以增加到32MB,访问控制通过ACL管理。自由空间位图负责容量分配,提高删除性能。这能够最大程度的提高写入性能,尤其是与NTFS相比,NTFS要求被删除的数据被覆盖。

然而,因为微软的exFAT授权机制,该文件系统并没有像FAT32和NTFS一样受到广泛支持。因此,exFAT还没有广泛应用于消费类电子产品,尽管它就是为此目的而设计(即使XP SP2和Mac OS X 10.6.5都支持exFAT)。Windows Vista和7在很大程度上依赖于NTFS提供的文件权限和其他功能。

HFS+

HFS+也被称为Mac OS Extended, 它能够在所有类型的存储设备上运作,包括光盘。HFS+支持日志,且分袂通常可以安装在Unix和Linux系统中。即使给定内核不支持HFS+,通常可以找到可选软件包,然而,有时候这些只支持读取HFS+格式化的分区。另外还有第三方工具提供Windows对HFS+的支持,例如Paragon Software的HFS for Windows或者Mediafour的MacDrive。

HFS+具有512字节扇区(被分组成分配块),最多支持255个字符的文件名,最大文件大小为8EB。HFS+通过不断尝试寻找足够容纳一个被写入文件的自由空间来管理文件碎片。文件大小的增加可能会导致文件需要完全被重写。最后,自10.3版本的Mac OS X开始支持动态碎片整理,当文件被分为8个以上部分且其他活动/访问先决条件不适用时就会采取行动,HFS+支持访问控制、压缩和加密。

测试SSD: Samsung 830和Zalman F1 Series

Samsung 830 Series (256 GB)

三星的830系列SSD目前是我们的最爱之一,虽然它相当昂贵。

该产品分为64GB、128GB、256GB和512GB四种容量类型。256GB和512GB比低容量版本更快。三星目前架构的主要优点在于其基于ARM的三核A9控制器,无需任何硬件压缩,并且提供非常一致的性能。虽然这个产品在我们的测试结果表中并没有总是名列榜首,但各方面的测试结果都还不错。

Zalman F1 (SandForce SF-2281, 240 GB)

测试: 三星830和Zalman F1系列

我们决定测试基于SandForce的SSD是因为该公司的技术依赖于压缩来最大限度地提高性能。它可能或者可能不会返回你期望的结果,这取决于驱动器处理的信息。当在Windows中运行时,你不会感觉到什么差异,然而,涉及不可压缩数据的更极端的工作负载绝对会让SandForce的技术特质更加突出。

我们选择了Zalman的F1系列,利用现有的SandForce SF-2281控制器。Zalman提供60GB、120GB和240GB容量的产品。

Zalman在其产品网站上提供的图表清楚地表示写入不可压缩数据可能会比可压缩数据更慢。

测试: 三星830和Zalman F1系列

测试配置和基准测试项目

测试配置和基准测试项目

为了让SSD符合测试条件,我们进行了两小时的烧机,其中包括I/O密集型和流密集型工作负载的脚本运行。这样,我们可以确保所有结果都能够反映真正的性能,而不只是峰值性能数字,这些峰值性能数据在日常生活中不太具有相关性,并且会随着时间的推移而下降。

SSD随机和顺序读写性能测试

不饱和队列(队列深度1)的随机4KB读取和写入操作代表了相当典型的负载情况。

写入更快,因为驱动器可以迅速地找到一个自由扇区来写入,而读取操作是针对给定扇区的。使用FAT32时,写入到三星830非常慢,而Zalman F1驱动器的测试结果表明这似乎并不是文件系统本身的固有问题。

SSD随机和顺序读写性能测试

队列深度64等候命令允许驱动器优化读取操作,从而大大改善了吞吐量。

对于exFAT和NTFS,这有一个非常积极的影响,而使用FAT32的驱动器遭受巨大的性能打击。然而,队列64只是理论上的,因为桌面系统几乎从未遇到过超过队列深度4的情况。

SSD随机和顺序读写性能测试

顺序吞吐量帮助展示了FAT32在更现实的情况下的性能落后,并且其吞吐量严重受限,特别是在Zalman固态硬盘上。由于存储驱动器往往用于承载较大文件(例如视频文件),这个指标与我们的测试最为相关。

SSD随机和顺序读写性能测试

SSD:访问时间、复制测试和整体分数

FAT32在访问时间方面落后于其他文件系统,而exFAT和NTFS非常接近

SSD:访问时间、复制测试和整体分数

这些测试基准代表了现实生活中的复制/粘贴工作负载,这些测试结果证实NTFS似乎是最佳随着,其次是exFAT,FAT32在这里体现出了其的陈旧,非常不适合SSD。

SSD:访问时间、复制测试和整体分数
SSD:访问时间、复制测试和整体分数

CrystalDiskMark:随机和顺序吞吐量

CrystalDiskMark随机4 KB结果证实了我们在AS SSD看到的结果

CrystalDiskMark:随机和顺序性能测试
CrystalDiskMark:随机和顺序性能测试

使用512KB的吞吐量与我们预期的结果一样,exFAT和NTFS优于FAT32,FAT32再一次落后了。

CrystalDiskMark:随机和顺序性能测试

对于三个文件系统,顺序传输性能非常具有可比性

CrystalDiskMark:随机和顺序性能测试

测试结果:Iometer 4KB随机和流读写

4 KB随机写入测试真正提醒了我们FAT32的“年龄”。从AS SSD和CrystalDiskMark的结果来看,这里的结果并没有令我们感到惊讶。很明显,在较大驱动器上,FAT32的灵活的簇大小成为写入操作的问题。4KB块需要被容纳到32KB簇中,在这方面,exFAT比FAT32表现得更好,尽管FAT32有更大的簇大小。因为其自由空间进行了索引,找出自由空间是很简单的事情。

测试结果:Iometer 4KB随机和流读写
测试结果:Iometer 4KB随机和流读写

再次,持续吞吐量的测试结果与我们前面的测试结果相类似,并没有看到任何惊喜。

测试结果:Iometer 4KB随机和流读写
测试结果:Iometer 4KB随机和流读写

测试结果:Iometer工作负载测试

数据库测试是一些完全随机的操作,其中67%是读取。该测试是8KB块大小,在其上面NTFS可以利用非压缩三星架构,而基于SandForce的驱动器在NTFS和exFAT上运行的结果类似,FAT32在这里根本不值得一提。

测试结果:Iometer工作负载测试

Web服务器工作负载不执行写入,所以所有文件系统的性能都差不多。

测试结果:Iometer工作负载测试

工作站工作量模式按照80%和20%分隔了读取和写入操作,随机和顺序操作也分为80%和20%。这涉及64KB、128KB和256KB的块大小,这也是为什么FAT32再次暴露其性能限制的原因,因为它不支持这么大的块。

测试结果:Iometer工作负载测试

测试结果:PCMark 7

为了反映更真实的情况,我们转向了PCMark 7,虽然PCMark并不完全是真实世界情况,但它基本能够反映每条操作的典型性能。

测试结果:PCMark 7
测试结果:PCMark 7
测试结果:PCMark 7
测试结果:PCMark 7
测试结果:PCMark 7
测试结果:PCMark 7

向Windows照片库导入图片意味着需要写入相当多的数据,很显然,FAT32并不是这种工作量的最佳选择。

测试结果:PCMark 7
测试结果:PCMark 7

从整体的测试结果来看,真实世界的差异要比更综合的实验室结果的差异更小,这意味着,无论你是对比文件系统还是SSD架构,FAT32在Samsung 830都是一个糟糕的选择。

Windows系统应坚持使用NTFS

很难找出适用于所有平台(Windows、Mac、Linux等)的测试基准,在这一块,我们选择了针对Windows平台,并选择对比 FAT32、NTFS和exFAT,以代表绝大多数台式机用户。此外,因为exFAT包含在SDXC卡和即将发布的数字设备中,exFAT有望成为受各种操作系统支持的少数文件系统之一。

如果使用的是基于windows的系统,可以坚持使用NTFS。这个默认windows文件系统在我们这次测试中使用的两个SSD架构上都提供了最佳性能。NTFS而且还能够在很多非windows操作系统上进行读取,使其具有跨操作系统兼容性。

虽然FAT32具有更广泛的平台兼容性的优势,除了USB闪存驱动器或者使用WindowsXP SP2之前版本的操作系统环境外,我们并不推荐使用FAT32.它缺乏文件访问权限、自由空间位图、文件日志和基本性能,让其在与比较现代的文件系统(例如NTFS和exFAT)相比时,有点相形见拙。

在exFAT和NTFS之间,几乎是一个平局。NTFS的强大的文件权限控制让其成为内部存储设备更好的选择,而exFAT对热插拔的容忍使其成为 USB连接的存储更好的选择。正如我们前面提到的,FAT32和exFAT格式化的驱动器不能够用于现代操作系统磁盘。但是对于想要快速访问数据的用户,或者希望在不同磁盘驱动器而不是操作系统上安装程序的人而言,这些测试结果更具意义。如果用于内部存储,请坚持使用NTFS,使用exFAT仅用于外部存储。