块和扇区之间的差异

问题描述 投票:15回答:2

参考this文章,有一行内容如下:

因为操作系统可以解决的块数或驱动器地址存在限制。通过将块定义为多个扇区,OS可以使用更大的硬盘驱动器,而不会增加块地址的数量。

这是什么意思? “操作系统可以解决”是什么意思?随后的数学也不清楚。 64 * 512如何小于64 * 4?

hardware block sector
2个回答
43
投票

以这种方式看待它。在操作系统的文件系统中用于存储数据的每个块都需要存储一定量的元数据以及您正在编写的实际文件数据。例如:时间戳(创建,修改),文件名,所有权/权限位。对于跨越多个块的文件,您还必须存储每个块的ID以及它们链接在一起的顺序等。

确定OS中的块大小是权衡的一种情况。即使文件长度为0个字节,每个文件也必须占用至少一个块,因此可以附加文件的元数据。除非你能保证你的文件总是大小的块大小(例如在4k块操作系统中,所有文件都是4k),否则会有一定数量的浪费,因为这些文件并不完全适合那个街区。

当您需要存储许多小文件时,小块大小很好。另一方面,更多的块=更多的元数据,因此您最终会在开销上浪费一大块存储系统,跟踪所有文件的位置。

另一方面,大块意味着更少的元数据,但是当你存储小文件时也意味着更大的浪费。例如存储在4k块中的1字节文件浪费了该块的3.99k。

这些块中的每一个都必须由OS给出一个ID号,因此可以唯一地识别它们。使用8位ID字段的OS只能跟踪256个块,因此,通过扩展,只能跟踪256个文件。但是,如果每个块的大小实际上是1兆字节,那么您可以存储多达256兆字节的数据。

你链接的文章有一个错字/逻辑缺陷:它们意味着512 BYTES,而不是512k,所以64 * 512字节小于64 * 4k,又名64 * 4096字节。大多数硬盘驱动器采用512字节扇区/块大小。

但是,如前所述,小块意味着更多的元数据。当驱动器大小现在在3+ TB范围内,具有512字节块时,您必须具有3TB / 512字节= 64.4亿块的元数据存储。这是空间的一大浪费。所以现在他们运送带有4k块的驱动器,大8倍,所以你只需要8亿5千万块的元数据存储。可能的文件总数减少了8倍,但减少的元数据量意味着您可以实际存储大量可用数据。

顺便提一下,64亿块大于32位系统可以直接处理的块。 2 ^ 32的上限约为42亿,因此较旧的32位机器无法使用整个3TB驱动器。因此切换到更大的块大小。 32位盒子可轻松处理8.05亿块。

© www.soinside.com 2019 - 2024. All rights reserved.