一种虚拟机迁移方法及装置的制造方法_3

文档序号:9672963阅读:来源:国知局
[0110]S1017:将用户层中标记为脏页的内存页中存储的待迁移数据依次向目标虚拟机迁移,迁移成功后将相应的用户层的页表项置位净,返回执行S1015,直至迁移条件达到停机进行迁移的条件。
[0111]在实现动态迁移的过程中,源虚拟机中的内存页被访问时,造成源虚拟机和目标虚拟机的内存页不一致,本发明上述通过脏页跟踪与脏页同步对该不一致的内存页进行记录与传输,保证迁移的一致性。
[0112]本发明实施例实现S102中在设定的时间内向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据的过程,可以对迁移过程的流量进行限定,以避免ARM处理器在保证服务的同时,又遇到大量页面压缩等情况时,处理器速度造成的瓶颈问题。
[0113]本发明实施例中通过流量控制,实现迁移过程实现如图5所示,包括:
[0114]S1021:确定每次迁移所用时间。
[0115]本发明实施例中每次迁移所用的具体时间长度可根据实际情况进行设定。
[0116]S1022:设定流量限定值。
[0117]本发明实施例中还可通过实验得到不同网络环境下的最佳流量限定值,设定流量限定值。
[0118]S1023:根据S1021中确定的时间和S1022中设定的流量限定值,确定相应的时间内能够传送数据量的最大门限值。
[0119]S1024:判断当前累计发送数据量是否到达S1023中确定的最大门限值,若已达到最大门限值,则进行S1025a,否则进行S1025b。
[0120]S1025a:停止向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,直至迁移时间达到S1021中确定的时间。
[0121]S1025b:继续向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,直至迁移时间达到S1021中确定的时间。
[0122]本发明实施例上述通过对每次迁移过程中的流量进行限制,在已迁移的数据量达到设定的门限值后,则停止迁移,能够避免ARM处理器在保证服务的同时,又遇到大量页面压缩等情况时,处理器速度造成的瓶颈问题。通过流量控制保证源虚拟机与目标虚拟机的负载均衡。
[0123]在网络环境相对较复杂的场景下,传统的虚拟机迁移过程中,往往无法完成迁移,或做大量的无用功导致迁移性能损失,造成较大的网络带宽浪费。本发明实施例中通过记录每次迁移过程中的状态参数,例如累计发送数据量、实际传输带宽以及预期剩余时间等,并在每次迁移结束后,根据记录的状态参数确定迁移策略,适应网络环境变化,并完成虚拟机的迁移。
[0124]本发明实施例中提供一种自适应网络环境的虚拟机迁移方法,本发明中可设置一些参考参数,例如能够容忍的最大停机时间、最大等待时间或最大迭代次数等,然后根据记录的状态参数以及设置的参考参数,确定迁移策略,本发明实施例S103至S105的具体实现过程可如图6所示,包括:
[0125]S1031:确定累计发送数据量。
[0126]本发明实施例中可以采用例如计数器累计记数的方式,获取累计发送数据量。
[0127]本发明实施例中针对每次迁移过程中分别进行累计发送数据量的确定,即累计发送数据量为在为每次迁移设定的时间内迁移的数据量。
[0128]S1032:确定本次迁移过程中迁移S1031中确定的累计发送数据量所用的迁移时间。
[0129]本发明实施例中可以采用例如计时器累计计时的方式,得到迁移S1031中确定的累计发送数据量所用的迁移时间。
[0130]S1033:将S1031中确定的累计发送数据量与S1032中确定的迁移时间之间的比值,确定为实际传输带宽。
[0131]S1034:确定并记录迁移源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据所需的时间,将确定的该时间作为迁移的预期剩余时间。
[0132]本发明实施例中可根据S1033中确定的实际传输带宽,以及源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据对应的数据流,确定迁移的预期剩余时间。
[0133]S1040:确定本次迁移结束。
[0134]S1041:判断S1034中确定的预期剩余时间是否小于预设的最大停机时间,若预期剩余时间小于最大停机时间,则可确定迁移策略为停机进行迁移,即执行S105。若预期剩余时间不小于最大停机时间,则可根据累计发送数据量和实际传输带宽,确定迁移策略,执行S1042。
[0135]S1042:判断累计发送数据量与实际传输带宽是否均小于设定值。
[0136]本发明实施例中若累计发送数据量与实际传输带宽均小于设定值,则说明在迁移过程中最大等待时间设置的过小,传送的数据量达不到要求,故本发明实施例中若累计发送数据量与实际传输带宽均小于设定值,则执行S1043,否则可根据当前已执行的迁移次数确定迁移策略,执行S1044。
[0137]S1043:增大预设的最大等待时间,并确定迁移策略为返回执行将源虚拟机内存中存储待迁移数据的内存页标记为脏页的过程,并在时间达到增大的等待时间后,向目标虚拟机迁移标记为脏页的内存页中存储的待迁移数据,并执行S1031的过程。
[0138]S1044:判断当前已执行的迁移次数是否超过预设的最大迁移次数。
[0139]本发明实施例中若确定当前已执行的迁移次数超过预设的最大迁移次数,则可确定迁移策略为停机进行迁移,执行S105,否则可根据设定迁移次数中记录的预期剩余时间,确定迁移策略,执行S1045。
[0140]S1045:确定设定迁移次数中记录的预期剩余时间的方差和预期剩余时间曲线图的曲线斜率值。
[0141]本发明实施例中可计算设定迁移次数内记录的预期剩余时间的方差,例如确定本次迁移执行前的就近几次迁移过程中记录的预期剩余时间,并确定设定迁移次数中记录的预期剩余时间的方差,预期剩余时间的方差可反映预期剩余时间的收敛状态。
[0142]本发明实施例中预期剩余时间曲线图是以迭代传输时间为横轴,预期剩余时间为纵轴,绘制的预期剩余时间与迁移时间之间关系曲线图,预期剩余时间曲线的斜率可反映预期剩余时间的收敛状态。
[0143]S1046:根据S1045中确定的预期剩余时间的方差和曲线斜率值,判断预期剩余时间是否收敛,若收敛,则可确定迁移策略为停机进行迁移,执行S105,否则确定迁移策略为返回执行将源虚拟机内存中存储待迁移数据的内存页标记为脏页的过程。
[0144]本发明实施例在每次迁移过程中,利用累计发送数据量和迁移该累计发送数据量所用的迁移时间来计算实际传输带宽,并根据计算得到的实际传输带宽和源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据,计算预期剩余时间,随后判断累计发送数据量是否过低,已执行的迁移次数是否过高,以及预期剩余时间是否存在收敛状况等情况,进行相应迁移策略的调整,能够自适应复杂的网络环境,适用于ARM平台的虚拟机迁移。
[0145]采用本发明实施例提供的虚拟机迁移方法,能够较好的适应复杂的网络环境,提高迁移性能,如图7所示为在迁移带宽为20Mbps的情况下,采用传统虚拟机迁移方法,和本发明实施例提供的虚拟机迁移方法的实验对比图。
[0146]图7中横坐标为迁移重复次数,纵坐标为预期迁移时间,由图7可知,在迁移带宽为20Mbps的情况下,采用传统迁移方法,迁移过程共进行了 575.25s,停机时间经历了207.8ms,共迭代了 5748次。采用本发明实施例提供的迁移方法,迁移过程进行了需要234.18s,停机时间也只有104.6ms,迭代了 2340次。采用传统迁移方法,由于网络状况不佳,迭代很多次而无法完成迁移,而采用优化改进后的本发明发明实施例提供的迁移算法,迁移性能得到了提高。
[0147]基于本发明上述实施例提供的虚拟机迁移方法,本发明实施例还提供一种虚拟机迁移装置800,如图8A所示,该虚拟机迁移装置包括标记单元801、迁移单元802和确定单元803,其中:
[0148]标记单元801,用于将源虚拟机内存中存储待迁移数据的内存页,标记为脏页。
[0149]迁移单元802,用于在设定的时间内,向目标虚拟机迁移标记单元801中标记为脏页的内存页中存储的待迁移数据。
[0150]确定单元803,用于在迁移单元802已执行的迁移时间达到设定的时间时,确定迁移策略。迁移策略用于迁移源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据。
[0151]迁移单元802,还用于依据确定单元803确定的迁移策略,将源虚拟机中标记单元801标记为脏页的内存页中存储的且未迁移的待迁移数据,迁移到目标虚拟机。
[0152]在第一种实现方式中,确定单元803,还用于:
[0153]确定迁移策略之前,确定累计发送数据量,累计发送数据量为在设定时间内迁移的数据量;将累计发送数据量与设定时间之间的比值,确定为实际传输带宽;确定预期剩余时间,预期剩余时间为迁移源虚拟机中标记为脏页的内存页中存储的且未迁移的待迁移数据所需的时间。
[0154]该装置还包括判断单元804,如图8B所示,其中,判断单元804,用于判断确定单元803确定的预期剩余时间是否小于预设的最大停机时间。
[0155]确定单元803,具体用于按如下方式确定迁移策略:
[0156]若判断单元804判断的结果为预期剩余时间小于预设的最大停机时间,则确
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1