8kb 块大小与不同存储层的关系

8kb 块大小与不同存储层的关系

我有一张使用 8kb 块单元的 PCIe SSD 卡。它支持“虚拟控制器”,可以将该驱动器一分为二,并创建具有 8kb 条带大小的 LVM RAID0。除此之外,我还安装了一个使用 8kb 块大小的文件系统。我的应用程序以 8kb 块为单位写入数据。

每添加一层,是否存在空间开销,导致这个 8kb 块“对齐”发生偏移,并最终导致写入 SSD 的原始数据(显著?)变得更大?

如果我的应用程序写入了 8kb 的数据,那么 FS 是否会写入 8kb+其元数据,然后转换为 8kb+fs 元数据+lvm 元数据,最终得到 8.5kb 并搞砸所有对齐?

答案1

不会,块不会变大以容纳元数据。元数据要么存储在专用块中(对于文件系统),要么存储在特殊区域中(对于 LVM 和 mdraid)。您只需要确保数据区域的开头正确排列即可。

mdraid 将其元数据放在分区末尾,并将数据存储在开头,因此它始终是对齐的。LVM 将元数据存储在 PV 的开头,由其控制,pvcreate --dataalignment应进行适当设置。文件系统应设置适当的块大小和/或步幅和条带宽度。

相关内容