管理NIC加密流以用于迁移客户或任务的制作方法

文档序号:12290020阅读:361来源:国知局
管理NIC加密流以用于迁移客户或任务的制作方法与工艺

本申请是2015年5月11日提交的美国专利申请No.14/708,685的后续申请,美国专利申请No.14/708,685要求2014年5月12日提交的名为“管理NIC加密流以用于迁移客户或任务(MANAGINGNIC-ENCRYPTED FLOWS FOR MIGRATING GUESTS OR TASKS)”的美国临时专利申请No.61/991,784的优先权,通过引用将其全部内容合并于此。



背景技术:

虚拟机(VM)上的客户从主机服务器到目标服务器的迁移不仅可能影响数据的位置,而且影响与客户以及服务器交互的各种外部计算装置。技术进步已经解决了与本机迁移相关联的一些问题,本机迁移可以有效地中止客户执行,直到迁移结束。就此而言,可以采用限电和停电阶段来缩短客户的中止时间,使得唯一的中止是在停电阶段,以传送脏页面。如果在多个服务器和计算装置中采用加密,那么每个服务器和计算装置都可能需要知道与目标服务器相关联的不同的加密和解密密钥。



技术实现要素:

本公开的方面提供一种计算机实施的系统和方法。该方法包括:利用一个或多个处理器准备将信息发送至目标计算装置,所述信息至少包括流密钥和多个数据分组中的第一数据分组;利用所述一个或多个处理器,通过利用接收主密钥将所述流密钥加密来生成接收令牌;利用所述流密钥将所述第一数据分组加密;以及将经加密的第一数据分组和接收令牌发送至所述目标计算装置。

在附加示例中,该方法包括:将所述信息发送至网络适配器;在所述网络适配器上存储所述信息和所述接收令牌作为元组,所述元组对应于流ID;以及将所述接收令牌、流密钥、第一数据分组、以及封装信息作为元组发送至所述目标服务器。在另一个示例中,该方法可包括:通过利用发送主密钥将接收主密钥、流密钥、以及第一数据分组加密来生成发送令牌,其中,所述发送令牌封装接收主密钥、流密钥、以及第一数据分组;将所述发送令牌发送至网络适配器;以及在所述网络适配器上将所述接收主密钥、流密钥、以及数据分组解密。在该示例中,该方法可进一步包括:从第一表中检索发送令牌;将所检索的发送令牌复制到第二表中;以及将所复制的发送令牌发送至所述网络适配器。在其他示例中,所述第一表和所述第二表包括可靠性数目,所述可靠性数目与所述发送令牌相对应,且该方法进一步包括:更新与第一表相关联的发送令牌;响应于所述更新而递增与所述第一表的所述发送令牌相关联的所述可靠性数目。此外,在本示例中,该方法可进一步包括:在将所述发送令牌复制到第二表中之前,检查与第一表中的发送令牌相对应的所述可靠性数目;将所述可靠性数目存储在所述第二表中;在复制发送令牌之后,在第一表以及第二表中验证与发送令牌相对应的所述可靠性数目在所述第一表以及所述第二表中相同;以及当所述可靠性数目不同时,再次检索所述发送令牌。进而,该方法可进一步包括:当所述可靠性数目相同时,将所复制的发送令牌发送至所述网络适配器。作为另一个示例,该方法包括:在目标计算装置处接收经加密的第一数据分组和接收令牌;利用接收主密钥将接收令牌解密;响应于将接收令牌解密而识别所述流密钥;以及利用所识别的流密钥将第一数据分组解密。

本公开的另一个方面提供一种包括主机计算装置的系统。所述主机计算装置可包括存储器以及一个或多个处理器,所述一个或多个处理器被配置为:准备用于发送至目标计算装置的信息,所述信息至少包括流密钥和多个数据分组的第一数据分组;通过利用接收主密钥将所述流密钥加密来生成接收令牌;利用所述流密钥将所述第一数据分组加密;以及将经加密的第一数据分组和接收令牌发送至所述目标计算装置。

作为另一个示例,所述主机装置的一个或多个处理器可将所述信息发送至网络适配器,在所述网络适配器上存储所述信息和所述接收令牌作为元组,所述元组与流ID相对应;以及将所述接收令牌、流密钥、第一数据分组、以及封装信息作为元组发送至目标服务器。作为另一个示例,系统可通过利用发送主密钥将所述接收主密钥、流密钥、以及第一数据分组加密来生成发送令牌,其中发送令牌封装所述接收主密钥、流密钥、以及第一数据分组;将发送令牌发送至所述网络适配器;以及在所述网络适配器上将所述接收主密钥、流密钥、以及数据分组解密。在该示例中,系统可以进一步从第一表中接收发送令牌;将所检索的发送令牌复制到第二表中;以及将所复制的发送令牌发送至网络适配器。在该示例的其他实施例中,所述第一表和所述第二表包括可靠性数目,所述可靠性数目对应于发送令牌,且一个或多个处理器被进一步配置为:更新与所述第一表相关联的所述发送令牌;响应于所述更新而递增与所述第一表的所述发送令牌相关联的所述可靠性数目。作为附加示例,所述系统可以在将所述发送令牌复制到第二表中之前,检查与所述第一表中的所述发送令牌相对应的所述可靠性数目;将所述可靠性数目存储在所述第二表中;在复制所述发送令牌之后,验证与发送令牌相对应的所述可靠性数目在所述第一表以及所述第二表中相同;以及当所述可靠性数目不同时,再次检索所述发送令牌。在以上示例的相反情况下,所述系统可以在所述可靠性数目相同时将所复制的发送令牌发送至所述网络适配器。最后,作为另一个示例,所述系统可以在所述目标计算装置处接收所述信息和所述接收令牌;利用所述接收主密钥将所述接收令牌解密;响应于将所述接收令牌解密识别所述流密钥;以及利用所识别的流密钥将所述第一数据分组解密。

本公开的另一个方面提供一种包括目标计算装置的系统。所述目标计算装置可包括存储器以及与所述存储器通信的一个或多个处理器。所述一个或多个处理器可以被配置为:接收来自托管计算装置的接收令牌和加密数据分组;利用所述接收主密钥将所述接收令牌解密;响应于将所述接收令牌解密而识别流密钥;以及利用所识别的流密钥将所述数据分组解密。

在另一个示例中,所述目标计算装置的所述一个或多个处理器可以被进一步配置为:将客户虚拟机从托管计算机向目标计算装置迁移的指示发送至外部计算机;以及发送与所述目标计算装置相关联的IP地址。作为另一个示例,所述目标计算装置的所述一个或多个处理器可以被进一步配置为:接收与所述托管服务器相关联的接收者流密钥;基于与所述目标计算装置相关联的所述接收主密钥计算新的接收者流密钥;以及将所述新的接收者流密钥发送至所述外部计算机。最后,作为另一个示例,所述一个或多个处理器可以被进一步配置为:在与所述外部计算机通信时利用所识别的流密钥将数据分组加密。

附图说明

图1是根据本公开方面的客户的分组的示例性迁移。

图2是根据本公开方面的驻留在主机服务器上的网络接口控制器(“NIC”)的方框图。

图3是根据本公开方面的从主机服务器的NIC传输至目标服务器的NIC的元组的示例。

图4是根据本公开方面的用于将数据分组从主机服务器传输到目标服务器的示例发送令牌方案。

图5是根据本公开方面的利用代编号复制列队分组的示例。

图6是根据本公开方面的将主机服务器的主密钥变换为目标服务器的主密钥的示例计算。

图7是根据本公开方面的目标服务器将迁移通知给传输服务器的示例。

图8是图示出本公开方面的流程图。

具体实施方式

本技术一般涉及将虚拟机的客户从主机服务器迁移到目标服务器,同时避免连接中断并继续准确地加密数据。例如,主机服务器上的虚拟机可能需要迁移到目标服务器。在这种情况下,与主机服务器相关联的监控器可以在客户服务器与网络接口控制器(NIC)之间协作并最终与目标服务器协作。

主机服务器可以使用流密钥来加密和解密主机服务器与目标服务器之间的通信。当涉及迁移客户时,可通过接收主密钥将流密钥加密,这可以产生接收密钥。作为一个示例,该过程可在主机服务器的监控器上发生。然后监控器可将该接收令牌(连同其中封装的流密钥一起)发送给主机服务器的NIC。然后NIC利用流密钥将数据分组加密,并将加密的数据分组、接收令牌、以及封装信息发送给目标服务器。

主机服务器可以采用两种不同方案将接收令牌和数据分组发送给目标服务器。在第一方案中,可以实施交易表,其中存储通过对应的流标识符加索引的元组。元组例如可以存储接收令牌,在这种情况下可将元组照原样发送给目标服务器。在第二方案中,可以实施发送者令牌方案。在发送令牌方案中,作为一个示例,监控器利用发送者主密钥将接收令牌加密(这产生发送令牌)。然后监控器可将发送令牌发送给主机服务器。NIC可将发送令牌解密,识别流密钥和接收令牌,利用流密钥将数据分组加密,然后将除了发送令牌之外的所有东西传输给目标服务器。

根据另一个示例,每次从只读阵列中检索发送令牌,监控器可将发送令牌复制到单独的表。一般而言,NIC可以接收发送令牌,发送令牌要求NIC访问监控器的直接访问存储器(“DMA”),这会花费时间。因此,通过监控器在向只读阵列提出请求的时候复制发送令牌,NIC可以不必那么频繁地访问DMA,从而提高性能。

此外,在只读阵列中可以实施代编号。就此而言,代编号可以在每次发送令牌更新的时候增加。因此,当监控器复制发送令牌时,监控器也可以验证,在复制发送令牌之后代编号尚未改变。如果代编号相同,则监控器知道发送令牌相同。如果代编号不同,则发送令牌可能已经更新,并且因此监控器会再次访问只读阵列。

一旦目标服务器从主机服务器接收到所述接收令牌和数据分组,目标服务器就可以将信息解密。例如,目标服务器可以利用它自己的接收主密钥将接收令牌解密并识别流密钥。然后目标服务器可以利用该流密钥将数据分组解密。

除了将接收令牌和数据分组解密之外,目标服务器还可以计算流密钥。流密钥的使用是双向的,因为流密钥被用于发送数据和接收数据。因此,为了发送数据,迁移客户的流密钥不需要改变,因为与外部计算装置相关联的流密钥相同。但是,为了接收数据,迁移客户的流密钥可能需要改变,因为客户的位置不再处于主机服务器的位置,而是处于目标服务器的位置。因此,应当重新计算接收流密钥,以符合目标服务器,然后将其发送至外部计算装置。

系统管理者可以决定将实时虚拟机迁移到另一个服务器,而不需要延迟或中止业务。例如对于重启主机服务器、更新主机服务器、或者为了效率的目的对虚拟机进行负载平衡而言,这是必要的。

图1的示例100描绘客户124从主机服务器110迁移到目标服务器150的高级示意图。虽然客户124在迁移完成的时候保持相同的操作和功能,但是为了区分它在主机服务器上的操作与它在目标服务器上的操作,图1描绘客户124变为客户224。因此,当客户124开始迁移到目标服务器150时,客户124实际上变为目标服务器150上的客户224。

如图1的示例100所示,客户124具有操作系统126和应用128,操作系统126和应用128在客户124上操作。操作系统126和应用128可以执行特定功能和处理某些处理任务。此外,每个客户并不限于主机服务器110,而是可以跨多个服务器(未示出)来实施以用于更有效的处理。

主机服务器110和目标服务器150可以处于网络190的不同节点处,并且能够与网络190的其他节点直接或间接通信。虽然在图1中只描绘了一对计算装置,但是应当理解,典型系统可包括大量的连接的计算装置,每个不同的计算装置处于网络190的不同节点处。本文所述网络190和中间节点可以利用各种协议和系统互连,因此网络可以是互联网、万维网、特定内联网、广域网或本地网络的一部分。网络可以利用标准协议,诸如以太网、WiFi和HTTP、一个或多个公司专有的协议、以及它们的各种组合。虽然在如上所述传输或接收信息时获得某些优点,但是本文所述主题内容的其他方面不限于信息传输的任何特定方式。

可将与客户124相关联的数据分组从主机服务器110传送至目标服务器150。当客户124的所有数据分组都传送至目标服务器150时,客户224完全形成并且客户124的迁移完成。例如,图1的分组1图示出一个数据分组从主机服务器110传送至目标服务器150。如下更详细所述,网络接口控制器(“NIC”)120可以利用流密钥将数据分组加密,然后连同其他信息一起将数据分组发送至目标服务器150。一旦数据分组1-6被传送至目标服务器150,迁移就完成。因此,客户操作系统136和应用138可以在目标服务器150上运行。虽然这里只示出少量数据分组,但是应当理解,在迁移完成之前可以传送远远更多的数据分组。

图2图示出示例系统200,其中实施上述特征。该示例不应视为限制本公开的范围或者本文所述特征的用处。如图所示,主机服务器110包括一个或多个处理器212、包括指令216和数据218的存储器214、以及NIC 120。主机服务器110还包括具有客户124的监控器222。在只讨论客户124的迁移时,应当理解,主机服务器110可以在任何时候操作多个客户,并且相同的原理也适用于这样的客户的迁移。例如,客户280和客户282也在主机服务器110上运行。

存储器214可以存储可通过处理器212访问的信息,包括可通过处理器212执行的指令216以及数据218。存储器214可以是可操作为存储可通过处理器212访问的信息的任意类型的存储器,包括非暂时性计算机可读介质、或者存储可利用电子装置的帮助读取的数据的其他介质,例如硬盘驱动器、存储卡、只读存储器(“ROM”)、随机访问存储器(“RAM”)、数字通用盘(“DVD”)、或其他光盘、以及其他可写存储器和只读存储器。本文的系统和方法可包括上述的不同组合,由此可将指令和数据的不同部分存储在不同类型的介质上。

指令216可以是要通过处理器212直接(诸如机器码)或间接(诸如脚本)执行的指令的任意集合。例如,指令216可以被存储为计算机可读介质上的计算机代码。可以按照用于通过处理器212直接处理的对象代码格式或者按照任何其他计算机语言(包括脚本或者按需解释或事先编译的独立源代码模块的集合)来存储指令216。

可以根据指令216通过处理器212检索、存储或修改数据218。例如,虽然系统和方法不受任何特定数据结构限制,但是数据218可以作为有多个不同字段和记录、可扩展标记语言(“XML”)文档或平面文件的表存储在计算机寄存器中、存储在关系数据库中。此外,可通过任何计算机可读格式将数据格式化。

一个或多个处理器212可以是任何传统处理器,诸如市售CPU。替选地,处理器可以是专用组件,诸如ASIC或其他基于硬件的处理器。虽然并非必要,但是主机服务器110可包括更快或更有效地执行特定计算过程(诸如将视频解码、将图像帧与图像匹配、扭曲视频、将扭曲的视频编码等等)的专用硬件组件。作为另一个示例,一个或多个处理器212可以负责处理基本系统指令216,包括运行应用程序、处理运算和计算、以及处理来自诸如键盘、鼠标、麦克风等等装置的输入。处理器可以接收来自计算装置(未示出)的请求并处理这些请求,例如通过访问存储器214、检索所请求的信息、以及将所述信息发送至请求计算装置。

主机服务器110可以利用以太网卡或网络适配器来连接网络190,诸如NIC 120。NIC 120可以负责将数据分组发送至另一个服务器或者从另一个服务器接收数据分组,诸如从主机服务器110和目标服务器150。此外,NIC 120可以能够诸如利用公钥和私钥在发送之前将数据分组加密以及在接收之后将数据分组解密。

就此而言,虽然图2在功能上将处理器、存储器、客户虚拟机以及主机服务器110的其他元件示出为处在相同模块内,但是实际上处理器、计算机、计算装置、或存储器可包括多个处理器、计算机、计算装置、或存储器,它们可以存储在相同的物理壳体中,也可以不存储在相同的物理壳体中。例如,存储器可以是位于在与主机服务器110的壳体不同的壳体中的硬盘驱动器或其他存储介质。因此,对于处理器、计算机、计算装置、或存储器的引用可以理解为包括对于处理器、计算机、计算装置、或存储器的集合的引用,它们可以并行操作,也可以不并行操作。例如,主机服务器110可包括作为负载平衡服务器群操作的多个服务器计算装置。并且虽然下述某些功能被指示为在具有单个处理器的单个计算装置上发生,但是本文所述主题内容的其他方面可通过多个计算装置来实施,例如通过网络190传递信息。

图2图示出在从主机服务器110向目标服务器传送流密钥和数据分组230时实施的加密方案。就此而言,将与客户124相关的数据分组发送至主机服务器110的NIC 120(或其他网络适配器),因此NIC能够将数据分组加密并向目标发送信息,如下更详细所述。如图2的示例200所示,NIC 120包括一个或多个处理器223以及存储器224,存储器224包括数据226和指令228。处理器223、包括数据226和指令228的存储器224可以类似于上面参照图1所述的主机服务器110的处理器212、存储器214、指令316、以及数据218。除了发送和接收数据分组和流密钥之外,处理器223也可以负责将数据分组和流密钥加密和解密。

可将流密钥实施为主机服务器与目标服务器之间加密方案的一部分。例如,如图2的示例200所示,可将数据分组从主机服务器110的监控器发送至NIC 120。在这种情况下,NIC 120可以利用与目标服务器相关联的接收主密钥将流密钥加密,这可以生成接收令牌。因此,可以根据以下公式来计算接收者令牌:{Flow Key(流密钥)}Receive Master Key(接收主密钥)=Receive Token(接收令牌)。因此,接收令牌是采用加密形式的流密钥。目标服务器150的NIC知道接收主密钥,并且因此能够将接收令牌解密,以获得流密钥,下面进一步描述它的多个方面。

作为发送接收令牌、流密钥、以及数据分组的第一途径,可以实施交易表。图3示出示例性交易表310和320。交易表可以被实施为向目标服务器发送多个接收令牌和数据分组。例如,交易表可以在主机服务器的NIC上实施,但是由监控器来管理。作为另一个示例,交易表可通过主机服务器110的内核来管理。例如,主机服务器内核可以利用交易表来管理数据分组的传送。

如图3所示,交易表310包括流ID和元组。每个元组由对应的流ID来索引。如图所示,在与流ID 1相关联的元组中,包括每个元组如下:{Flow Key(流密钥),Receive Token(接收令牌),[encapsulatedinformation(所封装的信息)],[list of allowed queues(所允许队列的列表)]}。应当注意,本文所述元组包括用于迁移目的的接收令牌,但是在不包括迁移的情况下,接收令牌并非必要且不一定存在。与元组1类似的元组信息应用于元组2至元组N以及它们对应的流ID。

根据一个示例,可将每个元组集合从主机服务器发送至目标服务器。例如,如箭头330、332和334所图示,元组1、2和3从主机服务器110传送至目标服务器150。但是,与每个元组相关联的对应流ID不传送。当目标服务器接收到元组时,可以利用通过目标服务器创建的新的对应流ID来存储每个接收到的元组。

在发送接收令牌和数据分组的第二途径中,可以实施发送令牌方案。图4图示出主机服务器110将数据和信息发送至目标服务器150。就此而言,目标服务器150包含一个或多个处理器以及包括数据和指令(未示出)的存储器。目标服务器的处理器、存储器、数据、以及指令可以类似于上面关于主机服务器110的处理器212、存储器214、指令216以及数据218所述的运作。此外,NIC 160可以是诸如向主机服务器110或单独的计算装置(未示出)发送和接收数据分组的网络适配器的一个示例。此外,客户224可以类似于关于主机服务器110所述的客户操作,包括操作系统和应用。监控器462也可以负责将客户(诸如客户224)与目标服务器150的各种组件和硬件(诸如处理器和存储器)互操作。作为另一个示例,监控器可以表示负责运行、管理、或迁移客户虚拟机的任何代码。

在图4的示例中,在向NIC传送接收令牌、流密钥以及数据分组时实施发送令牌方案。发送令牌操作可用于在向NIC发送接收令牌之前,连同封装的流密钥一起将接收令牌加密。因此,发送令牌方案允许向主机服务器本地NIC传送数据分组和信息。发送令牌方案例如可以在主机服务器的监控器或内核上建立。然后通过主机服务器的内核、客户的内核、或者与客户相关联的代码来执行发送令牌操作。例如,客户124可具有执行发送令牌方面的软件代码。

与上述交易表不同,发送令牌方案可以利用发送主密钥封装接收令牌和流密钥。就此而言,除了流密钥之外,还可以利用发送主密钥将接收令牌加密。例如,可以实施以下发送令牌公式:Send Token(发送令牌)={Flow Key(流密钥),Receive Token(接收令牌),[list of allowed queues(所允许队列的列表)],[encapsulation information(封装信息)]Send Master Key(发送主密钥)}。然后可将生成的发送令牌发送至主机服务器的NIC。如图4的示例400所示,NIC 120之后将发送令牌解密,以获得接收令牌。

使用发送令牌和交易表方案可以是有利的。例如,发送令牌方案允许传送更多数据,但是信息的传送可能比交易表方案慢。另一方面,虽然交易表方案可以允许数据的更快传送,但是也可能传送的数据更少,因为交易表与发送令牌相比尺寸有限。因此,所采用的方案可能取决于整个系统管理者的偏好。

此外可通过主机服务器NIC将每个数据分组加密。NIC可以利用流密钥将数据分组加密。因此,在NIC上将数据分组加密的公式可以如下:Packet Cryptotext(分组密文)={Packet Plaintext(分组明文)}Flow Key(流密钥)。下面更详细地讨论目标服务器将加密的分组和接收令牌解密的过程。

在图4的示例中,主机服务器110将生成的接收令牌以及加密的数据分组发送至目标服务器150。在这种情况下,信息420包括数据分组、接收令牌、以及封装信息。封装信息例如可包括源位置和目的地信息。应当注意,如果实施发送令牌方案(与交易表相对),则发送令牌停留在主机服务器本地;因此,既不将发送令牌也不将发送主密钥传送至目标服务器。但是,一旦主机服务器的NIC准备好发送收集的信息,那么两种方案将相同的信息元组发送至目标服务器。目标服务器150包括NIC 160,NIC 160包括一个或多个处理器462、存储器464、数据466、以及指令468,它们都可以类似于上面关于NIC 120的处理器223、存储器224、指令226以及数据228所述的操作。

当目标服务器150接收到信息420时,目标服务器将接收令牌解密,如图4所图示。目标服务器150的NIC 160可以利用它自己的接收主密钥将接收令牌解密。在将接收令牌解密并获得流密钥之后,NIC然后可以利用流密钥将数据分组解密,如同主机服务器利用流密钥将数据分组加密。一旦将分组有效载荷解密,就可将分组发送至监控器、客户224、或者与客户224相关联的操作系统。

再参照利用流ID和元组将数据从主机服务器传送至目标服务器的情况,目标服务器可以组织所接收的信息。例如,类似于主机服务器上的交易表,目标服务器可以生成类似的与主机服务器的流ID和元组相对应的表。流ID号码不一定相同,但是可以使用类似的方案,诸如将元组布置为使得每个元组对应于特定的流ID。

在主机服务器上使用发送令牌方案的情况下,可以实施只读阵列。只读阵列例如可以在监控器或客户上实施,并且监控器的发送软件、客户内核、或客户用户代码可以管理该只读阵列。发送软件可以负责将发送令牌发送至NIC。作为一个示例,可以存在对于只读阵列的单元中的数据的请求,与迁移无关。

图5提供监控器访问只读阵列并将其载入它的队列(即,将发送令牌排队520)的示例500。当这种情况发生时,副本被制成单独队列(即,发送队列副本522)。然后对信息的原始请求可以行进至NIC,NIC会将该信息传输至适当的计算装置(未示出)。当从主机服务器到目标服务器的迁移发生时,NIC不需要第二次访问只读阵列,因为发送令牌已经存储在发送软件中,如图5所示。在这种情况下复制发送令牌的优点是相对于再次访问DMA,缩短了NIC检索发送令牌的延迟。

可将代编号存储在只读阵列中,以确定发送令牌的可靠性。例如,自将发送令牌的副本制成发送队列副本522的时间以来,发送令牌可能已经更新。因此,发送队列副本522中存储的发送令牌不一定是发送令牌的最近版本。如图5所示,与发送令牌相对应的代编号存储在只读阵列中。就此而言,发送软件可以检查代编号,以确定是否存在更新。每次监控器更新发送令牌的时候,监控器可通过给定值将代编号更新。在一个示例中,可将代编号增加值1。仅仅作为示例,发送软件可以检查与特定发送令牌(诸如图5的ST1)相关联的代编号。发送软件可以在复制发送令牌之前检查代编号,并在复制发送令牌之后重新检查代编号。发送软件可以在每次检查之后将所识别的生成数目存储在存储器中。如果生成数据不同于第一次检查,那么发送软件可通过在类似过程中第二次检索发送令牌并检查代编号来重新尝试。

NIC负责将数据发送至目标服务器。例如,一旦执行上述发送令牌方案,NIC就可以从发送软件中检索发送令牌。如上所述,NIC可将发送令牌解密以获得接收令牌,将数据分组加密,然后将所有东西发送至目标服务器。然后目标服务器将接收令牌和数据分组解密,如上所述。

主机服务器的发送令牌被更新为与目标服务器的主密钥相对应。更新例如可以在目标服务器的监控器上发生。更新可以在迁移的限电和/或停电阶段里发生。作为另一个示例,发送令牌更新可以在主机服务器或目标服务器上发生,作为加快完成过程的方式。

图6是在目标服务器150的监控器上重新计算发送令牌的示例600。为了利用目标服务器的主密钥重新计算发送令牌,作为一个示例,可以实施以下公式:Send Token(发送令牌)={Flow Key(流密钥),Receive Token(接收令牌),[encapsulated information(所封装的信息)]}Target Server Master Key(目标服务器主密钥)。应当将这个公式或类似公式应用于目标服务器接收的每个发送令牌。

在目标服务器上更新发送令牌之前、之后或期间,也可以更新外部计算装置。这种情况可以在限电或停电阶段里发生。例如,外部计算装置可以仍然正在与主机服务器上的客户通信,但是该客户已经迁移到目标服务器。因此,外部计算装置正在用来与主机服务器上的客户通信的信息应当改变为与新的主机服务器(即,目标服务器)对应。

在图7的示例700中,目标服务器150向外部计算装置710警告迁移。此外,目标服务器150将目标服务器的IP地址和目标服务器的接收令牌、以及目标服务器经过更新的流密钥发送至外部计算装置710。IP地址的传输将允许外部计算装置710知道目标服务器150的位置。例如,如图7所示,外部计算装置710可通过用目标服务器信息代替主机服务器信息来将存储器712更新。接收令牌和流密钥允许外部计算装置利用目标服务器加密和解密数据。例如,外部计算装置710可以利用经过更新的流密钥将它发送至目标服务器的数据分组加密。此外,如图7所示,外部计算装置710将对迁移的确认发送至目标服务器150。目标服务器可以警告与目标服务器已经接收的发送令牌相关联的所有外部计算装置。

根据另一个示例,流密钥可以适合于目标服务器,如同上述发送令牌。例如,流密钥是双向的,从而要求两个流密钥。一个方向是在客户发送数据时,另一个方向是在客户接收数据时。就此而言,如果流密钥与迁移发送者相关联,那么流密钥可能不需要改变。相反,如果流密钥与迁移接收者相关联,那么流密钥可能需要改变。作为一个示例,与迁移发送者相关联的流密钥可以继续使用外部计算装置的流密钥,从而允许成功通信。成功通信因为目标服务器在发送数据时可以使用外部计算装置的流密钥而发生。因此,外部计算装置不改变,即使客户迁移到不同的服务器。但是在另一个示例中,与迁移接收者相关联的流密钥要求外部计算装置获知目标服务器的流密钥。这是为什么外部计算装置可以利用正确服务器的流密钥将分组加密。为了这种情况的运作,迁移接收者可将与目标服务器相关联的流密钥发送至希望与目标服务器通信的外部计算装置。然后外部计算装置可以利用目标服务器的流密钥生成接收令牌。

主机服务器可以继续从外部计算装置接收数据分组。例如,这种情况可以在停电阶段里发生,其中外部计算装置不知道迁移。主机服务器传输离群分组的能力会因为停电阶段而被禁用。在这种情况下,主机服务器可以为离群的数据分组创建新的监控器内队列,其中监控器在将数据分组放置到队列中之前仍然将数据分组加密。可将列队的分组发送至迁移客户(例如客户124)。然后可以按照与上述方式相同的方式将离群分组发送至目标服务器(例如,发送令牌方案或通过交易表)。

图8的示例800描绘上述方面的示例流程图。例如,在步骤802,主机服务器基于流密钥、接收令牌、以及发送者主密钥生成发送令牌。然后在步骤804,主机服务器将发送令牌发送至与主机服务器相关联的网络适配器。在步骤806,网络适配器利用它自己的发送者主密钥将发送令牌解密,并识别接收令牌作为结果。在步骤808,网络适配器利用流密钥将数据分组加密并将流密钥封装在接收令牌中。然后在步骤810,网络适配器将数据分组、接收令牌、以及封装信息发送至目标服务器。

本文所述主题是有利的,因为它提供一种用于客户虚拟机从一个服务器到另一个服务器的实时迁移的系统和方法。以上公开的大部分可能在限电阶段里发生,因此主机服务器上的客户仍然可以在迁移过程期间操作。其他优点包括相对于经由直接存储器访问来访问只读阵列,当主机服务器的NIC从复制队列检索发送令牌时所涉及的缩短延迟。

因为可以在不脱离权利要求书限定的主题的情况下利用上述特征的这些和其他变型和组合,所以应当通过说明而非限制权利要求书限定的主题的方式来进行实施例的以上描述。此外应当理解,本文所述示例的配置(以及措词为“诸如”、“例如”、“包括”等等的分句)不应解释为将所主张的主题限制为特定示例;相反,这些示例只是旨在说明很多可能方面中的一些方面。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1