文件系统
reference:
https://zhuanlan.zhihu.com/p/26098509
硬盘在进行文件操作时并非以扇区为单位,而是——簇,“簇”是系统进行分配的最小单位,一个簇可以包含多个扇区,假设目前一个簇包含4个扇区,簇大小为2KB,一个文件大小恰为2KB,则占用了簇的所有可用空间,即便你有一个1B大小的文件需要保存,那么你占用的空间也是一个簇,簇内其他空间不可读写。
FAT16/FAT32
早期的MS-DOS和WIN95操作系统中最常见的硬盘分区格式。一个簇最小为512个字节,其大小可以成倍增长,最大为32K,系统为每个簇分配唯一的索引号——一个16位二进制数来标识。因为16位二进制数最大为65536,所以FAT分区所拥有的簇的数量不可能超过65536个。这正是FAT分区大小不能超过2GB的原因。FAT16的继任者——FAT32与其原理基本相同,相比前任优势仅在于分区可以大于2GB,但不能存储大于4GB的单个文件,看看现在一部BD的电影都要3,4个G,显然不能满足时代的需求,被淘汰的很快。
NTFS
NTFS文件系统相比FAT,最大优点在于支持文件加密,通过采用日志式文件系统,详细记录磁盘的所有读写操作(格式化后可以恢复),提高了数据和系统的安全性,另一点则是突破了4GB大小限制。也是目前机械硬盘上的分区主流。不过对于目前越来越亲民的的flash存储,过多的操作记录对存储介质造成了较大的负担,同样的存取操作,NTFS下的读写次数就会比FAT32下来得多,造成了寿命较短的缺陷。因此针对移动存储设备和固态硬盘,推出了exFAT文件系统。
exFAT
分区大小和单文件大小最大可达16EB(16×1024×1024TB);簇大小非 常灵活,最小512B,最高达32MB;采用了剩余空间分配表,空间利用率更高;同一目录下最大文件数可达65536个。其特性未必强于NTFS,主要是针对flash存储设备进行了优化(SSD,U盘),传统硬盘不能格式化为该格式。
要是到现在你对扇区,簇,文件系统,分区几个名词有点混淆,不妨看看下图:
有人会问,图中的怎么突然出现了4k扇区,而且为什么下面又包含的是8个512b的扇区呢?边上的伪装是啥意思?恭喜你,你已经抓住了近年来的硬盘发展潮流。
扇区的大小虽然约定俗成,但其实是可以更改的,开始于 2009 年晚期,硬盘制造商正在从传统的 512 字节扇区迁移到更大、更高效的 4096 字节扇区,国际硬盘设备与材料协会(International Disk Drive Equipment and
Materials Association,IDEMA)将之称为高级格式化,也就是现在常说的“4K扇区”。
多年来,硬盘行业一直采用512字节扇区。然而,随着硬盘容量的不断增长,扇区大小日渐成为提高硬盘容量和纠错效率方面的制约。扇区分辨率(扇区大小和总存储大小的百分比)越来越低,尽管在管理小型离散数据时,分辨率越低越好。但现代的计算系统中多的是大型数据块,一般远比传统 512 字节扇区大小要大得多。另外,随着区域密度的增加,小型 512 字节扇区在硬盘表面上占用的空间也将越来越小。硬盘扇区中的数据占据的空间越小,错误纠正就会变得越困难,因为同样大小的介质缺陷对总体数据负载损害的百分比更高,所以就需要更大的纠错强度。现在,硬盘开始通过先进的区域密度来提高错误纠正的上限。因此,为了改善错误纠正和实现格式化效率,提高扇区大小是硬盘行业内的普遍诉求。
不过,由于计算机系统的缓慢发展,多数仍将扇区假定为512字节,因此就产生了4K对齐问题。即使物理硬盘分区与计算机使用的逻辑分区对齐,保证硬盘读写效率。
有4k对齐当然就有4k对不齐。这个锅,或许应该甩给操作系统。硬盘厂商为了保证与操作系统的兼容性,将新标准的"4K扇区"的硬盘模拟成扇区为512B的硬盘,问题出现在此时:当在一些特殊情况下格式化的系统(比如用ghost11.5以下版本),会默认定义为4096字节大小为一个簇,这没毛病,但是,由于其引导区只占用了不多不少63个扇区,真正的文件系统在63号扇区之后,
我们可以算出前63个扇区大小为:63*512B = 32256B。
63个扇区占用簇个数:32256B/4096B=7.875簇。
从第64个扇区开始,每个簇都会跨越两个物理单元,占据前一个单元的一小部分和后一个单元的一大部分,前面说过,系统文件操作以簇为单位,如果每个簇都要用到两个扇区,势必拖累读写速度。也就产生了“4k对不齐”的概念,“4K对齐”要做的事就是将硬盘的模拟扇区(512B)对齐到的8整数倍个“实际”4K扇区,即8*4096 = 32768B,使其正好跨过63扇区的特性,从第64个扇区对齐。
其实不仅是操作系统,一些广泛使用的软件程序也可能引发4k对不齐现象。因此,对齐技术的存在确有其必要性。尽管4k必然取代512b,但冰冻三尺非一日之寒,全行业仍需要一个时间来进行技术的全面推广。