Nutanix集群出现CVM间高网络延迟问题的分析

问题描述

Prism中出现如下告警事件:

Latency between CVMs: Latency between CVMs is higher than 15 ms.

出现此告警则表示CVM互Ping延迟较高(超过15ms,一般同一集群内的延迟不应该高于2ms),会影响ZooKeeper及Cassandra服务的稳定性,极端情况下会造成数据复制异常。

集群NCC检查项名称为:inter_cvm_ping_latency_check

$ ncc health_checks network_checks inter_cvm_ping_latency_check

问题定位

1. 检查集群内所有CVM间互Ping延迟情况:

$ allssh "find ~/data/logs/sysstats -maxdepth 1 -name 'ping_hosts.INFO.*' -exec gawk '/IP : time/ {next}; /#TIMESTAMP/ {match(\$0, / ([0-9][0-9]\/.*:[0-9][0-9] [AP]M)/, arr); next}; \$3>13.0 || \$3=unreachable {print arr[1] \" \" \$0}' '{}' + | tail -n25"

默认取日志最新25行,如果高延迟现象发生频率较高,可以修改tail -n参数。

实时Ping Hosts日志位于:/home/nutanix/data/logs/sysstats/ping_hosts.INFO

检查单一节点CVM上的互Ping延迟,使用如下命令:

$ grep -B 6 '[8-9][.]' ~/data/logs/sysstats/ping_hosts.INFO |grep -v ': [0-7][.]'

#TIMESTAMP 1545264624 : 12/20/2018 08:10:24 AM
#IP : time
#192.168.1.2 : 29.7 ms
#192.168.1.5 : unreachable
#...

2. 检查CVM到存储网关的Ping延迟情况(过滤出大于15ms的记录):

$ cat ~/data/logs/sysstats/ping_gateway.INFO | egrep -v "IP : time" | awk '/^#TIMESTAMP/ || $3>15.00 || $3=unreachable' | egrep -B1 " ms|unreachable" | egrep -v "\-\-"

3. 检查NCC检查项返回失败结果的频率:

$ allssh 'zgrep -h "inter_cvm_ping_latency_check is FAIL" data/logs/health_server.log.*'

其他说明

在ESXI虚拟化层检测网络配置
#检查物理机网卡及端口状态
$ esxcfg-nics -l
$ esxcfg-vmknic -l

#检查端口瞬断情况
$ tac /var/log/vmkernel.log | grep vmnic* | grep down

#检查VLAN和MTU配置
$ vim-cmd hostsvc/net/query_networkhint --pnic-name=vmnic* | egrep "location|mgmtAddr|softwareVersion|systemName|hardware|vlan|portId|port|ipSubnet"

#检查vSwitch配置
$ esxcfg-vswitch -l

#检查网络接口错误
$ ethtool -S vmnic*

END