虚拟机命令行管理方法及装置与流程

文档序号:14835448发布日期:2018-06-30 12:12阅读:353来源:国知局
虚拟机命令行管理方法及装置与流程

本发明涉及计算机软件技术领域,特别涉及一种命令行管理工具。



背景技术:

虚拟机技术是搭建云平台服务器的支撑技术,通过在物理机上安装虚拟机来搭建云平台。但是,目前对虚拟机的生命周期管理大多依赖云平台和libvirt组件,现有管理方法存在一些不足,如:运维人员往往不熟悉开发人员所开发系统的产品逻辑,一旦云平台出现短时间内出现故障无法快速恢复情况下无法对虚拟资源生命周期进行管理,基础资源交付时效降低;对虚拟机资源进行管理的libvirt组件更倾向于管理单台物理机,没有统一入口管理统一集群中所有硬件设备上虚拟资源。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种便捷、高效、稳定的虚拟机管理方法。

第一方面,本申请实施例提供了一种虚拟机命令行管理方法,包括:接收输入的命令行;获取所述命令行指定的虚拟机及相应物理机的状态信息;根据所述状态信息判断所述虚拟机是否处于所述命令行期望的状态:是,则调用系统函数库对所述虚拟机执行对应于所述命令行的操作。

第二方面,本申请实施例提供了一种虚拟机命令行管理装置,包括:命令接收单元,配置用于接收输入的命令行;信息获取单元,配置用于获取所述命令行指定的虚拟机及相应物理机的状态信息;状态匹配单元,配置用于根据所述状态信息判断所述虚拟机是否处于所述命令行期望的状态;命令执行单元,配置用于调用系统函数库对所述虚拟机执行对应于所述命令行的操作。虚拟机处理单元,配置用于命令行调用libvirt对虚拟机进行处理。

本申请实施例提供的虚拟机命令行管理方法及工具通过查找数据库表和tcp协议连接libvirt获取虚拟机状态信息,并进一步由命令行调用libvirt对虚拟机进行管理。按照本申请实施例的技术方案,系统管理员可以不依赖大型云平台系统,直接借助linux命令行管理工具即可对虚拟机生命周期进行管理,同时,还解决了大型云平台使用agent管理物理机所带来的不稳定,不适合小型集群管理的问题,以及软件操作可读性问题,系统管理员随时使用-h即可获取每条命令详细解析,操作人员可一键初始化物理机,将物理机加入资源池,简化了操作,缩减了运维人员工作量。

附图说明

图1为虚拟机信息获取(vminfo)实现原理图;

图2为虚拟机开机(start)实现原理图;

图3为虚拟机关机(stop)实现原理图;

图4为虚拟机vnc地址获取(vnc_address)实现原理图;

图5为虚拟机内存大小修改(vmemchange)实现原理图;

图6为虚拟机cpu个数修改(vcpuchange)实现原理图;

图7为虚拟机硬盘大小修改(vcpuchange)实现原理图;

图8为虚拟机删除(vmdel)实现原理图;

图9为虚拟机迁移(migrate)实现原理图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

诚如背景技术所述的,现有虚拟机管理方法大多依赖云平台,云平台一旦出现故障,操作人员无法对虚拟资源生命周期进行管理,基础资源交付时效降低,严重的甚至造成文件丢失,且这种管理方法操作步骤繁杂,费时费力。

鉴于现有技术的上述缺陷,本申请实施例提供了一种虚拟机命令行管理方案。通过查找数据库表和tcp协议连接libvirt获取虚拟机状态信息,判断虚拟机状态信息与请求对应的预设状态是否匹配,若匹配则进一步由命令行调用libvirt对虚拟机根据用户请求进行管理,从而高效地对虚拟机进行管理。下面将结合流程图来描述本申请实施例的方法。

参考图1,其示出了根据本申请一个实施例的虚拟机信息获取实现原理图。

如图1所示,虚拟机信息获取包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机uuid、虚拟机状态、虚拟机资源信息以列表形式返回用户。

图2示出了虚拟机开机实现原理图。如图2所示,虚拟机开机包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于关机状态才允许命令行调用libvirt开启虚拟机;

S4、将虚拟机启动操作结果以列表形式返回用户。

图3示出了虚拟机关机实现原理图。如图3所示,虚拟机关机包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于开机状态才允许命令行调用libvirt关闭虚拟机;

S4、将虚拟机关闭操作结果以列表形式返回用户。

图4示出了虚拟机vnc地址获取实现原理图。如图4所示,虚拟机vnc地址获取方法包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于开机状态才允许命令行调用libvirt获取虚拟机vnc端口;

S4、将虚拟机vnc地址加端口以列表形式返回用户。

图5示出了虚拟机内存大小修改实现原理图。如图5所示,虚拟机内存修改包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于关机状态才允许命令行调用libvirt修改虚拟机内存大小;

S4、判断用户输入内存是否小于当前内存,是则不继续执行,否则继续S5;

S5、调用libvirt修改虚拟机配置文件中内存大小,更新数据库中虚拟机内存大小;

S6、返回用户操作结果。

图6示出了虚拟机cpu个数修改实现原理图。如图6所示,虚拟机cpu个数修改包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于开机或者关机状态才允许命令行调用libvirt修改虚拟机cpu个数;

S4、判断用户输入cpu个数是否等于当前cpu个数,等于则不继续执行,否则继续S5;

S5、调用libvirt修改虚拟机配置文件中cpu个数,更新数据库中虚拟机cpu个数;

S6、返回用户操作结果。

图7示出了虚拟机硬盘大小修改实现原理图。如图7所示,虚拟机硬盘大小修改包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于开机状态才允许命令行调用libvirt修改虚拟机磁盘大小;

S4、判断用户输入磁盘大小是否为空或者小于已有大小,是则不继续执行,否则继续S5;

S5、调用libvirt扩容虚拟机磁盘到指定大小,更新数据库中虚拟机磁盘大小;

S6、返回用户操作结果。

图8示出了虚拟机删除实现原理图。如图8所示,虚拟机删除包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、使用tcp连接libvirt获取虚拟机状态,虚拟机处于关机状态才允许命令行调用libvirt删除虚拟机;

S4、判断虚拟机是否有快照,有快照不允许继续执行到S5;

S5、调用libvirt删除虚拟机每一块硬盘、删除虚拟存储池、undefined虚拟机、删除数据库中虚拟机记录;

S6、返回用户操作结果。

图9示出了虚拟机迁移实现原理图。如图9所示,虚拟机迁移包括以下步骤:

S1、命令行管理工具首先会对用户入参进行校验,对于不合法入参给出友好提示;

S2、根据用户输入的虚拟机ip查找数据库中对应虚拟机名称、所在物理机ip;

S3、判断用户输入目的物理机ip是否与当前虚拟机所在物理机ip一样,是则回复失败友好提示,否则到S4;

S4、使用libvirt判断目的物理机是否存在,是则继续执行到S5;

S5、判断虚拟机虚拟机是否有镜像,否则调用libvirt执行虚拟机热迁移,迁移完成后在源物理机上undefined虚拟机;

S6、返回用户操作结果。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1