一种基于Ceph的虚拟机高可用实现方法及系统技术方案

技术编号:19067898 阅读:101 留言:0更新日期:2018-09-29 14:53
本发明专利技术公开了一种基于Ceph的虚拟机高可用实现方法及系统,涉及云计算技术领域。方法包括以下步骤:控制节点服务器向所有计算节点服务器实时发送虚拟机高可用配置信息;每个计算节点服务器实时获取镜像的排它锁后,记录使用该镜像的虚拟机的第一心跳时间戳;若不能获取镜像的排它锁且使用该镜像的虚拟机的第一心跳超时,则关闭该虚拟机;同时或之后,控制节点服务器定时打破已被获取的镜像的排它锁,并记录使用该镜像的虚拟机的第二心跳时间戳;当镜像的排它锁未被获取且使用该镜像的虚拟机的第二心跳超时时,将使用该镜像的虚拟机调度到其他计算节点服务器重新启动。本发明专利技术通过检测虚拟机的心跳实现虚拟机高可用。

【技术实现步骤摘要】
一种基于Ceph的虚拟机高可用实现方法及系统
本专利技术涉及云计算
,具体是涉及一种基于Ceph的虚拟机高可用实现方法及系统。
技术介绍
在云计算数据中心,虚拟机通常运行在物理服务器上,当物理服务器断电或发生其他故障时,运行在其上的虚拟机也会被关闭,导致虚拟机中运行的用户业务被意外中断。如果要保证用户业务被意外中断后能够自动恢复,则需要实时监控虚拟机的状态,在物理服务器发生故障时,将其上的虚拟机转移到其他物理服务器上重新启动,这称为虚拟机高可用。在传统的数据中心,虚拟机高可用需要使用共享存储来存放虚拟机的磁盘文件,使得所有的物理服务器都能访问到共享存储上的磁盘文件,以便在检测到物理服务器断电后,其他正常运行的物理服务器能够从共享存储上读取虚拟机的磁盘文件并重新启动虚拟机。为了实时检测虚拟机的状态,需要引入心跳检测机制,当检测不到虚拟机的心跳时,说明该虚拟机已经关闭,从而选择一台正在运行的物理服务器重新启动该虚拟机。基于共享存储的虚拟机心跳检测机制通常如下:在共享存储上分配一个锁空间文件,为每个物理服务器分配该锁空间文件的一块区域作为该物理服务器的心跳锁,每个物理服务器定时将时间戳写入其对应的心跳锁。在共享存储上为每个虚拟机磁盘分配一个资源文件,并给每个物理服务器在该资源文件中预留一块区域作为资源锁,当虚拟机在物理服务器上启动前需要先查看该虚拟机的资源文件是否已经被锁定(即查看资源文件中是否存在一个资源锁),如果未锁定,将本物理服务器的资源锁写入虚拟机的资源文件中,并启动虚拟机;如果已经锁定,则查看该资源锁是否过期(即查看持有该资源锁的物理服务器的心跳锁是否过期),如果资源锁未过期,则不能启动虚拟机;如果资源锁过期,则抢占该资源锁,将本物理服务器的资源锁写入虚拟机的资源文件中,并启动虚拟机。基于共享存储虚拟机高可用本质在于运行虚拟机的物理服务器负责锁定该虚拟机的资源文件,并定时更新其心跳锁,当更新心跳锁失败时关闭虚拟机。控制节点服务器负责检测虚拟机资源文件里的资源锁是否过期,当资源锁过期时将该虚拟机调度到其他物理服务器上启动。随着分布式存储的普及,愈来愈多的云计算数据中心采用分布式存储替代共享存储。分布式存储的特性在于将虚拟机磁盘文件分成很多个对象,每个对象有n个副本分散存储到n个物理服务器的磁盘上(n通常为3)。在分布式存储上创建锁空间文件和资源文件,也会被分成很多对象,并分散存储到n个物理服务器磁盘上,并且锁空间文件、资源文件和虚拟机磁盘文件的对象不一定被映射到相同的物理服务器磁盘上,当心跳锁的副本可访问时,并不能代表虚拟机磁盘文件的副本可访问,因此无法使用共享存储的方案,通过检测锁空间文件和资源文件来实现虚拟机高可用。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于Ceph的虚拟机高可用实现方法及系统,通过每个计算节点服务器实时获取本地的每个虚拟机的镜像的排它锁,并为每个虚拟机建立第一心跳,而控制节点服务器定时打破已被获取的镜像的排它锁,并为每个虚拟机建立第二心跳,从而通过检测虚拟机的心跳实现虚拟机高可用。本专利技术提供一种基于Ceph的虚拟机高可用实现方法,用于云计算数据中心,云计算数据中心包括一个控制节点服务器和至少两个计算节点服务器,所述方法包括以下步骤:控制节点服务器向所有计算节点服务器实时发送虚拟机高可用配置信息;每个计算节点服务器实时读取本地的每个虚拟机的镜像的排它锁状态,获取镜像的排它锁后,记录使用该镜像的虚拟机的第一心跳时间戳;若不能获取镜像的排它锁且使用该镜像的虚拟机的第一心跳超时,则关闭该虚拟机;同时或之后,控制节点服务器定时读取所有虚拟机的镜像的排它锁状态,打破已被获取的镜像的排它锁,并记录使用该镜像的虚拟机的第二心跳时间戳;当镜像的排它锁未被获取且使用该镜像的虚拟机的第二心跳超时时,将使用该镜像的虚拟机调度到其他计算节点服务器重新启动;每个计算节点服务器检测被调度到本地启动的虚拟机,并记录该虚拟机的第一心跳时间戳。在上述技术方案的基础上,计算节点服务器获取镜像的排它锁的方法为:通过Ceph提供的排它锁信息读取接口读取镜像的排它锁并解析得到排它锁信息,当排它锁信息为空时,通过Ceph提供的排它锁获取接口将排它锁信息中的cookie设置为本计算节点服务器的cookie。在上述技术方案的基础上,每个计算节点服务器检测被调度到本地启动的虚拟机,并记录该虚拟机的第一心跳时间戳包括:通过Ceph提供的排它锁信息读取接口读取镜像的排它锁并解析得到排它锁信息,当排它锁信息不为空且排它锁信息中的cookie为本计算节点服务器的cookie时,记录该虚拟机的第一心跳时间戳。在上述技术方案的基础上,所述方法还包括:当虚拟机的镜像的排它锁信息中的cookie不同于该计算节点服务器的cookie时,视为错误运行的虚拟机,计算节点服务器关闭该虚拟机。在上述技术方案的基础上,控制节点服务器打破已被获取的镜像的排它锁的方法为:通过Ceph提供的排它锁信息读取接口读取镜像的排它锁并解析得到排它锁信息,当排它锁信息中的cookie为使用该镜像的虚拟机所在计算节点服务器的cookie时,通过Ceph提供的排它锁打破接口清空排它锁信息。在上述技术方案的基础上,所述方法还包括:当虚拟机的镜像的排它锁信息中的cookie不同于该虚拟机所在计算节点服务器的cookie时,视为错误运行的虚拟机,控制节点服务器通知计算节点服务器关闭该虚拟机。在上述技术方案的基础上,所述第一心跳的间隔时间和所述第二心跳的间隔时间相同或者不同。在上述技术方案的基础上,所述虚拟机高可用配置信息包括虚拟机ID、虚拟机的镜像名和Ceph存储池信息。本专利技术还提供一种使用上述方法的基于Ceph的虚拟机高可用实现系统:控制节点服务器包括虚拟机高可用服务端程序,每个计算节点服务器均包括虚拟机高可用客户端程序,虚拟机高可用服务端程序包括服务端同步模块、服务端排它锁监测模块和服务端虚拟机心跳管理模块,每个虚拟机高可用客户端程序均包括客户端同步模块、客户端排它锁监测模块和客户端虚拟机心跳管理模块;服务端同步模块用于向所有客户端同步模块实时发送虚拟机高可用配置信息;每个客户端排它锁监测模块用于实时读取本地的每个虚拟机的镜像的排它锁状态,获取镜像的排它锁后,向本地的客户端虚拟机心跳管理模块发送第一心跳信息;若不能获取镜像的排它锁且使用该镜像的虚拟机的第一心跳超时,则关闭该虚拟机;还用于检测被调度到本地启动的虚拟机;每个客户端虚拟机心跳管理模块用于根据接收的第一心跳信息更新虚拟机的第一心跳时间戳,还用于更新被调度到本地启动的虚拟机的第一心跳时间戳;服务端排它锁监测模块用于定时读取所有虚拟机的镜像的排它锁状态,打破已被获取的镜像的排它锁,向服务端虚拟机心跳管理模块发送第二心跳信息;当镜像的排它锁未被获取且使用该镜像的虚拟机的第二心跳超时时,将使用该镜像的虚拟机调度到其他计算节点服务器重新启动;服务端虚拟机心跳管理模块用于根据接收的心跳信息更新该虚拟机的第二心跳时间戳。与现有技术相比,本专利技术利用分布式存储本身提供的排它锁机制,通过每个计算节点服务器实时获取本地的每个虚拟机的镜像的排它锁,并为每个虚拟机建立第一心跳,而控制节点服务器定时打破已被本文档来自技高网
...

【技术保护点】
1.一种基于Ceph的虚拟机高可用实现方法,用于云计算数据中心,云计算数据中心包括一个控制节点服务器和至少两个计算节点服务器,其特征在于,所述方法包括以下步骤:控制节点服务器向所有计算节点服务器实时发送虚拟机高可用配置信息;每个计算节点服务器实时读取本地的每个虚拟机的镜像的排它锁状态,获取镜像的排它锁后,记录使用该镜像的虚拟机的第一心跳时间戳;若不能获取镜像的排它锁且使用该镜像的虚拟机的第一心跳超时,则关闭该虚拟机;同时或之后,控制节点服务器定时读取所有虚拟机的镜像的排它锁状态,打破已被获取的镜像的排它锁,并记录使用该镜像的虚拟机的第二心跳时间戳;当镜像的排它锁未被获取且使用该镜像的虚拟机的第二心跳超时时,将使用该镜像的虚拟机调度到其他计算节点服务器重新启动;每个计算节点服务器检测被调度到本地启动的虚拟机,并记录该虚拟机的第一心跳时间戳。

【技术特征摘要】
1.一种基于Ceph的虚拟机高可用实现方法,用于云计算数据中心,云计算数据中心包括一个控制节点服务器和至少两个计算节点服务器,其特征在于,所述方法包括以下步骤:控制节点服务器向所有计算节点服务器实时发送虚拟机高可用配置信息;每个计算节点服务器实时读取本地的每个虚拟机的镜像的排它锁状态,获取镜像的排它锁后,记录使用该镜像的虚拟机的第一心跳时间戳;若不能获取镜像的排它锁且使用该镜像的虚拟机的第一心跳超时,则关闭该虚拟机;同时或之后,控制节点服务器定时读取所有虚拟机的镜像的排它锁状态,打破已被获取的镜像的排它锁,并记录使用该镜像的虚拟机的第二心跳时间戳;当镜像的排它锁未被获取且使用该镜像的虚拟机的第二心跳超时时,将使用该镜像的虚拟机调度到其他计算节点服务器重新启动;每个计算节点服务器检测被调度到本地启动的虚拟机,并记录该虚拟机的第一心跳时间戳。2.如权利要求1所述的基于Ceph的虚拟机高可用实现方法,其特征在于,计算节点服务器获取镜像的排它锁的方法为:通过Ceph提供的排它锁信息读取接口读取镜像的排它锁并解析得到排它锁信息,当排它锁信息为空时,通过Ceph提供的排它锁获取接口将排它锁信息中的cookie设置为本计算节点服务器的cookie。3.如权利要求2所述的基于Ceph的虚拟机高可用实现方法,其特征在于,每个计算节点服务器检测被调度到本地启动的虚拟机,并记录该虚拟机的第一心跳时间戳包括:通过Ceph提供的排它锁信息读取接口读取镜像的排它锁并解析得到排它锁信息,当排它锁信息不为空且排它锁信息中的cookie为本计算节点服务器的cookie时,记录该虚拟机的第一心跳时间戳。4.如权利要求3所述的基于Ceph的虚拟机高可用实现方法,其特征在于,所述方法还包括:当虚拟机的镜像的排它锁信息中的cookie不同于该计算节点服务器的cookie时,视为错误运行的虚拟机,计算节点服务器关闭该虚拟机。5.如权利要求1所述的基于Ceph的虚拟机高可用实现方法,其特征在于,控制节点服务器打破已被获取的镜像的排它锁的方法为:通过Ceph提供的排它锁信息读取接口读取镜像的排它锁并解析得到排它锁信息...

【专利技术属性】
技术研发人员:阮泽林谢一
申请(专利权)人:武汉噢易云计算股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1