kyo*_*ake 10
NT 文件系统 NTFS 旨在快速执行标准文件操作,例如读取、写入、搜索,甚至是在非常大的硬盘上执行文件系统恢复等高级操作。
使用 NTFS 文件系统格式化卷会导致创建多个系统文件,例如 $MFT、主文件表、$Bitmap、$LogFile 等。
NTFS 卷上的第一个信息是分区引导扇区($Boot 元数据文件),它从扇区 0 开始,最长可达 16 个扇区。
加密:加密文件系统 (EFS) 提供用于在 NTFS 卷上存储加密文件的核心文件加密技术。
磁盘配额:Windows 2000 支持 NTFS 卷的磁盘配额。
重解析点:重解析点是 NTFS 中的新文件系统对象,可应用于 NTFS 文件或文件夹。
卷挂载点:基于重解析点的卷挂载点,卷挂载点允许管理员将一个本地卷的根目录的访问移植到另一个本地卷的文件夹结构上。
稀疏文件:稀疏文件允许程序创建非常大的文件,但仅在需要时消耗磁盘空间。
分布式链接跟踪:NTFS 提供了一种链接跟踪服务,可保持文件快捷方式的完整性以及复合文档中的 OLE 链接。
Ext4 是最常用的 Linux 文件系统 Ext3 的演变。结果是一个具有改进设计、更好性能、可靠性和功能的文件系统。
更大的文件系统/文件大小:Ext4 添加了 48 位块寻址,因此它将具有 1 EB 的最大文件系统大小和 16 TB 的最大文件大小。1 EB = 1,048,576 TB。为什么是 48 位而不是 64 位?在使 Ext4 完全支持 64 位之前,需要修复一些限制,这些限制在 Ext4 中没有解决。Ext4 数据结构的设计考虑到了这一点,因此未来对 Ext4 的更新将在某个时候实现完整的 64 位支持。
子目录可扩展性:Ext4 打破了这个限制,允许无限数量的子目录。
范围:范围基本上是一堆连续的物理块。它基本上说“数据在接下来的 n 个块中”。例如,可以将 100 MB 的文件分配到该大小的单个区中,而无需为 25600 个块(每个块 4 KB)创建间接映射。巨大的文件被分成几个范围。盘区提高了性能,也有助于减少碎片,因为盘区鼓励磁盘上的连续布局。
多块分配 Ext4 使用“多块分配器”(mballoc),它在一次调用中分配多个块,而不是每次调用分配一个块,从而避免了大量开销。这提高了性能,并且对于延迟分配和范围特别有用。
延迟分配:延迟分配是一种性能特性,它包括尽可能延迟块的分配,这与传统文件系统所做的相反:尽快分配块。例如,如果一个进程 write()s,文件系统代码将立即分配数据将被放置的块 - 即使数据现在没有被写入磁盘并且它将被保留在缓存中一段时间时间。
Fast fsck fsck 是一个很慢的操作,尤其是第一步:检查文件系统中的所有inode。在 Ext4 中,在每个组的 inode 表的末尾将存储未使用的 inode 列表(为了安全起见,带有校验和),因此 fsck 不会检查这些 inode。结果是总 fsck 时间从 2 倍提高到 20 倍,具体取决于使用的 inode 数量。
日志校验和 日志是磁盘中最常用的部分,这使得构成其中一部分的块更容易发生硬件故障。从损坏的日志中恢复可能会导致大规模损坏。Ext4 校验日志数据以了解日志块是否失败或损坏。
在线碎片整理虽然延迟分配、范围和多块分配有助于减少碎片,但使用文件系统仍然可能碎片化。Ext4 将支持在线碎片整理,并且有一个 e4defrag 工具可以对单个文件或整个文件系统进行碎片整理。
与 inode 相关的功能:更大的 inode、纳秒时间戳、快速扩展属性、inode 预留。Ext4 将默认为 256 字节。这需要容纳一些额外的字段,并且 inode 的剩余空间将用于存储足够小以适应该空间的扩展属性。inode 保留包括在创建目录时保留多个 inode,以期将来会使用它们。纳秒时间戳意味着像“修改时间”这样的 inode 字段将能够使用纳秒分辨率。
Persistent preallocation 这个特性在最新内核版本的 Ext3 中可用,在不支持它的文件系统中由 glibc 模拟,允许应用程序预分配磁盘空间:应用程序告诉文件系统预分配空间,文件系统预分配必要的块和数据结构,但在应用程序将来真正需要写入数据之前,上面没有数据。
默认情况下启用障碍:这是一个以牺牲一些性能为代价提高文件系统完整性的选项(您可以使用“mount -o barrier=0”禁用它,如果您在进行基准测试,建议尝试它)。