1. 解决vcenter single sign on(sso)故障:error 29115:cannot authenticate to db(5.1)
故障问题:
Vcenter single sign on(sso)这个组件为vsphere 5.1里新出先的,它在未来,将会扮演着允许所有vmware服务器虚拟化、云计算单点自动登录的功能角色, 因此,在vsphere 5.1 中,如果想要部署 vcenter 以及后续服务,它必须是第一个被安装的; 但是,很多用户在部署它的时候可能都会遇到形形×××的问题,比如,本文就是在测试时,
碰到了一个错误,错误代码:
error 29115:cannot authenticate to db
如下图所示:
而系统出现这个错误后,所有已安装的进程都全部回滚了。
解决办法:
经过查证显示vcenter single sign on 这个组件首先需要db支持,同时也只支持sql server and windows authentication mode这种数据库安全验证模式。因此,需要利sql management tools 去打开sql数据库服务器,然后点击 “security”选项,点击“sql server and windows authentication mode” 选项,如下图所示:
完成上述动作后,再次尝试安装,搞定。
备注:在vsphere 5.1里,如果选用安装版本的vcenter server 5.1,请务必按照先后顺序,先部署vcenter single sign on组件,然后是vcenter vservices服务,最后vcenter server本身。 同时在部署 vcenter sign sign on组件前,需要先为其创建 db ,而这个 db 的创建可以利用 vmware 官方提供的脚本来完成。
2. VMware vSphere日志收集方式
通过命令行进行日志文件的收集(推荐方式):
1. 以root用户登录esx server console命令行
2. 进入到tmp目录:# cd /tmp
3. 收集日志:# /usr/bin/vm-support
4. 收集动作完成后,在tmp目录下将产生:
通过vi client进行诊断信息的收集:
1. 以administrator身份通过vi client登陆virtualcenter或以root用户身份直接登陆esxi。
2. 点击file>export>export diagnostic data.
3. 在“save diagnostic data”窗口中选择要导出诊断数据的服务器和是否需要导出virtualcenter数据(如果需要,请在“include information from virtualcenter server”前打钩)。
4. 点击“browse”指定诊断数据的导出目录。
5. 点击“ok”之后进行日志收集。
日志收集的过程中可能会收到认证错误提示,这并不代表您的日志没有收集成功。点击“ignore”继续进行日志收集工作。
当日志生成并下载之后在您指定的日志文件夹中会有一个日志包出现。以下为常见的日志文件:
Vc-support-xxxxx.zip为virtualcenter的日志文件
或
Xxxxx代表日志生成的日期和时间,
3. 虚拟机关机后被卡死,用命令行关机
1.进入esxi的duci界面,选择“troubleshooting options”的中的“enable ssh”打开;或者打开esxi图形界面,找到该主机,点击右边“配置”---“安全配置文件”---“属性”---开启“ssh”选择(esxi4.1方式略有不同)
2.通过ssh工具登陆进入命令行界面:
Esxcli vm process list
Esxcli vm process kill --type=[soft,hard,force] --world-id=worldnumber
或者
Vim-cmd vmsvc/getallvms (查看该主机上所有虚拟机)
Vim-cmd vmsvc/power.getstate vmid (查看某个虚拟机的状态)
Vim-cmd vmsvc/power.shutdown vmid (关闭该虚拟机)
Vim-cmd vmsvc/power.off vmid (如果上面关闭失败,用这个命令)
4. 在群集中的esxi主机出现“由于用户或密码不正确,无法完成登录”(5.0.1)
故障问题:
客户在移动vcenter数据库后,部分群集中esxi主机出现“由于用户或密码不正确,无法完成登录”,期间没有更改过esxi中的用户和密码。
故障分析:
由于没有更改过esxi主机的密码,且单台esxi主机登录都正常,所以排除此问题。考虑到移动过vcenter数据库,由于esxi主机加入vcenter后,不再使用root账户,会自动会生产一个vpxuser用户,此用户的密码大概30天自动更新,考虑到变动vcenter数据库的时候大概在30天左右,可能问题就在此。
解决方法:
方法一:
选中出现问题的esxi主机,右键“断开“,稍后,esxi主机进入“已断开”状态,然后移除该esxi主机。然后,重新添加该esxi主机,查看是否正常,如果还存在此问题。参照方法二
方法二:
用vsphere client登录单台esxi主机,选中“本地用户和组”后”移除“vpxuser”账号。
选择“摘要”右下角“解除主机与vcenter server的关联”。然后再进入vcenter界面,把该esxi主机加入该vcenter,即可。
5. 更改vcsa 5.1的登录失败尝试次数和锁定时间(5.1)
Vcsa是基于suse 11 enterprise 的linux系统,而这个系统有个缺省的登录尝试次数过多导致账户锁定问题,而这个缺省次数就是3次,控制模块就是:
/etc/pam.d/common-auth,这里面有一行如下:
Auth requisite pam_tally.so deny=x,缺省为3;
如果在尝试登录时,成功登录,则这个的尝试次数会自动清零,否则它将持续记录次数,在vsphere 5.1里,利用vsphere web client就可以在图形界面下配置这个本来需要命令行操作更改的事情,如下图所示:
修改如上图所示的:max.number of failed login attempts这个参数;需要注意的是,这个参数仅限于vcenter到sso的连接配置次数。
6. Vcsa 5.1上的缺省vcenter sso管理员密码(5.1)
在vcsa(suse版的vcenter 5.1 appliance)里,内置了sso等信息,其中,可以看到for sso的admin@system-domain这样的信息,可以直接使用,不过,这里想要讨论的是:这个缺省账户的密码是多少呢,能改吗?
首先,需要明确的是:木有缺省密码,在安装过程中,会随机生成密码,安装结束后密码会自动清除。这样做的好处是有助于加强安全,不过,这样一来,问题也就出现了:没有缺省密码。这个账户并不单给vcenter sso administrator使用,其它的一些内部服务可能都会用到,因此,在必须要使用那些服务时,得确保知道这个admin@system-domain的密码才行;
设定修改步骤如下:
1、web client登录到vcenter后,点击“administration”页标签,如下图所示:
2、紧接着,点击“sso users and groups”,此时,就可以看到admin账户了,如下图所示:
3、根据需要,选中admin账户,然后设定好想要设定的密码,连续两次正确输入即可,如下图:
备注:这个方法只针对vcsa版本的vcenter。
7. Srm的sra扫描hba卡超时:recovered datastore is not visible to host
Srm在尝试扫描sra的hba卡时,超时,提示如下错误信息:
? recovered vmfs datastore 'snap-xxxxxxx' is notvisible or not mounted on host 'esxi-xxx'
? recovered datastore is not visible to host'esxi-xxx'
? failed to rescan hbas on host 'esxi-xxx'
这个问题是由于srm一次通常只会执行一次rescan,然而对于众多的datastore的,可能需要多次扫描才有可能全都识别到,解决方案:
Vsphere client登录到srm的advanced settings >storageprovider.hostrescanrepeatcnt,调整它位2~3次,即可,如下图所示:
上图中的参数storageprovider.hostrescantimeoutsec也可以被调整,如果为了确保100%成功,则可以加大它的值,但是,需要注意的是,这里加大了2个参数,自然会导致rto的增加。
8. 解决:failed to connect to vmware lookup service故障(5.1)
故障状态:
尝试登录vsphere web client时,系统提示如下错误信息:
Failed to connect to vmware lookup service https://xxxx:7444/lookupservice/sdk-ssl certifate verification failed.
故障分析:
这个问题一般都是由于更改了vcenter virtual appliance(vcsa)的主机名或ip地址导致的;
解决方案:
1、利用浏览器登录https://xxx:5480,打开vcenter server virtual appliance的web配置界面;
2、点击admin页标签,然后点击toggle certificate setting,如下图所示:
3、完成第二步后,重启这个vcsa。
9. 重新启动sso服务器后,vcenter 5.1服务启动失败(5.1)
最新发布的vmwarevsphere5.1,vcenter增加了一个角色,叫做sso,简称单点登陆,所有其它的服务,如vcenter server\web client\update manager等都需要连接到sso角色,所以安装vmwarevspere vcenter 5.1,必须安装sso,而且是第一个安装的角色。不然其它角色无法正常安装。
但目前的vsphere sso还不是很稳定,当你重启sso服务器,会发现sso服务是正常运行,但vcenter服务就起不来了。官方的kb库里例出了下面几种可能会导致sso重启后,vcenter 5.1 启动失败的情况,如下:
1. Sso服务器的主机名字改变,包含该主机加入域或退出域。
When updates are applied to the operatingsystem, the machine name changes, or the machine is added or removed from anactive directory domain. These changes prevent the sso server from startingand, as a result, vcenter server does not start.
2. Sso服务器的硬件配置改变,如内存大小,cpu的个数,mac地址等改变。
If you clone or change the parameters of avirtual machine where sso is installed (such as the amount of ram), the numberof cpus, the mac address, and sso fails to start。
在vmware vcenter 5.1服务器上的vpxd.log日志上会看到如下的报错日志:
012-09-24t22:18:46.534-04:00[04584 info 'authvpxdmosessionmanager'] [sso][sessionmanagermo::init]downloading sts root certificates ...
2012-09-24t22:18:46.534-04:00 [04584 verbose'[sso][ssocertificatemanagerimpl]'] [initconfigmanagementservice]
2012-09-24t22:18:46.534-04:00 [04584 verbose'[sso][ssocertificatemanagerimpl]'] [createadminssoservicecontent] connectingto sso admin server ...
2012-09-24t22:18:46.534-04:00 [04584 trivia'vmomi.soapstub[0]'] sending soap request to [
2012-09-24t22:18:46.534-04:00 [04584 trivia'httpconnectionpool-000001'] [incconnectioncount] number of connections to
2012-09-24t22:18:46.534-04:00 [04584 trivia'httpconnectionpool-000001'] [poppendingconnection] found pending connection to
2012-09-24t22:18:46.534-04:00 [04584 trivia'vmomi.soapstub[0]'] request started [classvmacore::http::useragentimpl::asyncsendrequesthelper:000000000df7fa68]
2012-09-24t22:18:46.534-04:00 [04280 trivia'default'] sslstreamimpl:oclienthandshake: verifypeername(vchostname.test.vmware.net), peercertdigest (), unverifiedaction (fail)
2012-09-24t22:18:46.549-04:00 [06108 info'default'] thread attached
2012-09-24t22:18:46.627-04:00 [04280 trivia'vmomi.soapstub[0]'] request completed [classvmacore::http::useragentimpl::asyncsendrequesthelper:000000000df7fa68]
2012-09-24t22:18:46.627-04:00 [04584 trivia'httpconnectionpool-000001'] [decconnectioncount] number of connections to
2012-09-24t22:18:46.627-04:00 [04584 error'vpxdvpxdmain'] [vpxd::serverapp::init] init failed: unexpected exception
--> backtrace:
--> backtrace[00] rip 000000018018977a
--> backtrace[01] rip 0000000180100c98
--> backtrace[02] rip 0000000180101fae
--> backtrace[03] rip 000000018008aeab
--> backtrace[04] rip 0000000000564971
--> backtrace[05] rip 0000000000501298
--> backtrace[06] rip 00000000005016c9
--> backtrace[07] rip 0000000000470fae
--> backtrace[08] rip 0000000140d7bfb8
--> backtrace[09] rip 000000013fc70078
--> backtrace[10] rip 000000013fc7016a
--> backtrace[11] rip 000000013fc70279
--> backtrace[12] rip 000000013fc70609
--> backtrace[13] rip 000000013ffb2903
--> backtrace[14] rip 000000014075e4b9
--> backtrace[15] rip 000000014075835c
--> backtrace[16] rip 0000000140978a3b
--> backtrace[17] rip 000007feff4fa82d
--> backtrace[18] rip 000000007750652d
--> backtrace[19] rip 000000007788c521
-->
2012-09-24t22:18:46.627-04:00 [04584 trivia'vpxprofiler'] ctr: totaltime = 13353 ms
在sso服务器的c:\programfiles\vmware\infrastructure\ssoserver\utils\logs\discover-is.log日志中能看到如下报错:
2012-09-2423:40:49,962 - vchostname.test.vmware.net,,,,executing action: 'discover-is'
2012-09-24 23:40:49,962 - vchostname.test.vmware.net,,,,discoveringidentity sources
2012-09-24 23:40:50,942 - vchostname.test.vmware.net,,,,error: bean (primarycommandtarget)initialization failure
com.rsa.ims.security.keymanager.sys.systemmodificationthresholdexception:system was modified beyond the allowed threshold, cannot decrypt.
Com.rsa.common.systemexception: bean (primarycommandtarget) initializationfailure
com.rsa.ims.security.keymanager.sys.systemmodificationthresholdexception:system was modified beyond the allowed threshold, cannot decrypt.
Caused by: com.rsa.ims.components.componentfailureexception: unable to loadbean named primarycommandtarget
Note: you can run this command to see iferror messages are still present in the discover-is.log:
C:\programfiles\vmware\infrastructure\ssoserver\utils>ssocli.cmd configure-riat -adiscover-is -u admin -p
以下是解决办法:
登入到sso服务器,运行cmd(管理员),切换到如下目录:
C:\programfiles\vmware\infrastructure\ssoserver\utils
运行如下命令:
Rsautil manage-secrets -a recover-m masterpassword
Masterpassword替换成admin@system-domain帐户的密码
然后重启sso服务
最后再重启vcenter服务。
10. 在vsphere 5.1里为vcenter和update manager创建数据库(5.1)
Vcenter和update manager都是需要数据库的,而在vsphere 5.1里,这个数据库的创建可是难道了不少人,这里,就介绍下如何在sql server 2008 r2数据库里,去创建全新的for vcenter和vum的数据库,由于软件和数据库沟通是通过dsn的,那么,创建dsn就在所难免啦;
1、在vcenter server上选择适当的sql native client,然后配置和数据库进行通讯。64位的vcenter需要64位的native client,可以直接掉用这个文件路径:
\sp\10333_enu_ip\x64\setup\x64\sqlncli.msi
2、找到之后,全部选择缺省设定;
3、在sql server 2008 r2上创建vcenter和vum所需的数据库,创建方式,可以使用下面的脚本,将它们贴到sql server management studio的执行窗口:
----
/* 创建vcenter和vum数据库 */
/* 更改账户,这里的账户自行定义 */
Exec('create login [vmanager\dbadmin]from windows')
Use msdb
Exec sp_grantdbaccess 'vmanager\dbadmin'
Exec sp_addrolemember db_owner, 'vmanager\dbadmin'
Use master
Create database "vcdb"
On
( name = 'vcdb',
Filename = 'm:\microsoft sql server\mssql\data\vcdb.mdf',
Size = 10000mb,
Filegrowth = 1000mb )
Log on
( name = 'vcdb log',
Filename = 'l:\microsoft sql server\mssql\data\logs\vcdb.ldf',
Size = 200mb,
Filegrowth = 20mb )
Collate sql_latin1_general_cp1_ci_as;
Create database "vumdb"
On
( name = 'vumdb',
Filename = 'm:\microsoft sql server\mssql\data\vumdb.mdf',
Size = 250mb,
Filegrowth = 25mb )
Log on
( name = 'vumdb log',
Filename = 'm:\microsoft sql server\mssql\data\logs\vumdb.ldf',
Size = 25mb,
Filegrowth = 2mb )
Collate sql_latin1_general_cp1_ci_as;
Exec('alter authorization on database::"vcdb" to [vmanager\dbadmin]')
Exec('alter authorization on database::"vumdb" to [vmanager\dbadmin]')
Go
4、完成上述内容后,就可以执行64位的dsn创建,可以选用如下脚本或图形界面:
## 创建64位的dsn.
$dsnname = $args[1]
$dbname = $args[1]
If($args[0] -eq $null) { echo "must specify fqdn of sql server."; exit}
If($args[1] -eq $null) { echo "must specify database name."; exit}
$hklmpath1 = "hklm:\software\odbc\odbc.ini\" + $dsnname
$hklmpath2 = "hklm:\software\odbc\odbc.ini\odbc data sources"
Md $hklmpath1 -erroraction silentlycontinue
Set-itemproperty -path $hklmpath1 -name driver -value "c:\windows\system32\sqlncli10.dll"
Set-itemproperty -path $hklmpath1 -name description -value $dsnname
Set-itemproperty -path $hklmpath1 -name server -value $args[0]
Set-itemproperty -path $hklmpath1 -name lastuser -value "administrator"
Set-itemproperty -path $hklmpath1 -name trusted_connection -value "yes"
Set-itemproperty -path $hklmpath1 -name encrypt -value "no"
Set-itemproperty -path $hklmpath1 -name database -value $dbname
## this is required to allow the odbc connection to show up in the odbc administrator application.
Md $hklmpath2 -erroraction silentlycontinue
Set-itemproperty -path $hklmpath2 -name "$dsnname" -value "sql server native client 10.0"
5、完成这个步骤之后,可以进入到odbc数据源的dsn设定里测试,点击“test data source”,如下图所示:
6、测试成功后,如下图所示: