工程师笔记︱尴尬,我竟然被这个简单步骤给难住了

戴尔易安信解决方案 2019-03-04

戴尔易安信解决方案

微信号 DellEMC_Enterprise
功能介绍 戴尔易安信解决方案专注于数字化转型中的前沿技术和解决方案,内容涵盖现代化基础架构、云计算、大数据、物联网及AI等,并通过对全球,特别是中国用户的成功实践案例分析和前沿技术解读,助力企业数字化转型,快人一步!

最近几年,云计算火热发展,VMware作为虚拟化的领导者,项目交付量也急剧攀升。通常,在将产品交付到生产环境使用之前,用户会要求对平台环境的稳定性、可靠性及功能性进行各种验证。这个环节看似简单,但如果不仔细操作,也可能会一不小心中招。

1.jpg

本文以VMware Horizon为例,讲述了在验证过程中,容易出现的问题及解决办法,并对实际操作进行了图文演示,供相关人员参考。

在我们对VMware Horizon进行投产前验证时,难免会遇到重复性的创建/删除桌面池的操作。

为了避免两次验证相互干扰,我们会将上一次验证环境还原,以释放宝贵的资源,比如:验证浮动桌面池时,要将之前创建的专有桌面池删除;创建RDS池时,要将浮动桌面池删除等等。

通常来讲,创建/删除虚拟桌面池是最简单常用的操作,一般不会出问题。然而,闯过大风大浪的我们,却往往在这个操作上翻船……

2.png

下面,笔者就实际演示一下,在创建/删除虚拟桌面池的操作过程中,会遇到哪些问题,并提供相应解决办法。

操作环境

桌面虚拟化版本:VMware Horizon 7.4

服务器虚拟化版本VMware vSphere 6.5 U2

数据库类型:Microsoft SQL Server 2008 R2 EXPRESS

操作内容:一个链接克隆桌面池,内含1个桌面

3.gif

错误操作

1. 将链接克隆桌面池,对应在 vCenter 内的虚拟机文件夹和资源池,挪动层级和位置

2. 直接在 vCenter 内删除了链接克隆的虚拟机

3. 在 View Administrator 管理界面中,再次删除链接克隆桌面池。

故障内容

1. View Administrator 管理界面中,链接克隆桌面池状态一直为<正在删除>,无法编辑,基本上所有操作都被禁用

2. vCenter 中链接克隆的虚拟机已被删除,但是View Administrator 【资源】-【计算机】-【vCenter虚拟机】内的1台虚拟机状态一直为<正在删除 缺少……>,之后变为<错误 缺少……>, 无法执行任何操作。

4.jpg

解决方案

1. 使用 ViewDbChk 命令;

2. 进入 Horizon View 连接服务器 Windows操作系统,打开 cmd ;

3. 进入目录 C:Program FilesVMwareVMware ViewServer oolsin;

4. 运行 viewdbchk.cmd --scanMachines --limit 100, 期间会让你输入 View配置的 vCenter密码 和 Composer密码。

实际操作

这里,我们运用上面的方法论,对遇到的问题进行实操处理。

初始错误状态如图▼:

5.jpg

在我的实施环境中,这个删除动作一直运行了4天。每次失败后都重试,数据库中的错误事件就会一直增加,如果此时数据库的空间比较小,你可能会面临数据库被错误事件日志撑爆的风险。

为了避免上述数据库被撑爆的风险发生,无论如何都不能任其发展下去,依据前述解决办法,可以依次进行如下操作

1.运行 viewdbchk.cmd ,并输入vCenter及Composer的相应密码▼。

6.jpg

注:Viewdbchk.cmd这条命令是为了检查view数据库与vCenter及Composer数据库是否一致。

2.一旦发现View数据库与vCenter及Composer数据库不一致,则将错误状态的虚拟桌面池及虚拟机列出▼。

7.jpg

8.jpg

3.找到错误的虚拟桌面池及虚拟机之后,输入<yes>进行处理,工具开始自动执行自动删除操作▼。

9.png

4.使用工具清除所有错误状态的虚拟机后,再次执行命令,显示错误状态虚拟机数量为0▼。

10.jpg

5.到Horizon View的GUI界面,可以看到,出问题的桌面池已经不存在了,Perfect▼!

11.png

结 语

通过上述排查,相信能帮助大家解决这些会造成困扰的问题。

那么,为什么会出现数据库不一致的问题?

这是因为虚拟桌面创建的时候,不仅View中有相应信息,而且vCenter,Composer,AD域中都有关联信息。

如果仅从vCenter中删除虚拟机,那么其余几处还是保留着关联信息的。当再从View中删除虚拟机时,由于找不到其他组件(vCenter,Composer,AD等)中的关联信息,无法执行一个完整的删除过程,所以就出现了“不停地重复执行删除操作,一直报错”的状况。

所以,在部署实施VMware Horizon时,我们对虚拟桌面的操作一般都要在VMware Horizon View中进行。

戴尔易安信让您切记:

对象从哪里创建,就从哪里删除!

对象从哪里创建,就从哪里删除!

对象从哪里创建,就从哪里删除!

1111.png

往期回顾

顶级存储专家谈2019存储趋势

高手对决,胜负尽在毫秒间

强子,我兄弟被勒索了!