我在 4 个虚拟机上有一个 k8s 集群。师傅1人,工人3人。在每个worker上,我使用rook来部署一个ceph OSD。OSD 使用与 VM 操作系统相同的磁盘。
虚拟机磁盘是远程的(底层基础设施又是一个 Ceph 集群)。
这是 VM 磁盘性能(所有 3 个都类似):
$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 4.82804 s, 222 MB/s
空闲时的延迟(等待)约为 8 毫秒。
如果我在 K8S POD 中挂载 RBD 卷,性能会很差:
$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 128.619 s, 8.3 MB/s
在高负载期间(rbd 卷 100% util),RBD 卷的延迟大于 30 秒。
我知道我的设置不是 ceph 推荐的,而且 dd 也不是分析磁盘性能的最佳工具,但是在 VM 磁盘上安装 ceph 的损失仍然很大。
虚拟机操作系统是
CentOS 7.7.1908.
Kernel 3.10.0-1062.12.1.el7.x86_64
工作节点之间的网络带宽:
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.00 sec 2.35 GBytes 2.02 Gbits/sec
网络延迟小于 1 毫秒。
我正在寻找一些提示来进一步解决问题并提高性能。
关于您的 CEPH 集群的信息不足。但是有些东西会提高性能: