最近几年,云计算火热发展,VMware作为虚拟化的领导者,项目交付量也急剧攀升。通常,在将产品交付到生产环境使用之前,用户会要求对平台环境的稳定性、可靠性及功能性进行各种验证。这个环节看似简单,但如果不仔细操作,也可能会一不小心中招。
本文以VMware Horizon为例,讲述了在验证过程中,容易出现的问题及解决办法,并对实际操作进行了图文演示,供相关人员参考。
在我们对VMware Horizon进行投产前验证时,难免会遇到重复性的创建/删除桌面池的操作。
为了避免两次验证相互干扰,我们会将上一次验证环境还原,以释放宝贵的资源,比如:验证浮动桌面池时,要将之前创建的专有桌面池删除;创建RDS池时,要将浮动桌面池删除等等。
通常来讲,创建/删除虚拟桌面池是最简单常用的操作,一般不会出问题。然而,闯过大风大浪的我们,却往往在这个操作上翻船……
下面,笔者就实际演示一下,在创建/删除虚拟桌面池的操作过程中,会遇到哪些问题,并提供相应解决办法。
桌面虚拟化版本:VMware Horizon 7.4 服务器虚拟化版本VMware vSphere 6.5 U2 数据库类型:Microsoft SQL Server 2008 R2 EXPRESS 操作内容:一个链接克隆桌面池,内含1个桌面 1. 将链接克隆桌面池,对应在 vCenter 内的虚拟机文件夹和资源池,挪动层级和位置; 2. 直接在 vCenter 内删除了链接克隆的虚拟机; 3. 在 View Administrator 管理界面中,再次删除链接克隆桌面池。 1. View Administrator 管理界面中,链接克隆桌面池状态一直为<正在删除>,无法编辑,基本上所有操作都被禁用; 2. vCenter 中链接克隆的虚拟机已被删除,但是View Administrator 【资源】-【计算机】-【vCenter虚拟机】内的1台虚拟机状态一直为<正在删除 缺少……>,之后变为<错误 缺少……>,无法执行任何操作 。 1. 使用 ViewDbChk 命令; 2. 进入 Horizon View 连接服务器 Windows操作系统,打开 cmd ; 3. 进入目录 C:Program FilesVMwareVMware ViewServer oolsin; 4. 运行 viewdbchk.cmd --scanMachines --limit 100, 期间会让你输入 View配置的 vCenter密码 和 Composer密码。 这里,我们运用上面的方法论,对遇到的问题进行实操处理。 初始错误状态如图▼: 在我的实施环境中,这个删除动作一直运行了4天。每次失败后都重试,数据库中的错误事件就会一直增加,如果此时数据库的空间比较小,你可能会面临数据库被错误事件日志撑爆的风险。 为了避免上述数据库被撑爆的风险发生,无论如何都不能任其发展下去,依据前述解决办法,可以依次进行如下操作: 1.运行 viewdbchk.cmd ,并输入vCenter及Composer的相应密码▼。 注:Viewdbchk.cmd这条命令是为了检查view数据库与vCenter及Composer数据库是否一致。 2.一旦发现View数据库与vCenter及Composer数据库不一致,则将错误状态的虚拟桌面池及虚拟机列出▼。 3.找到错误的虚拟桌面池及虚拟机之后,输入<yes>进行处理,工具开始自动执行自动删除操作▼。 4.使用工具清除所有错误状态的虚拟机后,再次执行命令,显示错误状态虚拟机数量为0▼。 5.到Horizon View的GUI界面,可以看到,出问题的桌面池已经不存在了,Perfect▼!
通过上述排查,相信能帮助大家解决这些会造成困扰的问题。
那么,为什么会出现数据库不一致的问题?
这是因为虚拟桌面创建的时候,不仅View中有相应信息,而且vCenter,Composer,AD域中都有关联信息。
如果仅从vCenter中删除虚拟机,那么其余几处还是保留着关联信息的。当再从View中删除虚拟机时,由于找不到其他组件(vCenter,Composer,AD等)中的关联信息,无法执行一个完整的删除过程,所以就出现了“不停地重复执行删除操作,一直报错”的状况。
所以,在部署实施VMware Horizon时,我们对虚拟桌面的操作一般都要在VMware Horizon View中进行。
对象从哪里创建,就从哪里删除!
对象从哪里创建,就从哪里删除!
对象从哪里创建,就从哪里删除!
以上就是本期工程师笔记的所有内容了,希望可以帮到大家。