鸿 网 互 联 www.68idc.cn

深入解析NTFS文件系统

来源:互联网 作者:佚名 时间:2015-11-11 09:35
微软Windows操作系统中,有两种文件系统:FAT文件系统和NTFS文件系统。在本文中,我会详细介绍微软的NTFS文件系统。 NTFS稳定性和安全性 微软做的很多事情都让他们受尽责备。但是它做的一件非常好的事情就是创建了一个强壮、高效而且可扩展的文件系统。NTFS

        微软Windows操作系统中,有两种文件系统:FAT文件系统和NTFS文件系统。在本文中,我会详细介绍微软的NTFS文件系统。

NTFS稳定性和安全性
微软做的很多事情都让他们受尽责备。但是它做的一件非常好的事情就是创建了一个强壮、高效而且可扩展的文件系统。NTFS(New Technology File System)文件系统最早出现在1993年的Windows NT操作系统中,它的出现大幅度地提高了微软原来的FAT文件系统的性能。NTFS是一个日志文件系统,这意味着除了向磁盘中写入信息,该文件系统还会为所发生的所有改变保留一份日志。这一功能让NTFS文件系统在发生错误的时候(比如系统崩溃或电源供应中断)更容易恢复,也让这一系统更加强壮。在这些情况下,NTFS能够很快恢复正常,而且不会丢失任何数据。在很少出错情况下,微软表示只要大概不到1%的概率才你需要运行CHKDSK修复程序来对磁盘卷进行维护。

NTFS另一个引人注目的特点,即良好的安全性是NTFS成为Windows网络中最常用的文件系统的最主要的原因。NTFS的安全系统非常强大,可以对文件系统中对象的访问权限(允许或禁止)做非常精细的设置。NTFS Master File Table (MFT)中包含了一个NTFS分区中所有文件的记录。每个MFT入口都有一个特殊的metadata标签,叫做SD(security descriptor,安全描述符),这个标签中包含了谁可以访问这个文件或文件夹的所有控制信息。每个SD标签都包含了一个用户列表,这个列表被称为Access Control List (ACL访问控制列表),只有包含在这个列表里的用户才被允许访问该对象。

请注意上面一段中出现的“metadata”一词。NTFS是一个元数据驱动的系统。事实上,当你第一次创建NTFS分区的时候,很多元数据文件就被创建了,每个元数据文件都帮助跟踪文件系统中某个特定的对象。我在上一段中提到每个NTFS分区都会有一个Master File Table,这个关联文件被命名为$MFT。事实上,NTFS创建了两个MFT文件。第一个是$MFT被存放在NTFS分区的开头。为了增强可靠性,NTFS分区还有一个名为$MFTMirr.的MTF文件。在Windows NT 4.0及其后的版本中,这个文件都被存放在NTFS分区的末尾。在Windows NT 3.51及以前的版本中,这个MFT镜像文件被存放在分区的中间。之所以设计这样一个文件是为了防止主MFT文件损坏造成损失,这也就是为什么NTFS要把这个镜像文件尽可能存放在远离主MFT文件的地方的原因了。

让我们回到元数据——NTFS使用元数据和元数据文件来描述文件系统的组成,这种做法可以非常容易地为文件系统增加功能,并且保持对旧版本NTFS的向下兼容。

NTFS簇大小
在磁盘空间使用方面,NTFS的效率非常高。例如,在FAT文件系统中,根据磁盘空间大小的不同,簇的大小从2 KB到32 KB不等。NTFS的簇大小也会随着磁盘空间的增长而增长,但是在Windows NT 3.51及以后的版本中,簇的大小最高只能达到4KB。不幸的是,由于需要同时读取太多的簇,或者对太多的簇进行写入,簇太小可能导致性能下降。对于今天的超高速磁盘系统来说这并不是一个大问题,但是在速度为王的环境中(比如大量数据处理的环境),簇的大小可能达到64 KB。这会导致更多磁盘空间的浪费,而且还会丧失压缩之类的功能,但是会提高性能。要注意,在NTFS 1.0(Windows NT 3.1)中,簇的大小默认为4 KB,随着磁盘容量的扩大,簇大小可以达到32 KB。

下面的表格显示了NTFS卷默认的簇大小。你可以想象,今天的硬盘默认簇的大小都是4KB。

驱动器大小

簇大小

7 MB-12 MB

512 bytes

513 MB-1,024 MB

1 KB

1,025 MB-2 GB

2 KB

2 GB-2 TB

2 GB-2 TB


NTFS有非常好的功能集——也有一些缺点。下面介绍了NTFS最常见的一些功能。

加密:最新版本的NTFS可以在不需要最终用户干预的情况下对磁盘上的文件进行加密。如果你的笔记本被窃,EFS可以帮助你保护硬盘上的数据不被访问。Windows 2000及以后的版本都支持DESX加密,Windows XP和Windows Server 2003支持3DES;Windows XP SP1+和Windows Server 2003还支持AES。

磁盘配额:尽管NTFS有一个名为$QUOTA的文件,这是管理磁盘配额的元数据文件的名字,从Windows NT 3.5开始,配额都不是缺省的,直到Windows 2000 (NTFS 5)出现,这一情况才有所改变。磁盘配额可以监控并限制用户对磁盘空间的使用。NTFS 5中的Quotas可以以用户或者卷为单位,提供硬性限制和警告两种类型的功能。

Volume Shadow Services:Windows Server 2003 (NTFS 5.1)中提供了为数据创建快照的功能,即使当文件打开的时候该功能也可以使用。这一功能让备份和数据恢复的工作变得更加简单可靠。

Reparse Points:在NTFS 5.0及以上版本中,reparse poin是用户定义数据,包括Volume Mount Points和Junction Points。

 

Volume Mount Points:允许不同的卷作为其他卷的子目录被加载。

Junction Points:对于UNIX用户来说,符号链接是大家非常熟悉的了,它们通常是指向文件系统中的其他文件。对于Windows来说,情况略有不同。从Windows 2000开始,NTFS支持一类名为Junction Point的symbolic link(符号链接),GUI仍然不能很好地支持该功能,人们经常使用插件来确保该功能能够使用。注意,Windows的快捷方式和符号链接有所不同,对快捷方式的操作只会影响快捷方式(.lnk文件)而不会影响目标文件本身。在Windows 2000、Windows XP和Windows Server 2003系统中,NTFS Junction Point只能被用于文件夹和卷(不是独立的文件)。有消息称在Vista和Longhorn Server中会和UNIX和Linux一样支持真正符号链接。我应该说明一下,NTFS还支持“hard links”(硬链接)的概念,它允许单一文件被多个目录引用。但是和符号链接不同的是:在硬链接被解除后,该文件可以被删除。

稀疏文件(Sparse Files):Windows 2000的NTFS 5.0引入了稀疏文件这一概念,它允许程序用小块的数据存储非常大的文件。一些人认为稀疏文件这一功能和卷压缩非常类似,但是对性能却没有影响。

文件压缩:NTFS提供了透明的文件压缩服务,它能够帮助降低文件使用的空间。但是,压缩显著增加系统负担,所以在使用之前一定要仔细考虑。而且在簇大小超过4KB的NTFS卷上不能进行文件压缩。

总结

我相信微软为未来Windows版本中的NTFS文件系统留下了很多让人吃惊的功能。我总结一下在本文中提到的高级信息。


最大卷大小(理论值):16EB w/ 64KB 簇 / 16TB w/ 4KB 簇


最大卷大小(实际值):2TB/256TB (>2TB需要动态卷 )


最大文件大小(理

网友评论
<