Linux 6.12 昨天合并了已经开发了二十年的实时 “PREEMPT_RT” 补丁。今天,另一个重要的功能被合并到 Linux 6.12 中,它已经开发了几乎同样长的时间。
Linus Torvalds 合并了 VFS 块大小代码更改,以启用大于系统页面大小的块大小。这项工作在过去 16 年中一直在进行,随着 Linux 6.12 的推出,它终于成为主流,使下一个内核更加令人兴奋。
使用此 Linux 6.12 代码,将合并允许块大小大于页面大小的 VFS 基础结构,并启用对 XFS 文件系统的支持。
Microsoft 工程师 Christian Brauner 在拉取请求中解释说:
“这包括 vfs 基础设施以及 xfs 位,以支持大于页面大小 (ps) 的块大小 (bs),以及对相关基础设施的一些修复。
在过去的 16 年里,人们一直在努力启用大块大小 (LBS),即 bs >页面大小的文件系统中的块大小。通过这些努力,我们了解到在文件系统中支持 bs > ps 的主要障碍之一是一种分配页面的方法,这些页面至少是页面缓存上的文件系统块大小,其中 bs > ps。
由于之前的各种努力,只需对 XFS 本身进行少量更改,就可以在 XFS 中支持 bs > ps。大多数更改都是对页面缓存进行的,以支持对文件系统上目标块大小的最小顺序作品集支持。
目前,大块大小的一个动机是支持大容量(大量 TB)QLC SSD,其中内部间接单元 (IU) 通常大于 4k,以帮助减少 DRAM,从而减少成本和空间。在实践中,这允许不同的体系结构使用 4k 的基本页面大小,同时在需要时通过依赖页面缓存上的高阶作品集,仍然支持与较大的 IU 对齐的块大小。
它还允许利用驱动器对大于 4k 的原子的支持,并在 Linux 中支持缓冲 IO。正如今年在 LSFMM 上所描述的那样,支持大于 4k 的大型原子使数据库无需依赖自己的日志,因此它们可以禁用双缓冲写入,这是不同的云提供商已经通过自定义存储解决方案实现的功能。
如前所述,直接的好处之一是用于非常大容量的 QLC SSD 以及大于 4K 的具有缓冲 I/O 的原子。希望其他文件系统最终也能看到类似的支持,因为 VFS 基础设施工作已经完成,XFS 代码是一个很好的实现示例。
此代码已合并用于 Linux 6.12。Linux 6.12 看起来非常令人兴奋,并计划成为今年的长期支持内核版本。
转自 VFS+XFS Changes Land In Linux 6.12 To Support Block Sizes Larger Than Page Size – Phoronix