虚拟机切换的系统和方法_4

文档序号:9929422阅读:来源:国知局
的标签是否均为I。
[0098]304,虚拟机从存储设备申请初始化数据。
[0099]当步骤303控制器检测得到辅助硬件标签均为I时,本发明实施例的虚拟机切换可以使用新增加的辅助硬件。宿主机的操作系统OS可以控制虚拟机从辅助硬件存储设备中申请初始化数据。由于虚拟机刚刚启动,虚拟机的初始化数据尚未确定,控制器可以从存储设备中为虚拟机申请初始化数据。
[0100]当图2中不执行步骤204时,在图3的流程中也不再检测标签,即可以不再执行步骤303,而直接进入步骤304,使用本发明的技术方案进行虚拟机切换,例如,可以在虚拟机启动后直接从存储设备申请初始化数据。
[0101 ] 305,虚拟机从内存申请初始化数据。
[0102]当步骤303控制器检测得到系统并未置位时,本发明实施例的虚拟机切换系统中新增加的辅助硬件不可用。虚拟机可以按照现有技术的方法直接从存储设备中申请初始化数据。
[0103]306,控制器检测存储设备的资源是否充足。
[0104]虚拟机从存储设备中申请初始化数据之后,PCHJ可以运行该虚拟机的初始化数据。
[0105]当虚拟机启动时,在虚拟机申请初始化数据之后,控制器可以检测存储设备的资源是否充足。例如,控制器可以检测存储设备中是否有足够的资源存储虚拟机运行后的数据。当存储设备中的资源大于资源阈值时,认为存储设备的资源充足,可以用于存储PCPU运行虚拟机数据后的运行结果。
[0106]307,为虚拟机分配资源和空间索引。
[0107]当存储设备的资源充足时,控制器可以在PCPU的内存为虚拟机分配资源,用来存放虚拟机数据的运行结果。控制器还可以在PCPU的内存为虚拟机分配空间索引,以表明所分配的资源的具体地址。
[0108]308,启动虚拟机。
[0109]在虚拟机申请了数据之后,可以启动虚拟机,以进行宿主机到虚拟机的切换,使得PCPU运行宿主机的数据切换到运行虚拟机的数据。
[0110]309,控制器检测硬件辅助标签是否为预设值。
[0111]在本发明的一个实施例中,控制器可以在启动虚拟机之后,继续检测硬件辅助标签是否为预设值,以避免上述流程中不满足硬件辅助标签而进行到该步骤使用本发明的虚拟机切换的系统进行虚拟机切换。
[0112]当检测硬件辅助标签为预设值时,可以根据本发明实施例的切换系统进行虚拟机切换,流程进行到步骤310。当检测硬件辅助标签不为预设值时,只能按照现有的切换逻辑进行虚拟机切换,流程进行到311。
[0113]步骤309为可选步骤,在步骤308启动虚拟机之后,流程可以直接进行到步骤310。
[0114]310,将宿主机运行后的数据写入存储设备。
[0115]当检测硬件辅助标签为预设值时,可以根据本发明实施例的切换系统进行虚拟机切换,流程进行到步骤310。搬移设备可以通过存储总线、由搬移设备将宿主机运行后的数据从PCPU搬移到步骤307为虚拟机分配的资源中。
[0116]311,采用现有切换逻辑。
[0117]当检测硬件辅助标签不为预设值时,只能按照现有的切换逻辑进行虚拟机切换,流程进行到311,宿主机运行后的数据可以写入PCPU通过原有总线外挂的内存中,并通过原有总线从内存中读取虚拟机的数据,该数据可以为虚拟机的初始化数据。
[0118]312,从存储设备中读取虚拟机的数据。
[0119]进一步地,为了实现宿主机到虚拟机的切换,在步骤310搬移设备可以在将宿主机运行后的数据写入存储设备后,从存储设备中根据虚拟机空间索引为虚拟机分配的资源中读取虚拟机的数据(此处可以为虚拟机的初始化数据,也可以为虚拟机运行后存储的数据)SpcpUo
[0120]313,PCPU运行虚拟机的数据。
[0121]PCPU得到虚拟机的数据之后,可以在PCPU上运行虚拟机的数据。
[0122]314,运行结束。
[0123]在本发明的虚拟机切换系统的宿主机启动且可用时,可以按照图3所示流程图的步骤301至步骤309启动虚拟机,步骤301至步骤309在首次启动虚拟机时执行。在宿主机和虚拟机都启动之后,由宿主机到虚拟机的切换可以直接进入步骤310。步骤310-314是根据本发明实施例的宿主机向虚拟机切换的流程。
[0124]本发明实施例的虚拟机切换通过在PCPU运行宿主机的数据后,启动虚拟机,并利用搬移设备将运行后的宿主机的数据读入存储设备,且从存储设备中读取虚拟机的数据,然后在PCPU中运行虚拟机的数据。这样,通过新增的搬移设备、存储设备和存储总线实现宿主机和虚拟机之间的切换,由于存储总线可以比原有总线传输数据快,从而能够提高虚拟机的切换效率。
[0125]虚拟机切换时,宿主机和虚拟机之间频繁切换,即可以由宿主机切换至虚拟机,再由虚拟机切换到宿主机,再由宿主机切换到虚拟机,如此反复,以实现PCPU同一时刻仅处理宿主机的数据或仅处理虚拟机的数据,实现虚拟机和宿主机之间的切换。
[0126]上面结合图3的流程说明了由宿主机向虚拟机切换的具体流程,下面将结合图4具体阐述由第一机向第二机切换再由第二机向第三机切换的整个流程。
[0127]图4是根据本发明实施例的虚拟机切换系统中虚拟机切换的示意性流程图。图4的切换流程由虚拟机切换系统执行,该虚拟机切换系统包括PCPU、存储设备、存储总线、内存设备、内存总线和搬移设备。存储总线用来仅连接存储设备和PCPU,其可以为存储设备和PCPU之间进行数据读写提供传输通道。内存总线和内存设备可以为现有技术中PCPU原有的内存和总线。内存总线可以为内存设备和PCPU之间进行数据读写提供传输通道。搬移设备可以用于实现存储设备和PCHJ之间读写数据时的数据搬移。存储设备可以用于存储PCPU对宿主机数据和虚拟机数据运行后寄存器的状态。
[0128]401,PCPU运行第一机的数据。
[0129]当搬移设备从存储设备中读取第一机的数据并搬移到PCPU后,PCPU可以运行该第一机的数据,得到第二数据,第二数据可以为PCPU运行第一数据后寄存器的状态。
[0130]402,运行结束。
[0131]403,搬移设备将第一机运行后的数据写入存储设备。
[0132]在PCPU运行第一机的第一数据结束之后,搬移设备就可以将第二数据分N次写入存储设备。其中,N为小于第一阈值的正整数。优选地,N= I。
[0133]404,搬移设备从存储设备中读取第二机的数据。
[0134]搬移设备可以在将第二数据写入存储设备后,通过存储总线分M次读取第二机的第三数据至PCPU,M为小于第二阈值的正整数。优选地,M=l。
[0135]本发明实施例中的第一机可以为宿主机和虚拟机之一,第二机为宿主机和虚拟机中的另一个。
[0136]405,PCPU运行第二机的数据。
[0137]PCPU在读取第二机的数据之后,可以在PCPU运行该第二机的数据,得到第二机运行后的数据。
[0138]406,运行结束。
[0139]407,搬移设备将第二机运行后的数据写入存储设备。
[0140]在PCPU运行第二机的数据结束之后,搬移设备就可以将第二机运行后的数据分G次写入存储设备用于存储第二机数据的资源中,G为小于第二阈值的正整数。
[0141]408,搬移设备从存储设备中读取第三机的数据。
[0142]搬移设备可以在将第二机运行后的数据写入存储设备后,从存储设备分H次读取第三机的数据至PCPU,H为小于第二阈值的正整数。优选地,H=l。
[0143]步骤401-404是一个完整的由第一机切换到第二机的执行流程。步骤401-408给出了由第一机切换至第二机,再由第二机切换到第三机的流程。第三机可以与第一机相同,也可以与第一机不同。
[0144]当第三机与第一机相同时,步骤408读取的第三机的数据可以为步骤403中写入存储设备的第一机运行后的数据。
[0145]当第三机和第一机为不同的虚拟机,第二机为宿主机时,步骤408读取的第三机的数据在第三机首次启动时为第三机的初始化数据,在第三机非首次启动时步骤408读取的第三机的数据为存储设备中存储的第三机上次运行后在存储设备中存储的
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1