加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

批量检查和修复Windows虚拟机的方法

发布时间:2018-11-04 15:06:35 所属栏目:空间 来源:燕杰 李京龙 蔡冠伟
导读:副标题#e# 【新产品上线啦】51CTO播客,随时随地,碎片化学习 01 - 系统概况 我们内部有一个规模不大的私有云,承载内部应用和测试系统,目前运行了超过1000台虚拟机。采用技术方案为KVM虚拟化+Sheepdog分布式块存储: (1)运行虚拟机的计算节点为CentOS 6.5
副标题[/!--empirenews.page--] 【新产品上线啦】51CTO播客,随时随地,碎片化学习

01 - 系统概况

我们内部有一个规模不大的私有云,承载内部应用和测试系统,目前运行了超过1000台虚拟机。采用技术方案为KVM虚拟化+Sheepdog分布式块存储:

(1)运行虚拟机的计算节点为CentOS 6.5,虚拟化技术采用KVM,虚拟机管理采用开源OpenNebula方案(选择OpenNebula主要是历史沿袭,日常管理需求简单,基本够用)

批量检查和修复Windows虚拟机的方法

(2)虚拟机的镜像,运行在后端分布式块存储系统上,此系统是基于开源的Sheepdog架构。

批量检查和修复Windows虚拟机的方法

02 - 存在的问题与解决思路

2.1 - 存在问题

由于虚拟机镜像都承载在分布式块存储系统中,虚拟机的所有存储IO都会经过分布式存储系统。在此情况下,一旦分布式块存储系统异常(如承载网络较大规模故障、存储系统集群机制异常等),承载虚拟机的计算节点与存储系统之间的存储IO出现阻塞,进而虚拟机的存储IO也出现阻塞,虚拟机操作系统(特别是Windows操作系统的虚拟机)会出现异常,如Windows系统蓝屏、系统自检、进入检查模式等各种情况。即便存储系统后续恢复正常,这些虚拟机很可能依然处于异常状态。

虚拟机异常,一般有很多常规办法来发现,如:

(1) ping检查。但虚拟机所属应用维护人员可能会禁止ping,或在安全组上做限制。

(2)部署zabbix、nagios等监控系统的agent进行异常监控。但虚拟机所属应用维护人员可能会关闭或卸载agent。

(3)通过计算节点的qemu-kvm的一些工具来判断虚拟机文件系统是否可以写入。但这个方式涉及“侵入”虚拟机,属于严厉禁止的操作。

可以看出上述方法有两个问题:

(1)如果虚拟机归属不同使用人,每个使用人有不同运维风格,习惯或管理要求(如禁止ping或关闭agent客户端),使用常规方法来判断出问题的虚拟机会有疏漏)

(2)无法判断虚拟机(特别是Windows虚拟机)的具体异常情况,如蓝屏、系统自测等。

因此,最稳妥的方式是VNC工具连接到各个虚拟机,检查虚拟机屏幕信息判断其状态,再根据状态一个个修复(VNC虽然可以看到虚拟机屏幕,但是虚拟机都是有登陆账号和登陆密码的,检查人员并没有这些账号密码,因此不会“侵入”虚拟机)。但是修复过程非常繁琐,核查和修订的步骤主要如下:

核查操作:

(1)登陆到某台计算节点,VNC某台虚拟机,通过VNC界面查看其状态(蓝屏、自检等)。虚拟机数量多的情况下,需要多人分工进行开展,通过表格进行记录。

(2)汇总各个检查人员的检查结果表格。

修复操作:

(3)按照表格进行多人分工,各自负责部分虚拟机的修复,如下述4-6步骤。

(4)尝试人动重启虚拟机。

(5)如果依旧蓝屏或其他异常,则需要手动挂载Win PE系统尝试修复。需要手动将Win PE的iso文件拷贝至计算节点,手动修改虚拟机配置文件使其挂载Win PE的iso文件,重启虚拟机进行Win PE模式然后手动进行修复。

(6)修复完毕重启,如果系统依旧无法登录,且虚拟机使用人建议重装操作系统,则需要将虚拟机重置重装。

可以看出,整个过程都是手工对每台虚拟机分别操作,耗时长,效率低。

2.2 - 解决思路

上述手工操作步骤中,VNC配置、虚拟机汇总信息表格、虚拟机配置、Win PE iso镜像,都是文件形式,都可以通过脚本进行批量生成、修改,具备自动化的基础。

将上述手工操作步骤脚本化,形成如下批量核查和修复的脚本工具:

(1)能够自动生成待核查的虚拟机信息excel表格

(2) 能够批量VNC截图虚拟机的屏幕状态,人工识别和判断虚拟机屏幕的状态。

(3)对于需要修复,并能一键挂载Win PE镜像到虚拟机上进行引导修复或重装操作。

03- 批量核查和修复虚拟机的具体方法

3.1 - 工具实现框架

批量检查和修复Windows虚拟机的方法

在生产环境里,我们已经用了Saltstack作为配置工具,基于Saltstack的批量操作与配置能力,我们在统一脚本服务器上,制作了对应的shell脚本和python脚本来实现具体功能,并用Linux的Diaglog进行简单汇总展示。如下图:

批量检查和修复Windows虚拟机的方法

3.2 - 一键导出虚拟机

根据集群影响范围及虚拟机数量,按照IP地址顺序,导出所有可能存在问题的虚拟机到excel,导出来后可以进行过滤与编辑,快速进行多人分工核查。

在我们生成环境,同一网段对应的是同一个业务系统,因此我们一般根据虚拟机数量和业务系统(网段)进行分工。

批量检查和修复Windows虚拟机的方法

批量检查和修复Windows虚拟机的方法


3.3 - 虚拟机批量VNC截屏按键检查

根据3.2步骤过滤出的虚拟机IP地址信息,获取虚拟机所在物理机及VNC端口号,使用VNCdotool工具调用虚拟机VNC接口进行按键测试,并进行虚拟机屏幕截图。

根据虚拟机IP地址信息,生成一个已经设定好模板的checklist表格(csv格式),便于记录和汇总后面步骤中人工判断的信息。表格主要字段为: IP、主机名、虚拟机ID、业务系统联系人、第一次检查结果,引导修复后状态,重装后状态。

将截图信息和表格一并打包下载到本地。

具体步骤如下:

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读