文件系统“范围”和“集群”

rub*_*buc 3 terminology filesystems allocation-unit

我正在尝试了解 HFS+,它一直指的是“范围”。

维基百科

Fork 数据属性记录包含对最多八个可容纳更大属性的范围的引用。扩展属性用于扩展一个 Fork 数据属性记录,当它的八个扩展记录已经被使用时。

  1. 什么是范围以及如何使用它?
  2. 使用范围的文件系统是否也使用集群?
  3. 范围和集群有何不同?

我已经阅读了有关范围的维基百科条目,它说的是:它们是保留内存的连续块。没有上下文,这没有任何意义。

Wyz*_*ard 7

(免责声明:我一般了解文件系统,但不特别了解 HFS。)

簇是作为一个单元分配的一组磁盘扇区。它通常是 2 的小幂。例如,如果文件系统以 4 KB 为单位分配空间,但磁盘的物理扇区大小为 512 字节,则集群将对应一组 8 个扇区。集群也被称为“块”或“分配单元”。

简而言之,集群是文件系统中最小的存储单元,就像扇区是底层磁盘上的最小存储单元一样。它们可能相同(例如,在具有 4k 物理扇区的磁盘上使用 4k 簇的文件系统)或它们可能不同(您可以使用 64k 簇创建 FAT 文件系统,但没有磁盘具有那么大的扇区)。

范围是指磁盘上某处的连续范围的簇,由起始簇号和长度(起始簇之后的簇数)描述。它们用于跟踪文件内容在磁盘上的位置。理想情况下,文件的全部内容应该存储在一个连续的区域中,以便可以由单个范围记录描述,但如果文件是碎片化的,则每个部分都由单独的范围记录描述。

  • 此外,为了完整性:即使文件没有碎片化,文件的内容也可能由于其大小而用多个范围记录来描述。例如,在 ext4 文件系统中,extent 不能大于 128MB,因此 1GB 文件将需要 8 个 extent 记录,即使它们都是连续的。 (4认同)