用于迁移虚拟机的方法和系统的制作方法_3

文档序号:8318995阅读:来源:国知局
备218使用的各种访问控制解决方案和模块。如这里所讨论的,该访问控制能够允许普通交换设备在多个监管程序之间进行共享。该系统可以被设计为提供访问控制,其保持交换页面的数据完整性,同时仍然允许交换设备在多个监管程序之间进行共享。例如,该系统能够限制针对交换页面的访问而使得在任何给定时间仅有单个监管程序有权访问。这种级别的访问控制能够使用各种不同解决方案来实现。
[0044]在某些实施例中,监管程序206、208访问共享表或槽指派表214。该表可以在共用基础设施210内以固件级进行存储,并且能够制定哪些虚拟机有权访问每个槽。当针对映射至交换设备的数据的请求被监管程序所接收时(例如,响应于页面错误),监管程序能够基于表的内容允许或拒绝访问。当进行迁移时,该表可以被更新并且后续访问尝试将被新的共享权限所管理。以这种方式,监管程序能够通过依据共享表拒绝或允许访问而管理并控制对交换页面的访问权限,上述共享表能够以固件级进行存储。源监管程序能够将其分页表中包含相对应的交换槽的条目标记为不可访问,而目标监管程序则能够通过修改本地分页表而扩展其存储器空间以包括交换槽。
[0045]在实施例中,针对交换设备的访问控制能够被一个或多个访问控制模块212所管理。这些访问控制模块212能够在固件级进行操作并且能够基于共享表214中所存储的关联而限制和允许针对共享驱动器的访问。例如,共享表214能够指定磁盘区域(或槽)能够被特定监管程序锁访问并且相应地限制访问。如这里所讨论的,共享表可以作为虚拟机迁移的一部分进行修改并且因此允许交换页面被目标监管程序所访问而并不复制该页面或者将它们存储在存储器中。
[0046]依据实施例,特定监管程序(例如,目标或源监管程序)能够确定其它监管程序无权访问同样被共享的特定交换设备的交换槽。这可能在针对目标监管程序所许可的所有交换槽都从特定交换设备移除(例如,复制到另一个交换设备或者由于目标主机没有过量使用的存储器而被移除)的情况下发生。这也可能在源监管程序使得其每个交换页面被转移至目标监管程序时发生。在这样的情况下,特定监管程序能够声明/请求特定交换设备停止被共享。对于资源管理器使用共享表的实施例,资源管理器能够从共享表去除交换设备。
[0047]图3描绘了依据本公开内容实施例的虚拟机向新的监管程序的迁移的流程图。各种框以虚线、点线和实线进行描绘。在某些实施例中,与具有虚线的框相关联的功能能够由源监管程序所执行,而具有点线的那些框则能够由资源管理器或源监管程序所执行,而具有实线的那些框则能够由目标监管程序来执行。然而,本公开内容并非必然如此进行限制。例如,与特定监管程序相关联的功能能够由该监管程序所调用(或与之协同)的单独模块来执行。
[0048]框302表示由源监管程序接收迁移请求。该迁移请求可以指定用于迁移的一个或多个虚拟机并且还可以识别用于迁移的目标监管程序或主机。在某些实施例中,目标监管程序的识别可以是普遍性的而使得源监管程序能够从一个或多个可用监管程序中选择目标监管程序。
[0049]响应于该迁移请求,在框304,能够确定(多个)虚拟机的(多个)源实例是否具有处于交换设备中的交换存储器页面。如果否,则在框314,(多个)虚拟机的(多个)目标实例能够被激活(被允许开始处理)。如果存在交换页面,则在框306,相关联的(多个)交换设备能被识别。
[0050]在框308,(多个)虚拟机的(多个)源实例的处理能够在准备迁移时停止。如这里所讨论的,某些实施例允许在框306所识别的交换设备被添加至共享表,该共享表指定哪些监管程序有权访问交换设备。交换设备(及其相关联的交换槽)到共享表的最初添加能够利用被授予源监管程序的访问/共享权限来执行。所共享的交换设备均可以包含一个或多个交换槽。
[0051]在框310,能够针对(多个)目标监管程序许可针对所识别的交换设备的访问。例如,源监管程序能够向共用基础设施声明有关迁移事件的信息。该共用基础设施能够修改针对(多个)交换设备的访问权限而使得它们成为能够与(多个)适当目标监管程序进行共享的设备。该许可还可以包括去除针对(多个)源监管程序的访问权限(例如,通过从共享表去除访问权限)。在框312,特定交换槽随后能够被指派给(多个)目标监管程序。该指派能够通过在交换表内指示交换槽能够被(多个)目标监管程序进行访问来执行。
[0052]在框313,有关指派给目标监管程序的交换槽的信息能够被目标监管程序用来扩展存储器以包括存储在共享交换设备上的交换槽。在某些实施例中,这可以包括修改由(多个)目标监管程序所维护的页面表而使得对交换槽的访问被指向共享交换设备。当页面被(多个)目标监管程序所访问时,它们能够直接从共享交换设备被取回。另外的交换页面能够在指派给目标监管程序的槽中被存储在共享交换设备上,或者被存储在专用于(多个)目标监管程序的交换设备上。
[0053]在框314,(多个)虚拟机的(多个)目标实例随后能够被激活(被允许开始处理)。各种实施例预见到针对图3中所描绘的流程的修改,包括增加一个或多个功能。
[0054]图4描绘了依据本公开内容实施例的虚拟机向新的监管程序的迁移的流程图,其中源监管程序能够防止所迁移的交换槽的重复使用。各种框以虚线、点线和实线进行描绘。在某些实施例中,与具有虚线的框相关联的功能能够由源监管程序所执行,而具有点线的那些框则能够由共用基础设施或虚拟系统管理员模块执行,而具有实线的那些框则能够由目标监管程序来执行。然而,本公开内容并非必然如此进行限制。例如,与特定监管程序相关联的功能能够由该监管程序所调用(或与之协同)的单独模块来执行。
[0055]在框402开始,源监管程序能够识别交换设备并且还向共用基础设施(固件)声明该交换设备是可共享的。在某些实施例中,该声明可以响应于所接收到的迁移请求而作出。实施例针对通过遍历源监管程序的页面表以便识别所有活跃的交换设备而识别出多个交换设备。在框404,响应于该声明,固件能够被配置为允许该交换设备的共享。
[0056]在框406,诸如作为固件的一部分的虚拟系统管理员模块之类的协调模块能够通知源和目标监管程序应当开始迁移。虚拟系统管理员模块可以位于各种位置。在某些实施例中,虚拟系统管理员模块能够在固件中实现。在各种实施例中,其能够位于经由网络连接至监管程序的单独服务器上。在一些情况下,虚拟系统管理员模块通过访问固件而控制监管程序的创建和删除。例如,虚拟系统管理员模块可以通过创建经更新的目标监管程序,将虚拟机从源监管程序移动至目标监管程序并随后删除源监管程序而执行监管程序更新。
[0057]响应于该通知,如框408中所示,源监管程序能够准备所要迁移的虚拟机的源实例。在某些实施例中,这可以包括暂停或停止源实例并且还可以包括针对该源实例识别交换设备和交换槽。而且,作为响应,在框410,目标监管程序能够配置或准备所要发起的虚拟机的目标实例。
[0058]在框412,源监管程序能够向目标监管程序提供所识别的交换资源。例如,源监管程序能够识别特定交换设备(例如,特定磁盘驱动器)。在框416,作为响应,目标监管程序能够附接至所识别的交换设备并且将所有交换槽标记为已使用。通过将交换槽标记为已使用,目标监管程序将不会尝试指派任何槽供目标监管程序所支持的操作系统或虚拟机使用。
[0059]在框414,源监管程序能够针对虚拟机的源实例识别换出页面及其相对应的交换槽。在某些实施例中,这能够通过遍历其页面表以找出所有换出页面及其相对应的交换槽来实现。在框418,基于该识别的结果,交换槽可以被传达至目标监管程序和共用基础设施(固件)而使得能够向目标监管程序许可针对所识别的槽的访问。
[0060]在框420,源监管程序随后能够移除其对所识别的交换槽的访问权限。例如,源监管程序能够移除源虚拟机的所有页面表。在某些实施例中,即使源监管程序没有页面表引用这些交换槽,源监管程序还是能够离开被标记为已使用的交换槽。这对于防止源监管程序尝试指派所识别的交换槽供另一个虚拟机未来使用是有用的。
[0061]在框422,目标监管程序能够接收与所识别的交换页面相关的信息并允许对其进行访问。例如,在框424,目标监管程序能够扩展其存储器并且修改虚拟机的目标实例的页面表以包括所识别的交换槽。被迁移的虚拟机的目标实例能够使用这些交换页面开始处理,上述交换页面能够被填充虚拟存储器中并且根据所修改的页面表被访问。
[0062]图5描绘了用于实现各种实施例的计算机系统500的高阶框图。这里所公开的各种实施例的机制和装置等同地应用于任意适当的计算系统。计算机系统500的主要组件包括一个或多个处理器502、存储器504、终端接口 512、存储接口 514、I/O (输入/输出)设备接口 516和网络接口 518,它们全部直接或间接第通信耦合以便经由存储器总线506、I/O总线508、总线接口单元509和I/O总线接口单元510进行组件之间的通信。
[0063]计算机系统500包含一个或多个通用可编程中央处理单元(C
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1