在文件系统中,文件“块”是如何使用的?

在文件系统中,文件“块”是如何使用的?

让我们使用现代 Linux 系统和典型 SATA3 驱动器的现代 HDD 为例。当操作系统决定将文件写入 HDD 时:

谁将文件分成块?内核中的“虚拟文件系统”?

谁将这些软件结构转换为磁柱/磁头地址,以便 HDD 知道如何指向磁头并旋转磁板?是 HDD 驱动程序的“虚拟文件系统”吗?还是 HDD 已经将自身仅作为抽象“块”暴露给“虚拟文件系统”,并且物理 HDD 中的控制器进行转换?

答案1

当心“堵塞”在计算机技术中具有多种用途和含义。

当操作系统决定将文件写入硬盘时:

谁将文件分成块?内核中的“虚拟文件系统”?

您需要稍微回顾一下。
之前文件系统是挂载的,而在此之前文件系统是在块设备(即以固定大小的数据单元执行 I/O 的设备)上创建的。
因此,正在写入的这个文件与已知属性的文件系统和已知属性的块设备相关联。

文件系统将具有逻辑块的概念。此逻辑块的大小可能是 I/O 块大小的倍数。
文件系统将在其逻辑块大小中缓冲用户数据,并在块设备的大小中执行 I/O。

谁能将这些软件结构转换成磁柱/磁头地址,以便 HDD 知道如何指向磁头和旋转盘片?

在 ATAPI 的几个修订版本中,磁柱/磁头/扇区寻址已被弃用,取而代之的是逻辑块寻址(又称 LBA)。
无论如何,文件系统通常使用逻辑块或扇区地址来方便计算。

文件系统负责将其逻辑块映射到块设备的“物理”块。请注意,块设备通常是一种抽象,即物理设备上的卷或分区。这意味着文件系统知道的物理块地址实际上仅与卷相关,并且卷管理器层必须将这些相对块地址转换为设备块地址,即驱动器的 LBA。

或者 HDD 已经将自身仅作为抽象的“块”暴露给“虚拟文件系统”,并且物理 HDD 中的控制器进行转换?

现代 ATA 驱动器本质上是一组由 LBA(逻辑块寻址)寻址的块。传统驱动器使用 512 字节块(扇区),而高级格式(又称 512E)硬盘驱动器具有 4KB 扇区,但模拟 512 字节扇区大小。现代大容量驱动器将使用 4KB 扇区进行存储和 I/O。

现代驱动器的集成控制器负责将 LBA 映射到物理扇区。只有驱动器知道映射到特定 LBA 的实际柱面、磁头和扇区,因此磁盘驱动器可以实现任何类型的区域位记录和坏扇区重定位。


附录

通常,文件系统的逻辑块大小也是分配的单位。请参阅 分配单元尺寸较小的缺点
有关磁盘扇区,请参阅磁盘扇区有何用途?

相关内容