虚拟机在线扩容方法、装置、设备及存储介质与流程

文档序号:17661057发布日期:2019-05-15 22:22阅读:210来源:国知局
虚拟机在线扩容方法、装置、设备及存储介质与流程

本发明涉及虚拟机技术领域,具体来说,涉及一种虚拟机在线扩容方法、装置、设备及存储介质。



背景技术:

通常用户对于虚拟机都是按需购买,但是随着业务应用的增加,刚开始的虚拟机的配置就满足不了用户的需要,这个时候用户就会升级配置以及扩容。

虚拟机某个磁盘或者卷空间不够时,现有技术只能通过linux命令行的方式进行“线下扩容”:

首先,虚拟机磁盘扩容操作需要考虑到宿主机的状态,需要查看的资源内容复杂。宿主机即物理机,磁盘扩容功能是针对虚拟机的磁盘扩容,虚拟机是运行在宿主机上,每台宿主机上都运行着几十台虚拟机。虚拟机进行磁盘扩容时,扩大的磁盘大小从根本上说来自宿主机,因此需要先判断宿主机的磁盘空间是否满足需要扩容的大小。

因此,扩大某一个挂载点对应的逻辑卷,当逻辑卷的空间也不足时,需要首先扩大物理卷。物理卷也无法满足需求时,需要从虚拟机的宿主机新增一块磁盘,并对该盘进行格式化操作,生成新的物理卷,从而增加逻辑卷,实现虚拟机扩容的目的。“线下扩容”指原始的、现有的、非在线的通过命令行的方式进行磁盘扩容操作。

其次,通过命令行的方式手动给虚拟机扩容,需要登录到虚拟机、查看磁盘信息、扩充物理机磁盘大小、扩充虚拟机磁盘等,工作重复、效率低且容易出错。现有的线下扩容对操作人操作行为是没有记录的,不易对操作用户和动作进行记录和查询,不能在出现错误时及时定位查找。

另外,在平台上进行在线磁盘扩容需要先登录到虚拟机,查看磁盘信息,扩充物理机磁盘大小,扩充虚拟机磁盘等几步操作,以检查是否满足必要条件,对于不满足这些必要条件的,都无法通过平台进行操作,只能线下扩容。现有的扩容方法比较复杂,不利于用户使用,影响用户体验。



技术实现要素:

针对相关技术中的上述技术问题,本发明提出一种虚拟机在线扩容方法、装置、设备及存储介质,能够快速准确地实现虚拟机在线扩容。

为实现上述技术目的,本发明的技术方案是这样实现的:

一种虚拟机在线扩容方法,包括如下步骤:判断虚拟机操作系统类型,若为第一类型,则拉取挂载点大小信息并扩展容量,或者新增挂载点;若为第二类型,则新增挂载点。

优选地,判断虚拟机操作系统类型之前,还包括,检测虚拟机所在组配额是否满足扩容条件;和/或检测虚拟机所在物理机使用率是否满足扩容条件。

优选地,所述拉取挂载点大小信息并扩展容量,包括,判断挂载点对应的磁盘信息是否为lvm类型,若是,执行步骤s101;若否,采用新增磁盘进行扩容;s101:基于返回该挂载节点对应的lv、vg、pv信息,判断该挂载点是否存在单独的磁盘,若是,则扩大该单独磁盘的空间;若否,则判断扩容大小是否小于所有分区剩余磁盘空间大小,若否,执行步骤s102;若是,扩展vg;s102:检测所有分区剩余磁盘空间大小是否超过预设阈值,若是,则采用线下操作,若否,则新增磁盘。

优选地,所述新增挂载点,包括,判断是否存在vgapp,若不存在,则执行步骤s103;若存在,则执行步骤s104;s103:检测lvm的配置文件是否有volumelist限制;若无限制,则新增磁盘,并创建vgapp和新lv;若有限制,则判断限制中是否包括vgapp,若是,则创建vgapp和新lv;若否,则采用线下操作;s104:检测lvm的配置文件是否有volumelist限制;若无限制,则扩大vgapp和创建新lv;若有限制,则判断限制中是否包括vgapp,若是,则扩大vgapp和创建新lv;若否,则采用线下操作。

优选地,还包括利用libvirt工具获取可视磁盘信息。

优选地,所述利用libvirt工具获取可视磁盘信息,包括,获取虚拟机操作系统及版本信息;若为linux类型虚拟机,利用qemuagent获取虚拟机挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息;若为windows类型虚拟机,调用libvirt自带函数获取挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息。

优选地,所述第一类型为linux操作系统,所述第二类型为windows操作系统。

本发明的又一方面,涉及一种虚拟机在线扩容装置,包括,第一判断模块,配置用于判断虚拟机操作系统类型,若为第一类型,则拉取挂载点大小信息并扩容,或者新增挂载点;若为第二类型,则新增挂载点。

优选地,包括第二判断模块,配置用于检测虚拟机所在组配额是否满足扩容条件;和/或检测虚拟机所在物理机使用率是否满足扩容条件。

优选地,还包括,信息获取模块,配置用于获取虚拟机操作系统及版本信息;若为linux类型虚拟机,利用qemuagent获取虚拟机挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息;若为windows类型虚拟机,调用libvirt自带函数获取挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息。

本发明的又一方面,涉及一种虚拟机在线扩容设备,包括存储器,用于存储实现虚拟机在线扩容方法的程序;以及处理器,用于运行所述存储器中存储的实现虚拟机扩容方法的程序,以执行上述的方法。

本发明的又一方面,涉及一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行,以实现上述的方法。

本发明的有益效果:本发明所述的虚拟机在线扩容方法、装置、设备及存储介质,能够根据虚拟的信息自动进行虚拟机扩容,从而避免手动扩容。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明所述的虚拟机在线扩容方法的流程图;

图2是拉取挂载点大小信息并扩展容量的流程图;

图3是linux类型新增挂载点的流程图;

图4是本发明一个实施方式的虚拟机在线扩容方法的流程图;

图5是获取磁盘信息的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明所述的虚拟机在线扩容方法的流程图。

如图1所示,根据本发明所述的一种虚拟机在线扩容方法,包括如下步骤:

a.判断虚拟机操作系统类型,

若为第一类型,则进行步骤b或步骤c,

b.拉取挂载点大小信息并扩展容量;

c.新增挂载点;

若为第二类型,则进行步骤c

c.新增挂载点。

如果虚拟机操作系统不同,则扩展容量的具体方法也有区别,所以,需要根据虚拟机操作系统类型,进行不同的扩容操作。虚拟机操作系统通常为linux类型或windows类型。如果是linux类型,既可以通过拉取某个挂载点的大小来扩容,也可以新增挂载点,但是对于windows类型,则只能通过新增挂载点来扩容。因此,通过判断虚拟机操作类型,就可以确定扩容的执行方式,从而实现根据虚拟机操作系统类型的自动扩容。

图2是拉取挂载点大小信息并扩展容量的流程图。

其中,如图2所示,b.拉取挂载点大小信息并扩展容量,包括:

判断挂载点对应的磁盘信息是否为lvm(logicalvolumemanager逻辑卷管理)类型,若是,执行步骤s101;若否,采用新增磁盘进行扩容;

s101:基于返回该挂载节点对应的lv(逻辑卷)、vg(卷组)、pv(物理存储介质)信息,判断该挂载点是否存在单独的磁盘,例如vdb,若是,则扩大该单独磁盘的空间;

若否,即该挂载点全部挂载分区下,比如vdc1、vdd2,则判断扩容大小是否小于所有分区剩余磁盘空间大小,若否,执行步骤s102;若是,扩展vg;

s102:检测所有分区剩余磁盘空间大小是否超过预设阈值(例如50g),若是,说明该vm磁盘空间浪费严重,需要采用线下操作,若否,则新增磁盘。

由此,可以自动根据挂载点的情况执行合理的扩容,避免扩容出现错误或者浪费。

图3是linux类型新增挂载点的流程图。

其中,如图3所示,linux类型的c.新增挂载点,包括:

判断是否存在vgapp(卷组的一种),若不存在,则执行步骤s103;若存在,则执行步骤s104;

s103:检测lvm的配置文件是否有volumelist(卷列表)限制;

若无限制,则新增磁盘,并创建vgapp和新lv;

若有限制,则判断限制中是否包括vgapp,若是,则创建vgapp和新lv;若否,则采用线下操作;

s104:检测lvm的配置文件是否有volumelist限制;

若无限制,则扩大vgapp和创建新lv;

若有限制,则判断限制中是否包括vgapp,若是,则扩大vgapp和创建新lv;若否,则采用线下操作。

此外,windows类型的c.新增挂载点则是根据输入的磁盘大小,信件一块磁盘,比如vdc。

由此,可以避免扩容出现错误。

图4是本发明一个实施方式的虚拟机在线扩容方法的流程图。

为了保证虚拟机再现扩容的顺利进行,在判断虚拟机操作系统类型之前,还包括:

检测虚拟机所在组配额是否满足扩容条件(即,检查虚拟机当前的磁盘大小是否满足扩容所需大小);和/或

检测虚拟机所在物理机使用率是否满足扩容条件(即,检查虚拟机所在物理机的使用率是否课可以扩容,如果使用率已经超过制定标准,不能扩容)。

如图4所示,首先,检测检测虚拟机所在组配额是否满足扩容条件,

如果是,再检测虚拟机所在物理机使用率是否满足扩容条件,

如果是,则进入上述的步骤a.判断虚拟机操作系统类型,

若为第一类型,则进行步骤b或步骤c,

b.拉取挂载点大小信息并扩展容量;c.新增挂载点;

若为第二类型,则进行步骤c,

c.新增挂载点。

步骤b.拉取挂载点大小信息并扩展容量和c.新增挂载点的具体步骤如上述的图2、图3所示。

图5是获取磁盘信息的流程图。

为了在云平台上展示虚拟机磁盘信息,使用户可以试试直观了解虚拟机当前的磁盘状态,降低虚拟机的管理门槛,本发明所述的虚拟机在线扩容方法还包括利用libvirt工具获取可视磁盘信息。

具体而言,如图5所示,利用libvirt工具获取可视磁盘信息,包括:

获取虚拟机操作系统及版本信息;

若为linux类型虚拟机,利用qemuagent获取虚拟机挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息;

若为windows类型虚拟机,调用libvirt自带函数获取挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息。

其中,利用qemuagent(一个运行在虚拟机内部的普通应用程序,其目的是实现一种宿主机和虚拟机进行交互的方式)时,若存在版本更新,则在获取虚拟机挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息之前,还包括更新qemuagent版本、检验qemuagent版本更新是否成功和重启qemuagent的步骤。

其中,上述的获取磁盘信息的步骤可以根据用户的操作而开始,例如,用户进入vm配置页面,点击“获取磁盘信息”之类的按钮,启动上述获取磁盘信息的步骤。

本发明的另一方面,提供一种虚拟机在线扩容装置,包括如下功能模块:第一判断模块,配置用于判断虚拟机操作系统类型,若为第一类型,则拉取挂载点大小信息并扩容,或者新增挂载点;若为第二类型,则新增挂载点。

通过第一判断模块,可以确定询价操作系统类型,从而执行符合系统操作类型的扩容操作。

此外,该虚拟机在线扩容装置还可以包括第二判断模块,配置用于检测虚拟机所在组配额是否满足扩容条件;和/或检测虚拟机所在物理机使用率是否满足扩容条件。

通过第二判断模块,可以确定在符合扩容条件时再进行操作,避免出现错误。

此外,该虚拟机在线扩容装置还可以包括信息获取模块,配置用于获取虚拟机操作系统及版本信息;若为linux类型虚拟机,利用qemuagent获取虚拟机挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息;若为windows类型虚拟机,调用libvirt自带函数获取挂载点名称、磁盘大小、使用率、类型信息中的一种或多种信息。

通过信息获取模块,可以在云平台上展示虚拟机磁盘信息,实时直观了解虚拟机当前的磁盘状态,以可视化方式对虚拟机进行扩容操作,降低虚拟机管理门槛。

本发明的另一方面,提供一种虚拟机在线扩容设备,包括如下的硬件设备:

存储器,用于存储实现虚拟机在线扩容方法的程序;以及

处理器,用于运行所述存储器中存储的实现虚拟机扩容方法的程序,以执行上述的虚拟机在线扩容方法及其改进实施方式。

本发明的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行,以实现上述的虚拟机在线扩容方法及其改进实施方式。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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