我正在为 GitLab CI 作业构建新服务器。
目前我们已经有一个自制的。
它使用经典的 HDD + SSD 进行缓存,因此我选择了性能不佳的 ZFS 存储驱动程序。
新服务器将仅包含两个 NVMe SSD,因此我不需要任何类型的缓存。
我想对根分区和 docker 卷分区使用镜像。
我想对图像和容器分区使用剥离,因为它可以提高速度并使容量翻倍。无论如何,所有容器和图像都是短暂的。
我阅读了很多关于 docker 存储性能的研究,每项研究都显示出不同的东西。
大多数研究导致使用overlay2,但我必须使用mdadm并且没有快照的可能性。
我对 devicemapper 非常感兴趣,所以我可以使用 lvm,这样我就可以使用快照和精简配置。大多数研究测量了 devicemapper 驱动程序的低性能,因此这可能不再是一种选择。也许我可以将 overlay2 与 lvm 卷一起使用?
最后一个选项是 ZFS,它对该服务器没有任何优势,因为只有两个 NVMe 驱动器。还有一些研究测量了高和一些低性能,所以我不知道该怎么想。
还有一个问题。我可以使用多个存储驱动程序(相同的驱动程序,但要使用不同的分区/卷),对吗?一种用于剥离卷,一种用于镜像卷。
感谢您的回答!
如果您使用的是 CentOS/RHEL,请坚持使用 overlayfs + XFS,这是唯一受支持的配置。请注意,您可以在此配置中使用快照:您只需要在精简 LVM 卷上使用 XFS(但您必须对其进行监控以避免空间不足的情况)。为了获得更好的精简卷性能,请记住禁用归零并使用适当的块大小(512KB+ 是一个很好的基准,除非您非常关心快照空间效率)。
最后,请务必使用该选项创建 XFS 文件系统
-n ftype=1
(最近的 mkfs.xfs 应该会自动创建,但请仔细检查)。来自RH 文档: