我有一个使用 8kb 块单元的 PCIe SSD 卡。它支持“虚拟控制器”,可以将此驱动器一分为二,并创建带大小为 8kb 的 LVM RAID0。最重要的是,我安装了一个使用 8kb 块大小的文件系统。我的应用程序以 8kb 块的形式写入数据。
每个添加的层是否有空间开销导致这个 8kb 块“对齐”移动并最终写入 SSD 的原始数据(显着?)更大?
如果我的应用程序写入了 8kb 的数据,那么 FS 是否会写入 8kb+它的元数据,然后转换为 8kb+fs 元数据+lvm 元数据,最终达到 8.5kb 并搞砸了所有对齐?
不,块不会变大以适应元数据。元数据要么存储在专用块中(在文件系统的情况下),要么存储在特殊区域中(在 LVM 和 mdraid 的情况下)。您只需要确保数据区域的开头正确对齐。
mdraid 将其元数据放在分区的末尾并在开头存储数据,因此它始终对齐。LVM 在 PV 的开头存储元数据,由
pvcreate --dataalignment
which 控制,应适当设置。文件系统应该有适当的块大小和/或步幅和条带宽度集。