将 1 个块写入文件系统相当于磁盘上的 IO 操作数

Writing 1 block to File System equates to how many IO operations on the disk

提问人:mSatyam 提问时间:11/11/2023 最后编辑:mSatyam 更新时间:11/16/2023 访问量:26

问:

关于文件系统块大小和磁盘块大小以及文件系统上的读/写操作如何转换为磁盘上的读/写操作,出现了一些疑问。

假设我有一个块大小为 512 字节的磁盘。在磁盘之上,我创建了一个块大小为 4096 字节的文件系统。

Q1:现在,如果我将 1 个文件系统块写入 4096 字节的文件系统,那么文件系统是否会在磁盘上写入 8 乘以 512 字节,因为磁盘块大小为 512 字节,即在这种情况下,1 个块写入文件系统转换为 8 个磁盘 IO 操作?

Q2:如果我们在磁盘上有 4096 字节的连续可用空间,那么它可能是磁盘上的单个 IO 操作,或者 IO 操作将始终等于我们最终想要写入的磁盘块数量,即无论我们在磁盘上是否有连续的块可用,如果我们想在 512 块大小上写入 4096 字节,我们将执行 8 个 IO 操作磁盘?

问题 3:如果问题 Q1 的答案是肯定的,那么这是否意味着增加文件系统块大小本身不会减少磁盘上的 I/O 操作数量。

问题 4:当文件系统块大小更大时,读/写性能如何提高?或者更大的文件系统块大小只会在某种程度上帮助文件系统,因为它必须为文件维护更少的地址,因为如果我们在文件系统中使用较大的块大小,文件将适合较小的块,使用更大的文件系统块还有什么好处。显然,如果问题 1 的答案是否定的,那么它肯定会提高性能。

尽量说得更具体一点,如果文件系统块大小为 4096 字节,磁盘扇区大小为 512 字节,那么使用直接内存访问和 SATA 接口一次可以写入磁盘多少字节。

文件系统 存储 硬盘 块-设备

评论

0赞 Mark Setchell 11/16/2023
我想这取决于操作系统和文件系统。它可能更适合另一个 StackExchange 站点,而不是 StackOverflow,后者专门用于编码问题。
0赞 mSatyam 11/16/2023
@MarkSetchell 是的,没错,我也觉得应该有一些其他的堆栈交换,但我通读了其他描述,似乎都不适合这个问题。实际上,我正在阅读一本书和一篇文章 www2.cs.sfu.ca/CourseCentral/354/zaiane/material/notes/......。两者都说“扇区(从 32 字节到 4096 字节不等,通常为 512 字节)是可以从磁盘读取或写入磁盘的最小信息单位。但是我找不到可以读取或写入的最大信息单元
0赞 mSatyam 11/16/2023
我的意思是,我找不到可以在单个磁盘操作中读取或写入磁盘的最大信息单元。而且我觉得,如果我们在一次磁盘操作中可以读取/写入磁盘的最大字节数等于磁盘扇区大小,那么使用大型文件系统块大小对性能没有任何好处。

答: 暂无答案