天天看点

NSX发布Guest Introspection虚拟机时,主机报错的解决方法

在VMware vSphere环境中基于NSX部署第三方底层杀毒时,我们首先需要通过NSX在每台主机上发布一个Guest Introspection服务虚拟机。

之前遇到过一个问题,发布Guest Introspection服务虚拟机后,出现报错。在NSX出现警告,显示Guest Intrpspection service is not ready

然后在主机中查看报错信息为

<a href="https://s2.51cto.com/wyfs02/M00/06/47/wKiom1m1f3ygQHt7AAFtza74HPg064.png" target="_blank"></a>

之后找到KB,发现有解决方法,但全部尝试之后发现全都无法解决这个报错。

确认NSX、主机、虚拟机之间都可以互相通信,端口也未被占用,时间也同步,Guest Introspection重新发布。主机也已重启并重新添加进Cluster但问题就是一直存在。

后来在迁移虚拟机的时候发现有两台虚拟机迁移至其它主机后,有故障的主机报错消失,这两台虚拟机所在的主机出现了同样的报错。反复迁移尝试后,确认故障是由这两台虚拟机引起的.

查看其中一台虚拟机的LOG日志:

grep vsepAuditSvmConnectivity vmware*.log

vmware-20.log:2017-08-03T16:37:28.439Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

vmware-20.log:2017-08-03T18:12:32.099Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : Lost connectivity to SVM

vmware-20.log:2017-08-03T18:17:52.635Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

vmware-20.log:2017-08-04T08:02:18.809Z| vcpu-0| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : Lost connectivity to SVM

vmware-20.log:2017-08-04T08:04:38.742Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

vmware-23.log:2017-08-10T03:06:56.174Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : Lost connectivity to SVM

vmware-23.log:2017-08-10T03:07:31.819Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

vmware-23.log:2017-08-11T02:36:04.208Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

vmware.log:2017-08-22T06:05:46.358Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

vmware.log:2017-08-22T06:06:42.145Z| vcpu-1| I125: Guest: vsep: AUDIT: vsepAuditSvmConnectivity : connected to SVM

可以看到的确是有连接丢失的情况,之后重装vmtools,但仍然未能解决问题。

后来再看NSX的日志,终于有了重要的发现。在NSX Mgr日志中可以看到如下报错,

&lt;/biosUUID&gt;&lt;vmxPath&gt;/vmfs/volumes/5980d44e-195eae02-c124-0025b5020015/VMWIN2003_SFISPM2_192.168.88.151/VMWIN2003_SFISPM2_192.168.88.151.vmx&lt;/vmxPath&gt;&lt;eventTime&gt;252034051&lt;/eventTime&gt;&lt;eve       ntType&gt;1000&lt;/eventType&gt;&lt;eventParameter&gt;7.0.0.8&lt;/eventParameter&gt;&lt;eventParameter&gt;4325376&lt;/eventParameter&gt;&lt;/ObjectEvent&gt;&lt;ObjectEvent&gt;&lt;objectType&gt;1&lt;/objectType&gt;&lt;altitude&gt;100&lt;/altitude&gt;&lt;eventTime&gt;248054676&lt;/eventTime&gt;&lt;eventType&gt;2000&lt;/e       ventType&gt;&lt;eventParameter&gt;1.4.2&lt;/eventParameter&gt;&lt;/ObjectEvent&gt;&lt;/MUXReport&gt;&lt;/VShieldEndpointSecurity&gt;

   440 javax.xml.bind.UnmarshalException

   441  - with linked exception:

   442 [org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 5413; The reference to entity "SMO_192.168.88.46" must end with the ';' delimiter.]

这台虚拟机的名字是win2003_DCN&amp;SMO_192.168.88.46,搜索类似问题发现该问题可能由于vmx路径里&amp;字符导致无法处理健康状况报告。

那么把这台虚拟机更改成了一个简单的路径名后,重启NSX,并重新发布Guest Introspection,问题解决。

和VMware技术支持沟通后,了解到这是一个BUG,但目前还未修复。

本文转自 川流信息 51CTO博客,原文链接:http://blog.51cto.com/tech4fei/1964216