扇区 和 簇 有什么区别?

扇区 和 簇 有什么区别?

我浏览过维基百科和其他网站,以下是我获得的信息。

部门:最小可寻址单元(大多数为 512 字节)
:最小分配单元(等于1个或多个扇区,簇的数量取决于文件系统)。

假设以下示例:扇区 =512 字节,簇 =8 个扇区=4096 字节。现在,我很难弄清楚,当我尝试创建文件时,文件系统会做什么?它将 4096 字节视为最小写入/读取单位还是 512 字节?

如果答案是 4096 字节: 既然磁盘驱动器制造商已规定 512 字节为最小寻址单位,为什么文件系统会将簇视为最小单位?我的意思是,这样做有什么好处?

答案1

文件系统将簇/分配单元/块视为最小单位的优点在于,由于寻址整个磁盘每个部门需要更多的位数来索引所有内容。更多的位数会使它变慢,因为需要跟踪的地址和内容更多。对于设备的每次访问,使用 48 位(2^48 = 2.8e14)来寻址(和索引!)位置要比使用 64 位或更多位(2^64 = 1.8e16)高效得多。

但是,簇大小或分配单元大小(Windows)或块大小(Linux)可以根据定义的文件系统进行调整,这是可以通常情况下可由操作系统访问以存储文件数据。“定义文件系统”意味着格式化磁盘(或该格式的规范),因此意味着擦除磁盘上的所有数据。因此,在簇大小为 4kiB 的磁盘上,1 字节文件确实会占用整个 4k 簇,如您的示例所示。是的,操作系统可以写入该簇中的某个特定扇区,但文件仍将使用该簇的相同扇区(文件大小始终是簇大小的倍数,无论其中有什么数据。)要更改该簇大小,意味着重新格式化磁盘,这就是必须擦除所有数据的原因。

顺便说一句,较小的簇大小可以更有效地存储小文件。但是,由于簇数量的增加,磁盘整体运行速度会因此变慢。当您的 PC 长时间坐在那里磨磁盘时,这是因为它试图读取或写入如此多的小块,而这些小块的数量之多会减慢一切速度。

例如:100,000 个 768 字节的文件,存储在具有 1kiB 簇的磁盘上:

  • 768kB 字节的实际文件数据

  • 占用磁盘空间 1.024MB,因为每个文件占用 1024 字节磁盘空间。

  • 空间效率 = 0.768/1.024 = 75%(还不错……)

同样,对于存放电影、图片和音频等文件较少且较大的磁盘,簇越大越好。由于簇越少,磁盘通常速度越快。但要小心将大量小文件放在磁盘上:

例如:100,000 个 768 字节的文件,存储在具有 64kiB 簇的磁盘上:

  • 768kB 字节的实际文件数据

  • 使用了 6.55GB 的磁盘空间,因为每个文件使用了 65535 字节的磁盘空间。

  • 空间效率=0.768/6553.5=0.00017%!!!

包含混合内容(例如操作系统)的磁盘通常具有中到小的簇/块大小,因为大多数文件的大小都是中到小的。最终结果是空间利用率和速度之间的折衷。

磁盘本身优先选择 32kB 到 256kB 之间的块,因为这允许它们每秒传输最多的数据。

这些都是关于传统机械旋转盘式磁性存储硬盘的。SSD 或固态硬盘正在迅速取代传统硬盘,并拥有更快的读/写/寻道速度。那么,簇大小在今天的 SSD 上重要吗?好吧,我想说它对普通用户来说不那么重要,但这只是因为 SSD(和现代计算机)已经快得多了。当 SSD 已经比磁性硬盘快 5 倍时,谁会注意到 SSD 的速度减慢了 10%?

对 SSD 集群大小影响更大的可能是吞吐量。您可能会发现(通过格式化和基准测试)某个集群大小是可行的远的比其他 SSD 更适合该 SSD。例如,某些 SSD 针对 8kiB 或 4kiB 传输进行了优化。这与内部电子设备准备按请求传输的数据块大小有关。将操作系统尝试使用的数据(集群大小)与该 SSD 的最佳大小相匹配 = 最快传输速度。

然而,由于 SSD 上的文件“开销”原因,簇大小仍然很重要。

我发现一个很棒的 SSD 基准测试工具是AS-SSD对于 Windows 和这些在 Linux 上。

答案2

扇区大小由制造商定义。

现在我们可以看到两种扇区大小。512b 或 4Kb

2010年之前硬盘扇区大小:512b

2010年后厂家开始生产4K HDD捍卫品牌。

现在是 2018 年,超过 70% 的用户使用 512b 扇区大小。

很少有硬盘制造商提供自己的工具来改变扇区大小。

Cluster(对于 FAT)与 BLOCK(对于 Linux)系统相同。

它包含一个或多个扇区

文件系统仅处理集群(或块)。

逻辑扇区又称原生扇区,由制造商提供。

用户只能通过格式化或分区工具来更改物理扇区(=簇或块大小)。

逻辑扇区/物理扇区 = 512/4096 = 制造商扇区/用户扇区 = 无法更改/可更改

相关内容