Filesystems 是否保证文件的开头与文件系统的页面大小一致?

Filesystems 是否保证文件的开头与文件系统的页面大小一致?,filesystems,page-size,Filesystems,Page Size,似乎我们无法帮助文件系统对齐,即使这样也不行 这是真的吗?假设pagesize指的是文件系统逻辑分配单元(通常为4K或8K群集),则不能假设文件将从每个文件系统的边界开始 许多基于FFS的FS(SunOS/SVR4和HP-UX UFS、BSD UFS1和UFS2、LFS)在创建大量小文件时实现片段以节省空间。注意,虽然ext2/3基于FFS,但它不支持片段 实现块子分配的其他常见(或不太常见)FS有Netware FS、ReiserFS、Reiser4、IBM JFS2、Sun SAM/QFS和

似乎我们无法帮助文件系统对齐,即使这样也不行


这是真的吗?

假设pagesize指的是文件系统逻辑分配单元(通常为4K或8K群集),则不能假设文件将从每个文件系统的边界开始

许多基于FFS的FS(SunOS/SVR4和HP-UX UFS、BSD UFS1和UFS2、LFS)在创建大量小文件时实现片段以节省空间。注意,虽然ext2/3基于FFS,但它不支持片段

实现块子分配的其他常见(或不太常见)FS有Netware FS、ReiserFS、Reiser4、IBM JFS2、Sun SAM/QFS和VMWare VMFS

像btrfs和zfs这样的现代文件系统也支持块子分配

对于所有这些文件系统,小文件可能从分配单元边界的非空偏移量开始


在任何情况下,大文件(即大于分配单位的文件)都可能从几乎所有(如果不是所有)文件系统的边界开始。

磁盘是按块读取的(通常是512字节或更近的4096字节),而不是按页。@jiliagre绝大多数文件系统都使用页或群集进行操作。页面可以等于(但不小于)硬件块,但通常较大。页面大小通常指操作系统虚拟内存分配单元。这与文件系统如何布局文件没有多大关系@new_perl:您能澄清一下您在这里提出的问题以及您试图解决的问题吗?@jlliagre谁告诉您文件系统不能使用“页面”一词的?以防万一,我们的solf使用页面,而不是集群,DBMS也是如此。我从未写过文件系统“不能”使用页面隐喻,只是“页面”和“页面大小”通常与虚拟内存相关。我只是不熟悉与文件系统相关的页面大小,似乎我不是唯一一个:如何为那些不能假定文件将从边界开始的文件优化磁盘IO?是否有方法验证大于分配单位的文件可能会从几乎所有(如果不是所有)文件系统的边界开始,而不是参考规范,例如,是否有方法打印偏移量?对于小于分配单位的文件,没有什么可优化的。整个文件在一次操作中读取有没有办法验证它是否适用于大文件?我不是想解决任何特定问题,只是好奇而已。那么我的答案是,文件是否从集群边界开始实际上并不影响性能。在文件系统实现中,有许多事情对性能的影响要大得多,本文对此进行了详细介绍。