本发明涉及虚拟化动态迁移技术领域,具体涉及一种基于汉明码的虚拟机动态迁移数据纠错方法及系统。
背景技术:
云计算可以为用户提供灵活增减资源、按需付费等特色服务,成为新时代的热门技术。而虚拟化技术是云计算的基础核心,在虚拟化环境中云计算才成为可能,所以虚拟化技术无疑成为了研究热点。虚拟化架构主要由宿主机、虚拟化层和虚拟机组成,其中虚拟机动态迁移技术是在保持虚拟机为用户提供持续服务的状态下,从一个虚拟平台宿主机迁移到另一个虚拟平台宿主机中,为资源的整合和动态调度带来了巨大便利。随着越来越多的用户使用,虚拟化迁移技术中的数据可靠性问题随之而来。
汉明码(hammingcode),是在通信领域的一种线性预编码,汉明码在传输的消息流中插入校验码,以用于纠错。虚拟机的动态迁移中出现攻击者恶意破坏迁移数据或网络出现的网络波动导致的迁移数据错误的问题。
技术实现要素:
针对虚拟机的动态迁移中出现攻击者恶意破坏迁移数据或网络出现的网络波动导致的迁移数据错误的问题。本发明提供一种基于汉明码的虚拟机动态迁移数据纠错方法及系统。
本发明的技术方案是:
一方面,本发明技术方案提供一种基于汉明码的虚拟机动态迁移数据纠错方法,包括如下步骤:
迁出端对将要迁移的数据进行监控,将迁移数据在未打包发送到网络之前,通过编码模块用汉明码进行编码;
迁入端监听接收的数据,通过解码模块将收到的迁移数据包解码并对迁移过程中数据包出现的错误进行纠错。
进一步的,为了降低迁移成本,使整个系统的资源调度更加合理有效,进行虚拟机迁移之前还包括:
将虚拟机静态时间与预先设定的迁移时间阈值进行比较,若所述静态时间大于预先设定的迁移时间阈值,进行所述待迁移虚拟机的迁移;其中,所述静态时间为预估的所述待迁移虚拟机从本次迁移到下次迁移之间的时间段。所述迁移时间阈值根据虚拟机在历史时间段内的业务特性预先设定的。
进一步的,若所述静态时间小于预先设定的迁移时间阈值,且静态时间与预先设定的迁移时间阈值的比值大于随机数n,进行所述待迁移虚拟机的迁移,其中,0<n≤1
进一步的,若所述静态时间小于预先设定的迁移时间阈值,且静态时间与预先设定的迁移时间阈值的比值小于随机数n,禁止进行所述待迁移虚拟机的迁移。
进一步的,将虚拟机静态时间与预先设定的迁移时间阈值进行比较的步骤之前,还包括:
确定虚拟机静态时间,其中,确定虚拟机静态时间包括:
获取每台虚拟机在历史时间段内稳定状态的历史数据;
分析历史数据确定不同时刻处于稳定状态的虚拟机的比例;
将第一时刻和第二时刻之间的时间段确定为所述待迁移虚拟机的静态时间;
其中,第一时刻为处于稳定状态的虚拟机的比例第一次大于设定比例阈值的时刻;
第二时刻为处于稳定状态的虚拟机的比例最后一次大于设定比例阈值的时刻。
进一步的,为了解决迁移出现异常时导致虚拟机不可用时间较长的问题,该方法还包括:当虚拟机迁移时,对虚拟机的状态进行监测;所述的对虚拟机的状态进行监测的步骤包括:
获取虚拟机的迁移过程中产生的迁移进度状态信息;
根据迁移进度状态信息判断迁移过程是否正常。
进一步的,所述的根据迁移进度状态信息判断迁移过程是否正常的步骤中包括:
当检测到虚拟机迁移过程发生异常时,发送指令将检测到的迁移异常的虚拟机重启;同时对虚拟机的重启过程进行监控,当所述虚拟机重启失败且所述虚拟机的状态异常时,根据相关日志对虚拟机进行修复,并重新发送虚拟机重启指令;当检测到虚拟机重启成功后,继续进行虚拟机的迁移过程。降低了虚拟机迁移过程中由于异常导致虚拟机不可用时间,通过发送重启指令对异常虚拟机进行重启快速地恢复数据库异常,保证迁移过程的顺利进行。
另一方面,本发明技术方案提供一种基于汉明码的虚拟机动态迁移数据纠错系统,包括迁入端和迁出端;
迁出端设置有第一监控模块和编码模块;
第一监控模块,用于对将要迁移的数据进行监控;
编码模块,用于将迁移数据在未打包发送到网络之前,通过编码模块用汉明码进行编码;
迁入端设置有第二监控模块和解码模块;
第二监控模块,用于监听接收的数据;
解码模块,用于将收到的迁移数据包解码并对迁移过程中数据包出现的错误进行纠错。
进一步的,该系统还包括处理模块和虚拟机迁移触发模块;
所述的处理模块,用于将虚拟机静态时间与预先设定的迁移时间阈值进行比较,若所述静态时间大于预先设定的迁移时间阈值时发送指令到虚拟机迁移触发模块;其中,所述静态时间为预估的所述待迁移虚拟机从本次迁移到下次迁移之间的时间段;若所述静态时间小于预先设定的迁移时间阈值,且静态时间与预先设定的迁移时间阈值的比值小于随机数n,禁止进行所述待迁移虚拟机的迁移。
所述的虚拟机迁移触发模块,用于接收到处理模块的指令后触发所述待迁移虚拟机进行迁移。
处理模块,还用于确定虚拟机静态时间,其中,确定虚拟机静态时间包括:获取每台虚拟机在历史时间段内稳定状态的历史数据;分析历史数据确定不同时刻处于稳定状态的虚拟机的比例;将第一时刻和第二时刻之间的时间段确定为所述待迁移虚拟机的静态时间;其中,第一时刻为处于稳定状态的虚拟机的比例第一次大于设定比例阈值的时刻;第二时刻为处于稳定状态的虚拟机的比例最后一次大于设定比例阈值的时刻。
进一步的,该系统还包括虚拟机监测模块,虚拟机监测模块,用于当虚拟机迁移时,对虚拟机的状态进行监测;
所述的虚拟机监测模块包括:迁移进度状态信息获取单元和判断单元;
迁移进度状态信息获取单元,用于获取虚拟机的迁移过程中产生的迁移进度状态信息;当检测到虚拟机迁移过程发生异常时,发送指令将检测到的迁移异常的虚拟机重启;同时对虚拟机的重启过程进行监控,当所述虚拟机重启失败且所述虚拟机的状态异常时,根据相关日志对虚拟机进行修复,并重新发送虚拟机重启指令;当检测到虚拟机重启成功后,继续进行虚拟机的迁移过程。
判断单元,用于根据迁移进度状态信息判断迁移过程是否正常。
从以上技术方案可以看出,本发明具有以下优点:实现将迁移数据重新编码,打破数据原有的存在规律,使得攻击者即便通过某种手段破坏的迁移数据或者网络波动造成的迁移数据错误,通过汉明码纠错能力,纠正数据传输中出现的错误,从保证数据的可靠性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种基于汉明码的虚拟机动态迁移数据纠错方法示意性流程图。
图2是本发明实施例二提供的一种基于汉明码的虚拟机动态迁移数据纠错方法示意性流程图。
图3为本发明实施例三提供的一种基于汉明码的虚拟机动态迁移数据纠错系统连接框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例一
如图1所示,本发明实施例提供一种基于汉明码的虚拟机动态迁移数据纠错方法,包括如下步骤:
步骤一:迁出端对将要迁移的数据进行监控,将迁移数据在未打包发送到网络之前,通过编码模块用汉明码进行编码;
步骤二:迁入端监听接收的数据,通过解码模块将收到的迁移数据包解码并对迁移过程中数据包出现的错误进行纠错。
迁出端设置第一监控模块和编码模块,迁入端设置第二监控模块和解码模块。当虚拟机迁移时,对将要迁移的数据进行监控,将迁移数据在未打包发送到网络之前,通过编码模块用汉明码进行编码,在这里汉明码的具体编码过程属于现有技术内容,迁入端通过第二监控模块监听接收的数据,并通过解码将收到的迁移数据包解码,并检测并纠错迁移过程中可能出现攻击者即便通过某种手段破坏的迁移数据或者网络波动造成的迁移数据错误,实现将迁移数据重新编码,打破数据原有的存在规律,使得攻击者即便通过某种手段破坏的迁移数据或者网络波动造成的迁移数据错误,通过汉明码纠错能力,纠正数据传输中出现的错误,从保证数据的可靠性。汉明码的纠错方式是将迁移数据有效信息按数据现有的规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反(也是原来是1就变成0,原来是0就变成1)来将其纠正。
具体过程,首先就要确定发送的数据所需要要的校验码位数(也称“校验码长度”)。校验码长度的设定过程如下:假设用n表示添加了校验码位后整个信息的二进制位数,用k代表其中有效信息位数,r表示添加的校验码位,满足:n=k+r≤2r-1。例如k=5,则要求2r-r≥5+1=6,得知r的最小值为4,也就是要校验5位信息码,则要插入4位校验码。将校验码设在在2n次方位置,每个校验位的值代表了代码字中部分数据位的奇偶性,其所在位置决定了要校验的比特位序列;所有校验码所在的位是只由对应的校验码进行校验,校验的方式就是各校验码对它所校验的位组进行异或运算;在采用偶校验时,各校验组通过异或运算后的校验结果均应该是为0,而采用奇校验时,各组校验结果均应是为1。汉明码还具有纠错能力,对检测出错的位进行纠错,就是将检测出错的位直接取反。
实施例二
如图2所示,本发明实施例提供一种基于汉明码的虚拟机动态迁移数据纠错方法,包括如下步骤:
s1:确定虚拟机静态时间;本步骤中,确定虚拟静态时间的步骤包括:
s11:获取每台虚拟机在历史时间段内稳定状态的历史数据;
s12:分析历史数据确定不同时刻处于稳定状态的虚拟机的比例;
s13:将第一时刻和第二时刻之间的时间段确定为所述待迁移虚拟机的静态时间;其中,第一时刻为处于稳定状态的虚拟机的比例第一次大于设定比例阈值的时刻;第二时刻为处于稳定状态的虚拟机的比例最后一次大于设定比例阈值的时刻。
s2:将虚拟机静态时间与预先设定的迁移时间阈值进行比较,若所述静态时间大于预先设定的迁移时间阈值,进行所述待迁移虚拟机的迁移;
在这里需要说明的是,其中,所述静态时间为预估的所述待迁移虚拟机从本次迁移到下次迁移之间的时间段。所述迁移时间阈值根据虚拟机在历史时间段内的业务特性预先设定的。若所述静态时间小于预先设定的迁移时间阈值,且静态时间与预先设定的迁移时间阈值的比值大于随机数n,进行所述待迁移虚拟机的迁移,其中,0<n≤1若所述静态时间小于预先设定的迁移时间阈值,且静态时间与预先设定的迁移时间阈值的比值小于随机数n,禁止进行所述待迁移虚拟机的迁移。为了降低迁移成本,使整个系统的资源调度更加合理有效。
s3:当虚拟机迁移时,对虚拟机的状态进行监测;为了解决迁移出现异常时导致虚拟机不可用时间较长的问题,迁移过程中对虚拟机的状态进行监测;所述的对虚拟机的状态进行监测的步骤包括:
获取虚拟机的迁移过程中产生的迁移进度状态信息;
根据迁移进度状态信息判断迁移过程是否正常。
所述的根据迁移进度状态信息判断迁移过程是否正常的步骤中包括:
当检测到虚拟机迁移过程发生异常时,发送指令将检测到的迁移异常的虚拟机重启;同时对虚拟机的重启过程进行监控,当所述虚拟机重启失败且所述虚拟机的状态异常时,根据相关日志对虚拟机进行修复,并重新发送虚拟机重启指令;当检测到虚拟机重启成功后,继续进行虚拟机的迁移过程。降低了虚拟机迁移过程中由于异常导致虚拟机不可用时间,通过发送重启指令对异常虚拟机进行重启快速地恢复数据库异常,保证迁移过程的顺利进行。
s4:迁出端对将要迁移的数据进行监控,将迁移数据在未打包发送到网络之前,通过编码模块用汉明码进行编码;
s5:迁入端通过第二监控模块监听接收的数据,通过解码模块将收到的迁移数据包解码并对迁移过程中数据包出现的错误进行纠错。
实施例三
如图3所示,本发明实施例提供一种基于汉明码的虚拟机动态迁移数据纠错系统,包括迁入端2和迁出端1;
迁出端1设置有第一监控模块11和编码模块12;
第一监控模块11,用于对将要迁移的数据进行监控;
编码模块12,用于将迁移数据在未打包发送到网络之前,通过编码模块12用汉明码进行编码;
迁入端2设置有第二监控模块21和解码模块22;
第二监控模块21,用于监听接收的数据;
解码模块22,用于将收到的迁移数据包解码并对迁移过程中数据包出现的错误进行纠错。从保证数据的可靠性。
迁出端1设置第一监控模块11和编码模块12,迁入端2设置第二监控模块21和解码模块22。当虚拟机迁移时,第一监控模块11对将要迁移的数据进行监控,将迁移数据在未打包发送到网络之前,通过编码模块12用汉明码进行编码,迁入端2通过第二监控模块21监听接收的数据,并通过解码模块22将收到的迁移数据包解码,并检测并纠错迁移过程中可能出现攻击者即便通过某种手段破坏的迁移数据或者网络波动造成的迁移数据错误
该系统还包括处理模块4和虚拟机迁移触发模块3;
所述的处理模块4,用于将虚拟机静态时间与预先设定的迁移时间阈值进行比较,若所述静态时间大于预先设定的迁移时间阈值时发送指令到虚拟机迁移触发模块;其中,所述静态时间为预估的所述待迁移虚拟机从本次迁移到下次迁移之间的时间段;若所述静态时间小于预先设定的迁移时间阈值,且静态时间与预先设定的迁移时间阈值的比值小于随机数n,禁止进行所述待迁移虚拟机的迁移。
所述的虚拟机迁移触发模块3,用于接收到处理模块4的指令后触发所述待迁移虚拟机进行迁移。
处理模块4,还用于确定虚拟机静态时间,其中,确定虚拟机静态时间包括:获取每台虚拟机在历史时间段内稳定状态的历史数据;分析历史数据确定不同时刻处于稳定状态的虚拟机的比例;将第一时刻和第二时刻之间的时间段确定为所述待迁移虚拟机的静态时间;其中,第一时刻为处于稳定状态的虚拟机的比例第一次大于设定比例阈值的时刻;第二时刻为处于稳定状态的虚拟机的比例最后一次大于设定比例阈值的时刻。
该系统还包括虚拟机监测模块5,虚拟机监测模块5,用于当虚拟机迁移时,对虚拟机的状态进行监测;所述的虚拟机监测模块5包括:迁移进度状态信息获取单元和判断单元;
迁移进度状态信息获取单元,用于获取虚拟机的迁移过程中产生的迁移进度状态信息;当检测到虚拟机迁移过程发生异常时,发送指令将检测到的迁移异常的虚拟机重启;同时对虚拟机的重启过程进行监控,当所述虚拟机重启失败且所述虚拟机的状态异常时,根据相关日志对虚拟机进行修复,并重新发送虚拟机重启指令;当检测到虚拟机重启成功后,继续进行虚拟机的迁移过程。
判断单元,用于根据迁移进度状态信息判断迁移过程是否正常。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。