vCenter 存储监控服务失败,报错:服务初始化失败
search cancel

vCenter 存储监控服务失败,报错:服务初始化失败

book

Article ID: 301201

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:
免责声明:本文为 VMware vCenter Storage Monitoring Service fails with the error: Service initialization failed after upgrading to vCenter 5.5 (2060967) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

在更新到 vCenter Server 5.5 时,并且以一个服务账号运行 VMware VirtualCenter Sever 服务及 VMware VirtualCenter Management Webservices 服务时,遇到如下症状:
  • “vCenter 服务状态”页面报告 VMware vCenter 存储监控服务已失败。
  • 您会看到类似以下内容的错误:

    服务初始化失败 (Service initialization failed)

  • 您最近已升级到 vCenter Server 5.5。
  • 正在使用服务帐户运行 VMware VirtualCenter Server 服务和 VMware VirtualCenter Management Webservices 服务。
  • “存储视图”选项卡报告以下错误:

    发生内部错误 (An internal error has occurred)

  • C:\ProgramData\VMware\VMware VirtualCenter\Logs\vws.log 文件中,您会看到类似以下内容的条目:

    <time>,634 tomcat-http--40 ERROR com.vmware.vim.health.VcAuthorize] VC session has expired and could not be authenticated
    com.vmware.vim.binding.vim.fault.NotAuthenticated: inherited from com.vmware.vim.binding.vim.fault.NoPermission: object =
    com.vmware.vim.binding.vmodl.ManagedObjectReference@c1f8a09,privilegeId = System.Read inherited from com.vmware.vim.binding.vmodl.fault.SecurityError:inherited from com.vmware.vim.binding.vim.fault.NotAuthenticated: The session is not authenticated.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.vmware.vim.vmomi.core.types.impl.ComplexTypeImpl.newInstance(ComplexTypeImpl.java:171)
    at com.vmware.vim.vmomi.core.types.impl.DefaultDataObjectFactory.newDataObject(DefaultDataObjectFactory.java:26)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.ComplexStackContext.<init>(ComplexStackContext.java:33)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.parse(UnmarshallerImpl.java:135)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.unmarshall(UnmarshallerImpl.java:98)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshalSoapFault(UnmarshallerImpl.java:84)
    at com.vmware.vim.vmomi.client.common.impl.SoapFaultStackContext.setValue(SoapFaultStackContext.java:37)
    at com.vmware.vim.vmomi.client.common.impl.ResponseUnmarshaller.unmarshal(ResponseUnmarshaller.java:97)
    at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.unmarshalResponse(ResponseImpl.java:245)
    at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.setResponse(ResponseImpl.java:203)
    at com.vmware.vim.vmomi.client.http.impl.HttpExchange.run(HttpExchange.java:126)
    at com.vmware.vim.vmomi.client.http.impl.HttpProtocolBindingImpl.send(HttpProtocolBindingImpl.java:98)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl$CallExecutor.sendCall(MethodInvocationHandlerImpl.java:533)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl$CallExecutor.executeCall(MethodInvocationHandlerImpl.java:514)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.completeCall(MethodInvocationHandlerImpl.java:302)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.invokeOperation(MethodInvocationHandlerImpl.java:272)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.invoke(MethodInvocationHandlerImpl.java:169)
    at com.sun.proxy.$Proxy131.hasPrivilegeOnEntity(Unknown Source)
    at com.vmware.vim.health.VcAuthorize.hasHealthPrivilege(VcAuthorize.java:50)
    at com.vmware.vim.health.servlets.HealthServlet.isAuthenticated(HealthServlet.java:111)
    at com.vmware.vim.health.servlets.HealthServlet.processRequest(HealthServlet.java:65)
    at com.vmware.vim.health.servlets.HealthServlet.doPost(HealthServlet.java:158)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    </time>
  • C:\ProgramData\VMware\Infrastructure\Profile-Driven Storage\Logs\sps.log 文件中,您看到类似以下内容的条目:

    YYYY-MM-DD <time> [pool-22-thread-1] WARN opId= com.vmware.vim.storage.common.util.VpxdConnection - Ignoring exception while verifying vpxd connection
    com.vmware.vim.binding.vim.fault.NotAuthenticated: inherited from com.vmware.vim.binding.vim.fault.NoPermission: object =
    com.vmware.vim.binding.vmodl.ManagedObjectReference@c1f8a09 , privilegeId = Sessions.ValidateSession inherited from
    com.vmware.vim.binding.vmodl.fault.SecurityError: inherited from com.vmware.vim.binding.vim.fault.NotAuthenticated:The session is not authenticated.
    at sun.reflect.GeneratedConstructorAccessor85.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.vmware.vim.vmomi.core.types.impl.ComplexTypeImpl.newInstance(ComplexTypeImpl.java:171)
    at com.vmware.vim.vmomi.core.types.impl.DefaultDataObjectFactory.newDataObject(DefaultDataObjectFactory.java:26)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.ComplexStackContext.<init>(ComplexStackContext.java:33)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.parse(UnmarshallerImpl.java:135)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.unmarshall(UnmarshallerImpl.java:98)
    at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshalSoapFault(UnmarshallerImpl.java:84)
    at com.vmware.vim.vmomi.client.common.impl.SoapFaultStackContext.setValue(SoapFaultStackContext.java:37)
    at com.vmware.vim.vmomi.client.common.impl.ResponseUnmarshaller.unmarshal(ResponseUnmarshaller.java:97)
    at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.unmarshalResponse(ResponseImpl.java:245)
    at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.setResponse(ResponseImpl.java:203)
    at com.vmware.vim.vmomi.client.http.impl.HttpExchange.run(HttpExchange.java:126)
    at com.vmware.vim.vmomi.client.http.impl.HttpProtocolBindingImpl.send(HttpProtocolBindingImpl.java:98)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl$CallExecutor.sendCall(MethodInvocationHandlerImpl.java:533)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl$CallExecutor.executeCall(MethodInvocationHandlerImpl.java:514)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.completeCall(MethodInvocationHandlerImpl.java:302)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.invokeOperation(MethodInvocationHandlerImpl.java:272)
    at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.invoke(MethodInvocationHandlerImpl.java:169)
    at com.sun.proxy.$Proxy33.sessionIsActive(Unknown Source)
    at com.vmware.vim.storage.common.util.VpxdConnection.verifyConnection(VpxdConnection.java:227)
    at com.vmware.vim.storage.common.util.VpxdConnectionFactory.getAdminConnection(VpxdConnectionFactory.java:94)
    at com.vmware.vim.sms.security.ActivationValidatorImpl.updatePrivilegeMap(ActivationValidatorImpl.java:104)
    at com.vmware.vim.sms.security.ActivationValidatorImpl.validateSession(ActivationValidatorImpl.java:322)
    at com.vmware.vim.sms.security.ActivationValidatorImpl.validate(ActivationValidatorImpl.java:457)
    at com.vmware.vim.vmomi.server.impl.ValidationStartTask.run(ValidationStartTask.java:67)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    ...

    <YYYY-MM-DD>T<time> [Thread-5] DEBUG opId= com.vmware.vim.storage.common.util.SimpleTimeCounter - TIMER STARTED:Query get_vpx_datacenter
    <YYYY-MM-DD>T<time> [Thread-5] DEBUG opId= com.vmware.vim.storage.common.util.SimpleTimeCounter - TIMER STOPPED:Query get_vpx_datacenter
    <YYYY-MM-DD>T<time> [Thread-5] DEBUG opId= com.vmware.vim.storage.common.util.SimpleTimeCounter - TIME TAKEN:Query get_vpx_datacenter:0.025
    <YYYY-MM-DD>T<time> [Thread-5] ERROR opId= com.vmware.vim.sms.provider.vc.VcProviderImpl - Failed populating service cache
    </time></time></time></time></time>

  • 支持 vCenter Server 的数据库使用以下查询每 30 分钟进行的登录尝试已失败:

    SELECT DATACENTER.ID AS ENTITY_ID, ENTITY.NAME
    FROM VPX_DATACENTER DATACENTER, VPX_ENTITY ENTITY
    WHERE (DATACENTER.ID = ENTITY.ID)


Environment

VMware vCenter Server 5.5.x

Resolution

这是一个影响 VMware vCenter Server 5.5 的已知问题。目前,尚无解决方案。

要临时解决此问题,请将服务帐户凭据添加到用于启动 VMware VirtualCenter Server 服务和 VMware VirtualCenter Management Webservices 服务的 VMware vSphere Profile-Driven Storage Service。默认情况下,所用帐户为本地系统帐户。

要更改 vSphere Profile-Driven Storage Service 的服务帐户,请执行以下操作:
  1. 登录到 vCenter Server 计算机。
  2. 单击开始 > 运行,键入 services.msc,然后单击确定。此时将打开“服务”窗口。
  3. 找到 VMware VirtualCenter Server 服务。记下“登录身份”用户帐户。
  4. 找到 VMware vSphere Profile-Driven Storage Service 服务,其状态应为“已启动”/“自动”。
  5. 右键单击 VMware vSphere Profile-Driven Storage Service
  6. 单击属性 > 登录选项卡,然后选择 此帐户。将其更改为使用步骤 3 中找到的用于运行 vCenter Server 服务的同一帐户,然后单击确定
  7. 重新启动 VMware vSphere Profile-Driven Storage Service VMware VirtualCenter Server 服务。有关详细信息,请参见 Stopping, starting, or restarting vCenter services (1003895)


Additional Information

要在更新本文时收到提醒,请在“Actions”框中单击 Subscribe to Article。