vCenter服务不能启动的处理过程


vCenter服务不能启动的处理过程



今天vCenter所在的Windows 2012 Server,非正常关机后,出现了vCenter服务不能正常启动的问题,经过状态分析和网上相关资料参考,最终解决了问题,使vCenter服务恢复正常了。

 

今天上午vCenter所在的Windows 2012 Server操作系统的内存使用比较高,同事感觉有问题,就直接在vCenter管理界面中,将这台虚拟机使用电源强制重启了,结果重启之后,vCenter服务一直不能够正常启动。

 

尝试检查了vCenter使用的Oracle数据库服务、监听、表空间使用率各方面正常后,又多次尝试重启VMware服务结果都没有启动成功。

 

日志查询:

http://www.2cto.com/os/201202/119166.html

通过该网页可以确认在C:\ProgramData\VMware\VMwareVirtualCenter\Logs  目录下存放有vCenter的日志,其中 vpxd-n.log就是vCenter主服务器vpxd服务启动时的日志,每次启动时,前面的日志都会打包成为.tar.gz压缩包,新产生一个日志。

经过对日志文件查询,发现了一些问题,但之前没有看到和研究过vCenter的启动过程,所以找了一个服务器上之前的日志文件,进行对比查看。

(两个日志文件也放在博客附件中)

 

 

通过两个日志文件对比,分析vCenter不能启动成功的错误如下:

 

vCenter 启动过程中报错:

 

在utilvpxdDbLoad过程中,丢失了很多配置设置;在正常启动会,这些Init初始参数会从 VpxProfiler中导入参数;

 

2014-09-19T13:54:31.625+08:00 [07968 warning'VpxProfiler'] Vpxd::ServerApp::Init [ClusterMo::InitEVCModes()] took 912 ms

2014-09-19T13:54:31.933+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property maxVirtualDiskCapacity

2014-09-19T13:54:31.938+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property containerId

2014-09-19T13:54:31.940+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property persist set

2014-09-19T13:54:31.942+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property mounted set

2014-09-19T13:54:31.946+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property vmfs.local

2014-09-19T13:54:31.961+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property maxVirtualDiskCapacity

2014-09-19T13:54:31.963+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property containerId

2014-09-19T13:54:31.964+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property persist set

2014-09-19T13:54:31.965+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property mounted set

2014-09-19T13:54:31.966+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property vmfs.local

2014-09-19T13:54:31.976+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property maxVirtualDiskCapacity

2014-09-19T13:54:31.976+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property containerId

2014-09-19T13:54:31.977+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property persist set

2014-09-19T13:54:31.978+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property mounted set

2014-09-19T13:54:31.979+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property vmfs.local

2014-09-19T13:54:31.989+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property

maxVirtualDiskCapacity

2014-09-19T13:54:31.990+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property containerId

2014-09-19T13:54:31.991+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property persist set

2014-09-19T13:54:31.992+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property mounted set

2014-09-19T13:54:31.993+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property vmfs.local

2014-09-19T13:54:32.006+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property maxVirtualDiskCapacity

2014-09-19T13:54:32.007+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property containerId

2014-09-19T13:54:32.008+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property persist set

2014-09-19T13:54:32.009+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Non-optional property mounted set

2014-09-19T13:54:32.010+08:00 [07968 warning'utilvpxdDbLoad'] [ORM] Load: Missing mapping for property vmfs.local

 

后面的SSO 部分与正常启动正常,然后从 profileprofileUtil 总创建了很多.xml文件

 

从 vpxdvpxdMoOptionManager 中的操作与正常启动也一样

 

然后在 ProxySvc 过程中,出现错误,提示初始化错误:

2014-09-19T13:54:35.666+08:00 [07968 info'ProxySvc'] Max proxy connections currently set to 2048 , buffer size: 16344bytes

2014-09-19T13:54:35.668+08:00 [07968 info'ProxySvc'] vmacore/ssl/useSSLCtxPool: true

2014-09-19T13:54:35.676+08:00 [07968 info'ProxySvc'] vmacore/ssl/serializeServerHandshake: false

2014-09-19T13:54:35.680+08:00 [07968 error'vpxdvpxdMoReverseProxy'] [VpxdReverseProxy] Failed to create http proxy: 以一种访问权限不允许的方式做了一个访问套接字的尝试。

2014-09-19T13:54:35.685+08:00 [07968 error'vpxdvpxdMain'] [Vpxd::ServerApp::Init] Init failed: ReverseProxyMo::Init()

 

 

然后是backup trace 文件,最后提示不能启动的错误:

2014-09-19T13:54:35.705+08:00 [07968 warning'VpxProfiler'] ServerApp::Init [TotalTime] took 13197 ms

2014-09-19T13:54:35.710+08:00 [07968 error'Default'] Failed to intialize VMware VirtualCenter. Shutting down...

2014-09-19T13:54:35.723+08:00 [07968 info'vpxdvpxdSupportManager'] Wrote uptime information

2014-09-19T13:54:46.510+08:00 [07964 warning'VpxProfiler' opID=SWI-6c4f3258] VpxUtil_InvokeWithOpId [TotalTime] took 12002 ms

 

2014-09-19T13:56:34.519+08:00 [07608 warning 'VpxProfiler'opID=SWI-5c8022d1] VpxUtil_InvokeWithOpId [TotalTime] took 12001 ms

2014-09-19T13:56:35.735+08:00 [07968 info 'Default']Forcing shutdown of VMware VirtualCenter now

 

 

所以整个启动过程有两方面的错误,一是丢失了很多maping文件;二是初始化失败,以一种访问权限不允许的方式做了访问套接字的尝试;

然后提示正在关闭,强制关闭 VMware VirtualCenter now。

 

从日志对比可以分析出,上面标红的部分,就是产生错误的原因。

知道了错误原因就该分析如何解决。

 

 

问题解决过程:

 

解决方法一:

在网络上找到一篇类似的文章:

http://bbs.hh010.com/forum.php?mod=viewthread&action=printable&tid=293389

 

意思是说80端口被占用,所以vCenter无法启动了,但他用的是一个sql server进程,关闭后vCenter就正常了。

我用的是Oracle数据库,80端口应该被其他系统占用了。

 

查找80端口被占用的情况:

http://www.2cto.com/os/201211/172327.html

 

1、Windows平台

在windows命令行窗口下执行:

C:\>netstat -aon|findstr "80"

TCP    0.0.0.0:80         0.0.0.0:0               LISTENING       2736

看到了吗,端口被进程号为2736的进程占用,继续执行下面命令:

C:\>tasklist|findstr "2736"

peer.exe                     2016 Console                 0     16,064 K

很清楚吧,thread占用了你的端口,Kill it

如果第二步查不到,那就开任务管理器,看哪个进程是2736,然后杀之即可。

 

我分别通过两个命令:

 

C:\>netstat -aon|findstr "80"

TCP    0.0.0.0:80         0.0.0.0:0               LISTENING       4

可见是进程号为4 的进程占用了80端口;

执行杀进程命令:

C:\>tasklist|findstr "4"

结果杀不掉,进程仍然在

 

到任务管理器里找个该进程号为4的应用:

名称为  System ,PID 4,正在运行,用户名System,内存 100K,描述 NT & System

 

直接关闭进程仍然关闭不掉,查询器属性为:

ntoskrnl.exe 进程

注意:该进程是以System服务启动,所以不能直接删除,必须停止该服务底层的sql Server服务,或者IIS服务。

 

 

解决方法二:

查找如何关闭 ntoskrnl.exe 占用 80端口的问题,找到一个网页:

http://zhidao.baidu.com/link?url=FS5JwQ_r3M9btVKjIZJNj1mgBUgcuVcwGgiQNVJ7pQ6v4YUmQhPo0UD63-UWTt4pIS9HDFnVEhENMH60gDpwJ_

 

怎样关闭占用80端口的pid为4的进程

我也被这个问题给纠结了好几天。重装系统都三次了。终于找到原因了;我用的是sqlserver 2008;

解决方法:window-sqlserver

2008-配置工具-sqlserver 配置管理器 找到sqlserver reportingservices服务停止;再netstat -ano

里面的80端口就不见了;吼吼!!!

 

但我的 Windows 2012 server上没有安装sql  server,安装的是Oracle数据库没有找到对应服务;

 

 

解决方法三:

于是又从网站上找到另外的一个说法:

http://www.111cn.net/sys/Windows/46472.htm

 

Windows 2012 Server上,除了SQLServer的服务可能会占用80端口,还有IIS服务也会占用80端口。

我用命令停止了IIS服务:

使用命令行查询,占用80端口的服务以及不在了:

但在服务管理中查询占用80端口,PID为4的进程仍然存在,说明要避免System服务,需要停用IIS服务,重启操作系统才可以根除这个占用服务。

 

 

但Windows 2012 Server的服务配置与其他服务不太一样,需要按照下面的步骤进行查找和关闭:

打开“服务器管理器”-“IIS”- 服务——显示有三个相关IIS服务:

服务器名称     显示名称                   服务名称         状态         启动类型

         ApplicationHost Helper Service  AppHostSvc       已停止     手动

         WorldWide Web Publishing Service  W3SVC 已运行     手动

         WindowsProcess Activation Service WAS                 已运行     手动

找到以上服务后,在服务里将各个服务禁用即可;

但Windows 2012 Server中的服务位置也与之前不太一样:服务器管理,菜单栏——工具——“服务”即可打开服务管理器,这个界面与之前的Windows版本里的服务是一样的,找到上面IIS相关的三个服务名称,右击,设定服务属性为禁用,然后重启操作系统;

(注:通过服务管理器-工具- “ODBC数据源(64位)”,可以打开ODBC数据链接的配置界面,在安装vCenter时配置数据库连接会用到该选项;)

 

 

系统重启后,可以观察到IIS没有启动,80端口和PID为4的进程没有启动;

VMware vCenter其他服务都已经启动完毕,vCenter的核心相关服务VMware VirtualCenter Server和VMware VirtualCenter Management Webservices 两个服务状态为“自动(延迟服务)”,等待其他先决条件服务启动完毕后,这两个服务也能够正常启动,vCenter状态恢复正常。

 

 


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页