BTRFS 相当于 ZFS 的 ashift 是什么?

BTRFS 相当于 ZFS 的 ashift 是什么?

如上。

我搜索过网络和人,唯一看起来相似的是 mkfs.btrfs 中的 --sectorsize 。

谢谢

答案1

不同的文件系统是不同的:完全相同的设置可能存在,也可能不存在。

在 ZFS 中,ashift确定 a 的大小部门,这是作为单个操作进行读取或写入的最小物理单元。它表示为 2 的幂:ashift=9表示扇区大小为 2^9 = 512 字节,并且ashift=12为 2^12 = 4096 字节。为了获得最佳性能,由 确定的扇区大小ashift应与磁盘的物理块大小匹配(或者是其精确倍数)(现代 HDD 上通常为 512 或 4096 字节,但 SSD 可能使用 8192 字节或更大的大小)。

如果您要存储大量小文件,较大的文件ashift可能意味着相对较大部分的磁盘容量“浪费”为文件末尾部分填充的块。ashift=9当实际磁盘的物理块大小需要使用或更大时,这是否足够重要以继续使用,ashift=12取决于您的实际用例(您要存储的内容以及速度或空间效率是否更重要)。


另一方面,BTRFS真的希望它--sectorsize匹配内存页大小由系统处理器使用。手册mkfs.btrfs(8)页说(强调我的):

默认值是页面大小并且是自动检测的。如果扇区大小与页面大小不同,创建的文件系统可能无法被内核安装。因此,不建议使用此选项,除非您要将其安装在具有适当页面大小的系统上。

在 x86 PC 硬件上,标准页面大小为 4096 字节,由处理器硬件架构决定。自 1985 年(第一款 i386 处理器发布)以来一直如此,预计不会改变,因为这将是一个非常根本的兼容性破坏性变化。

相关内容