在 Hostinger,我们有尝试通过 NFS 共享运行 Ceph RBD 映像的经验。此解决方案确实为我们提供了共享存储,但在某些负载下(大量客户端发送 IO 和吞吐量导向的读写请求),NFS(和 Ganesha)性能不佳,经常出现锁定。
尽管已经声明 Ceph 不支持 iSCSI,但两年前我们设法通过 iSCSI 导出 RBD 映像,并以此方式成功运行了一些生产项目。性能非常不错,我们对此感到满意。不幸的是,该解决方案也不再适合我们目前的需求,因为它不提供共享存储。
我们是如何做到的
在项目首次启动时,
三个监控节点还充当元数据服务器和缓存层。每个节点都有 1 个 NVMe SSD,总计 800GB 的缓存层用于存储最热的数据。
5 个 OSD 节点,每个节点有 12 个 OSD 和 1 个用于日志的 NVMe SSD,总共 60 个 OSD 和 120 TB 可用磁盘空间(360 TB 原始空间)。
独立的 10GE 光纤网络 – 一个公共客户端网络和一个私有集群网络。与我们所有的内部网络一样,Ceph 集群在仅 IPv6 网络上运行。
NVMe 是一项新技术,其首批规范于 2011 年发布。我们的 NVMe 驱动器可实现高达 3GBps(24 Gbps)的读取吞吐量和高达 2 GBps(16 Gbps)的写入吞吐量,提供卓越的性能并实现比传统 HDD 和其他 SSD 更高的数据吞吐量。
调优和经验教训的漫长道路
延迟
由于此集群是为共享主机构建的,因此大多数操作 土耳其电话号 都是面向IOPS的。一切都归结为管理延迟:
网络引起的延迟。
驱动器及其控制器引起的延迟。
由 CPU 引起的延迟。
RAID 控制器引起的延迟。
由其他硬件组件引起的延迟。
由内核引起的延迟。
Ceph 代码引起的延迟。
错误的内核、Ceph、网络、文件系统和 CPU 配置导致的延迟。
尽管您对其中某些部分无能为力,但有些事情仍在您的掌控之中。
调整内核配置参数
例如,有很多内核参数可以提高集群的性能,也可以使其变差。这就是为什 其中显示您是管理员的页面 么除非你真的知道自己在做什么,否则你应该保留它们的默认值。
调整 Ceph 配置参数
Ceph 默认配置为满足主轴磁盘的要求。但是,我们的 电子邮件列表 许多集我们部署了个由以 群都是纯 SSD 集群,既有由主轴 HDD 支持的 SSD(用于日志),也有由主轴 HDD 支持的 NVMe(用于缓存)。因此,我们必须调整许多 Ceph 配置参数。