重装vCenter引发故障
2015-12-03■
■
VMware View对于虚拟桌面的管理和调度都是通过vCenter服务器来完成的,可以说vCenter是VMware View保持正常运行的基础。我单位由于之前vCenter服务器的硬盘出现了故障,导致系统瘫痪。为了尽快恢复对虚拟服务器的管理,重新安装了vCenter服务。由于重装了数据库,导致View的桌面池有丢失,用户端无法登录,管理端无法编辑、修改池信息,所有虚拟桌面均显示“维护模式”。因为镜像模板保存完好,遂决定删除旧的桌面池,重新创建。
图1 删除成功提示信息
故障现象
在删除旧桌面池时发现,对桌面池的“删除”命令可以执行,但是一直显示“正在删除”。所有旧桌面池的虚拟桌面全部变成“问题桌面”,显示状态为“正在删除”,并且View系统报错信息急剧增长。
故障排查
经过一番检查,确定发生以上故障的原因是vCenter服务器的重新安装,vCenter与View数据库中的信息无法对应。原有桌面池的数据已被删除,新的vCenter无法管理和调度虚拟桌面以及桌面池,桌面池和虚拟桌面形成了“孤立”状态。
按 照VMware官 方文档给出的命令进行操作,在Composer服 务 器中, 定 位VMware View Composer文件夹,在命令提示符中使用命令“sviconfig-operation=removesviclone-Vmname=your vm name(要删的虚机名字)
-Admin User=Administrator(超级 管 理 员 账 号)-AdminPassword=password(你的密码)“删除桌面。删除成功会有图1的提示。删除后,检查域控的信息发现孤立桌面的信息也同时被清除了。
此时检查发现,所有虚拟桌面已经从ESXi主机中删除掉了,但是在View管理控制台中发现桌面池仍然显示“正在删除”,所有虚拟桌面状态变为“正在删除(缺 失)”。 检 查 View 服务器日志,发现错误信息“BROKER_PROVISIONING_ERROR_CONFIG_SET” 和“Provisioning error occurred on Pool Desktop_ID because of a configuration problem”(如图2)。
根据VMware官方文档(KB1027311)的 说 明,引 起“Provisioning Error”的原因是:
◆ 模板无法访问。
◆ 模板名称已在vCenter中更改。
图2 日志信息
图5 删除成功
◆ 模板已被移到vCenter中的其他文件夹。
◆ 虚拟机映像已在ESX/ESXi主机之间移动或已被删除。
根据文档,检查目前服务器的状态,发现和以上原因都不太像。但是其中提到的一个原因是模板被移动到其他文件夹,说明模板“路径”错误导致“Provisioning Error”。
故障解决
既然模板存在路径问题,那桌面池和虚拟桌面也可能存在同样的问题。立即检查其他正常桌面池的路径,发现均是在路径“数据中心ID桌面池ID”下。说明故障桌面池一直在执行“删除”动作,可能是由于找不到桌面池的路径,导致一直显示“正在删除”。
为了测试这个想法,在数据中心节点下,新建一个和原有桌面池ID一致的文件夹。检查View管理控制台,监控问题桌面以及警告数量,发现问题桌面数量不断下降,并且在vSphere Client中看到刚才建立的桌面池ID文件夹被删除。
按照原有桌面池的名称,建立空的文件夹后,均会自动删除已经失效的桌面池和虚拟桌面,最终View管理控制台中,旧的桌面池和虚拟桌面都被成功删除(如图5)。
故障分析
此类VMware View的故障是由vCenter重装导致的连带故障,View依托vCenter的对各个桌面池和虚拟桌面进行管理。之前对虚拟机定位在哪台ESXi主机中更加敏感,对于虚拟桌面的“路径”问题确实没有过多的关注。对于View中产生的孤立桌面,除了删除虚拟桌面并且清除Composer中的数据信息外,同样需要处理记录在vCenter中的路径信息,否则容易出现这样的路径错误,导致View一直显示“正在删除”。