FAT、NTFS文件系统的大小限制与NTFS的性能及优化

转载[@more@]FAT、NTFS文件系统的大小限制与NTFS的性能及优化   首先,需要澄清人们对于文件系统的一些错误理解,经常有这样的说法:“我的硬盘是FAT32格式的”、“我的C盘是NTFS格式”等,这里的错误在于NTFS或FAT32并不是什么格式,而是管理文件的系统。   刚买回来的硬盘并没有文件系统,必须使用分区工具创建“卷”(在基本磁盘中,“卷”也称为分区)并对其格式化后才会在磁盘上建立管理文件的系统。因此文件系统是对应卷的,而不是整个硬盘。不论在硬盘上创建了几个卷,每个卷都要有文件系统。   名词介绍:在基本磁盘上只有简单卷,简单卷可以指主分区,扩展分区及其包含的逻辑驱动器。   FAT、NTFS文件系统的大小限制   FAT卷的最大容量和文件大小   每种文件系统都有一个卷大小、文件大小的限制,以及每卷可容纳的文件最大数量。FAT16支持最大为4GB的卷;FAT32支持最大为32GB的卷,因此要创建大于32GB的卷,就必须使用NTFS格式。简单地说:   一、小于16MB的FAT卷会被格式化为FAT12文件系统;   二、虽然FAT16支持最大为4GB的卷,但使用MS-DOS及一些早期操作系统的计算机,其FAT16的卷超过2GB就不可访问了。这个2GB限制是由于这些操作系统不支持超过32KB的簇。   三、从理论上讲,FAT32的卷可以达到约8TB(8000GB)大小,但实际上Windows XP Pro可以格式化的FAT32卷最大也就到32GB而已。如果你要在磁盘上创建一个大于32GB的分区,就必须使用NTFS文件系统来格式化这个卷。但是Windows XP Pro还是可以读写由其它操作系统格式化的超出32GB大小的FAT32卷。   四、FAT16支持的单个最大文件为2GB;FAT32支持的单个最大文件为4GB。   NTFS卷的最大容量和文件大小   理论上,NTFS的最大卷可以包含 2^64-1 个簇。但在Windows XP Pro中,NTFS卷实际上的最大限制是 2^32-1 个簇。举例说,如果是64KB的簇,那NTFS卷的最大容量就是256TB减64KB这么大;如果使用默认的4KB一个簇,那么它的最大容量就是16TB减4KB 。   虽然NTFS支持的卷可达16TB甚至256TB那么大,但由于基本磁盘中主引导记录(MBR)分区表的限制,磁盘的全部容量仅能识别到2.19T,因此也无法创建更大的卷了。但是在动态磁盘里可以创建跨区卷,跨区卷是一种动态卷,Windows XP Pro使用了一种有别于分区表的特殊的数据库来管理动态卷,这就使得动态卷可以超过分区表中2.19TB的限制。一个动态卷的大小可以达到NTFS支持的最大限度。   尽管NTFS卷中存储的文件大小不能超过它们所在的卷(或分区)的大小,但理论上单个最大文件可达16TB减去64KB。   以下是FAT、NTFS文件系统的属性对照表(表中“-”为减号,1EB=1000PG,1PG=1000TB,1TB=1000GB):   NTFS的性能   NTFS文件系统具有四大优点:   一、具备错误预警的文件系统   在NTFS卷中,最开始的16个扇区是引导扇区,其中保存着卷引导代码,接着就是主文件表(MFT,Master File Table),但如果它所在的磁盘扇区恰好出现损坏,NTFS文件系统会智能地将 MFT换到其它扇区,保证了文件系统正常运行,也就保证了Windows的正常运行。而FAT的文件分配表则只能固定在引导扇区的后面,一旦遇到扇区损坏,那么整个文件系统就要瘫痪。   二、文件读取速度更高效   对DOS略知一二的读者一定熟悉文件的各种属性:只读、隐藏、系统等。在NTFS文件系统中这些属性都还存在,但也有很大不同。在这里,一切东西都是一种属性,就连文件内容也是一种属性。这些属性的列表不是固定的,可以随时增加,这也是为什么会在NTFS卷中看到文件有更多的属性。   NTFS文件系统中的文件属性可以分成两种:常驻属性和非常驻属性,常驻属性直接保存在MFT中,像文件名和相关时间信息,如创建时间、修改时间等永远属于常驻属性;非常驻属性则保存在MFT之外,但会使用一种复杂的索引方式来进行指示。如果文件或文件夹小于1500字节(其实我们的电脑中有相当多这样大小的文件或文件夹),那么它们的所有属性包括文件内容都会常驻在MFT中。而MFT是Windows一启动就会载入内存的,这样当你查看这些文件或文件夹时,它们的内容早已在缓存中了,自然大大提高了文件和文件夹的访问速度。   那为什么FAT的效率不如NTFS高呢?因为FAT的文件分配表只能列出每个文件的名称及起始簇,并没有说明该文件是否存在,这需要通过其所在文件夹的记录来判断,而文件夹入口又包含在文件分配表的索引中。因此在FAT中访问文件时,首先要读取文件分配表索引来确定文件已经存在,然后再次读取文件分配表找到文件的首簇,接着通过链式的检索找到文件所有的存放簇,最终确定后才可以访问。   三、磁盘自我修复功能   NTFS可以对磁盘上的逻辑错误和物理错误进行自动侦测和修复。在FAT16和FAT32时代,我们需要借助Scandisk这个程序来标记磁盘上的坏扇区,但当发现错误时,数据往往已经被写在了坏的扇区上了,损失已经造成。NTFS文件系统则不然,每次读写时,它都会检查扇区正确与否。当读取时发现错误,NTFS会报告这个错误;当向磁盘写文件时发现错误,NTFS将会十分智能地换一个完好位置存储数据,操作不会受到任何影响。在这种情况下,NTFS会通过硬盘固件在坏扇区上作标记,防止今后再被使用。这种工作模式可以使磁盘错误较早地被发现,避免灾难性的事故发生。   四、预防为主的事件日志   在NTFS文件系统中,任何操作都被看作一个“事件”。例如将一个文件从C复制到D,这一过程就是一个事件。事件日志一直监督着整个操作,只有当它在D发现了完整文件,才会记录“已完成”的标记。假如复制中途断电,重新启动机器后事件日志可以让系统清除磁盘上因写入数据中断导致的逻辑错误。事件日志监督所有事件,从而永远让系统知道完成了哪些任务,哪些还未完成,保证磁盘数据不会因突发事件发生紊乱,最大程度降低了破坏性。   所以,当你将某个卷改为NTFS文件系统后,你会发现因意外断电而重启后,系统不会再对NTFS卷进行查错,也不会在卷中形成一堆诸如found.000之类的文件了,因为NTFS卷中所有错误的链接都已自动得到了纠正。   NTFS的优化   NTFS的性能受很多因素影响,如簇的大小,磁盘碎片的多少等等。此外,NTFS卷的压缩和索引服务同样可能影响其性能,下面是一些优化 NTFS 性能的方法。   一、簇的大小   在格式化一个NTFS卷之前,首先要对自己要保存在该卷上的文件的类型做一个评估,以便决定是否使用默认的簇大小。重要的是先想想:   要保存的文件大小是否基本一致?   大部分文件的大小是否要小于默认簇的大小?   这些文件的大小是基本不变的还是常变的?   如果大部分文件都小于默认簇的大小(例如4KB)并且基本保持文件尺寸不变,使用默认的簇大小将减少磁盘空间的浪费。而选用更小的簇将增加产生碎片的可能,尤其是当文件占用了超过一个簇大小的时候。   如果要存储的文件比较大,或者尺寸可能会增大,就该用16KB或32KB的簇来替代4KB的簇。   提示:只有在簇大小为4KB或更小的时候才能实现卷的压缩功能。   在Windows中,虽然可以在不影响FAT卷数据的情况下将该卷转换为NTFS卷,但这个无损转换会影响NTFS卷的性能。因为被转换后的簇大小是默认的512字节,MFT也会在转换过程中产生更多碎片,更糟糕的是,磁盘碎片整理工具往往不能整理MFT。因此与使用NTFS格式化的卷相比,无损转换后的卷碎片多、读写慢,从而对整个系统造成影响。作为优化性能来考虑,并不推荐作这样的无损转换,最好的方法是将要转换的FAT分区中的所有数据备份到别处,然后把该分区重新格式化为NTFS卷,并在格式化的过程中指定簇的大小。   二、短文件名问题   每当建立一个长文件名的文件时,NTFS就会自动产生一个类似8.3短文件名的备份条目。8.3短文件名就是用8个字符表示文件名,3个字符表示文件的扩展名,文件名和扩展名之间用一个圆点分隔。   如果在一个文件夹中包含了非常多(例如300,000个或更多)的文件,而且所有文件都采用了长文件名规则命名并且初始的字符都相同,那么建立这些文件所需的时间就要增多。这是由于NTFS是根据长文件名的前6个字符来建立短文件名索引的。在多于300,000个文件的一个文件夹中,由NTFS用8.3规则建立文件名时,文件名相似的长文件名所对应的短文件名在备份时会产生冲突。这种在新建短文件名时与已经存在的短文件名之间的冲突,会使在建立新文件的时候所耗费的时间达到没有这类冲突时的6到8倍。   要减少这种在建立新文件时所耗费的时间,可以在命令提示符下使用“fsutil behavior set”这个命令来禁用8.3规则以优化文件系统性能。在“Windows 优化大师”这个工具软件中的“文件系统优化”一栏中就有禁用8.3文件名规则这一优化项目。如果的确需要8.3文件名,就应提前制订自己的命名计划,使长文件名的前6个字符不相同。   三、目录结构   NTFS支持在每个卷上有大量文件和文件夹的存在,在决定一个目录结构时,下面几点是要考虑到的:   如果要频繁和快速地创建、删除、打开和关闭其中的文件,就要尽量避免把大量文件放在同一目录下,特别不能放在根目录下。最好的解决方案是把它们按其内容分门别类地放到几个子目录下。如果某些文件一时无法安排到合适的位置,那就应该禁用8.3文件名规则。   四、卷压缩功能   卷压缩功能同样增加了系统的额外开销,即使在同一计算机内拷贝文件的时候,被压缩的卷中的文件也要经历一个解压缩、拷贝、重新压缩为新文件这样一个过程。所以尽量不要使用NTFS的卷压缩及文件压缩功能。   五、索引服务   如果用户经常在NTFS卷上搜索文件,可以通过开启索引服务来大大减少搜索的时间。特别是对文件的内容进行查找的时候,索引服务更能起到加速的作用。开启索引服务后,NTFS会使用系统的一部分资源来建立和维护索引,跟踪文件更改并对这种更改进行记录,而这些操作仅仅带来很小的性能损失。实际上,对于经常进行搜索的卷来说,启用索引服务所带来的查找速度的提升,要远远高于由此引起的系统性能下降的幅度。   六、最近访问时间   NTFS卷上的每个文件和文件夹都有一个属性,就是“最近访问时间”(LAT),这个属性表明了该文件或文件夹的上次访问时间。当用户在文件夹中添加、读取文件,或者对某文件进行更改的时候,都会改变这个属性。LAT在磁盘的两个地方完成写入:   1)MFT记录中文件属性的部分;   2)该文件的目录项中。目录项存储在包含该文件的文件夹中,当一个文件被保存在磁盘上的时候,可能会被分割成多块而写到不同的物理区域,然后以一种“链接”使文件保持为整体,包含多个物理链接的文件就有多个目录项。   磁盘上已经存在的LAT并不一定总是最新的,这是因为NTFS文件系统每隔一小时才将在内存中打开的文件的属性保存一次,在用户或应用程序对文件进行只读操作的时候,NTFS也会延后“最后访问时间”属性的写入。想象一下,在列出某个文件夹目录或者读取(不是更改)文件夹中某个文件的时候,如果对于这个“读”操作,LAT属性也要保持最新的话,那所有的“读”操作就会变成对LAT的“写”操作,这对NTFS的性能可是影响很大的,所以需要延后“最后访问时间”属性的写入。   另外,基于文件属性的LAT即使在磁盘上储存的所有的值完全不正确,也无关紧要。NTFS会随时将磁盘上的可疑属性值用内存中存储的精确值来替换。NTFS最终会将内存中的LAT存储到磁盘的以下位置上:   1)在文件的属性中   如果当前内存中的LAT和上次保存在硬盘上的LAT有一个小时的时差,或者内存中对该文件的所有进程都已结束,NTFS就会对该文件的LAT进行更新。例如,当前一个文件的LAT是1:00,而你在1:30又读取了该文件,文件系统并不会更新该LAT。而如果你又在2:00的时候再次读取该文件,NTFS文件系统就会把该文件的LAT更新到2:00,因为此时该文件的LAT属性为1:00,而内存中的属性为2:00,已经相差一个小时了。   2)在文件的目录项中   在下列事件发生时将更新目录项:当更新文件的LAT时,检测到该文件的LAT比在目录项中存储的LAT差别在一个小时以上的时候。这种更新最典型地发生在当某个应用程序关闭在文件夹中用于访问该文件的句柄的时候。如果该程序延长该文件句柄的打开时间,就会在更新目录项的时候出现迟滞。   另外,当NTFS更新文件的其它属性如“最近修改时间”(LMT),而LAT的更新未决的时候,NTFS会在不影响系统性能的前提下,随其它属性的更新而更新LAT。   因此,如果有某个NTFS卷包含了大量的文件夹和文件,那么当某个应用程序对每个文件依次进行简短访问的时候,由建立LAT更新所占用的I/O带宽会在全部I/O带宽中占据非常明显的比重。为了加快访问文件夹或文件的速度,可以使用“fsutil behavior set disablelastaccess”这个命令来禁止更新LAT。在“Windows 优化大师”中的“文件系统优化”一栏中也有“禁止更新访问时间”这一优化项目。   在应用了该命令并重启计算机后,LAT就不会再被更新了,此时建立一个新的文件,它的LAT就会永远保持在它最初建立的时间上。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/66634/viewspace-1056094/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/66634/viewspace-1056094/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值