我们有一个用于 Openstack 镜像和卷的 CEPH 集群(Ubuntu 18.04,Luminous)。当我将其投入生产时,我发现了许多性能问题,OSD 速度很慢,吞吐量很低;这原来是由于 iptables 规则造成的。
常见的情况是,第一条规则是允许来自 RELATED 或 ESTABLISHED 连接的流量。还允许与 CEPH 范围内的任何监听端口建立新连接。其他流量将被丢弃(这里尽量简单,还有一些细节,但这就是要点)。
通过在 DROP 之前添加 LOG 规则,我发现有时会丢弃应该被允许通过的数据包,因为netstat -tanp
报告已建立连接。
补救措施是改变与新连接相关的规则;此规则现在允许 CEPH 端口范围内的任何流量,无论是源端口还是目标端口。
但是 netstat 的连接数和跟踪到的连接数之间的差异让conntrack -L
我很担心。我写了一个小脚本比较两者。
如果有人知道可能发生的情况,请告诉我。另外,如果你尝试我的脚本你的CEPH 集群,请告诉我。