当您欣喜地使用着vCenter6.5对自己心爱的数据中心进行管理的时候,不知某一时刻突然在界面上出现了如下画面:

503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f0782fb55f0] _serverNamespace = / _isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe)

并且与此同时,无论如何重启vCenter都没有作用。此时,请不要慌张,只需按照如下的步骤,问题即可迎刃而解,并且数据中心的一切数据都完好如初:

  1. 使用ssh或者直接从ESXi界面登陆到vCenter Applience虚机中,进入SHELL
    Last login: Thu Sep 28 10:05:40 2017 from 10.4.143.97
    Connected to service

        * List APIs: "help api list"
        * List Plugins: "help pi list"
        * Launch BASH: "shell"
    
    Command> shell
    Shell access is granted to root
  2. 输入如下命令:service-control --status vmware-vpxd看到状态为“Stopped”
  3. 输入如下命令:service-control --start vmware-vpxd并不能启动相应服务

当确认了2,3两点后,继续执行:

  1. 输入如下命令:/opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres,此命令登陆postgres数据库
  2. 输入如下命令,找到有问题的虚机:select v.id, v.local_file_name, h.IP_ADDRESS FROM VPX_VM v, VPX_NIC n, VPX_HOST h WHERE v.id=n.entity_id and v.host_id=h.id and n.network_name='';

    1. 输入如下命令,请用5中得到的虚机id来替换本语句的“”:select * from vpx_entity where id = '';
    2. 找到受影响的虚机后您有两个选择:
      1)删除相应虚机以及删除相应记录:delete from vpx_entity where id = '';
      2)删除该虚机的网络适配器(Network Adepter) -> 保存 -> 添加网络适配器
    3. 输入如下命令:service-control --start vmware-vpxd

      您将可以看到您的vCenter可以访问了。

受影响的vCenter版本为:Version 6.5.0 Build 4944578,原因是在创建虚机的时候虚机数据库出现了网卡数据项空(NULL)值。