![8kb 块大小与不同存储层的关系](https://linux22.com/image/606264/8kb%20%E5%9D%97%E5%A4%A7%E5%B0%8F%E4%B8%8E%E4%B8%8D%E5%90%8C%E5%AD%98%E5%82%A8%E5%B1%82%E7%9A%84%E5%85%B3%E7%B3%BB.png)
我有一张使用 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
应进行适当设置。文件系统应设置适当的块大小和/或步幅和条带宽度。