本发明涉及一种分离式计算系统。本发明还提供了一种用于分离式计算系统的方法和执行该方法的计算机程序产品。
背景技术:
1、现有的计算架构包括具有本地内存的计算节点。只有单个主机可以访问位于同一机箱的中央处理单元(central processing unit,cpu)旁边的内存。
2、分离架构使得能够在主机机箱外部使用内存池。由于内存位于单独的电源域上,因此当主机断电或断开与内存的连接时,内存中的数据将完好无损。在这些系统中,主机与内存的连接由fabric管理器控制,它可以访问主机和内存池,也可以连接主机与内存。
3、图16示意性地描述了传统分离架构的工作原理。在图16(a)中,主机(例如主机a)可以向内存模块写入数据。主机写入数据后,没有主机与内存模块连接,如图16(b)所示。与依赖于本地cpu电源的传统架构不同,分离式系统中的内存可以与单独的电源系统连接,因此内存中的数据不会被删除。
4、然后,fabric管理器可以将另一个主机,例如主机b与内存模块连接,如图16(c)所示。此时,主机b可以读取主机a写入的数据,导致数据的安全性无法得到保证。
5、在硬盘驱动器(hard disk drive,hdd)/固态驱动器(solid state drive,ssd)域,传统方案通过在计算设备本身上使用自加密驱动器(self encrypting drive,sed)功能来解决数据安全性问题。主机更改驱动器上的密钥,以便在没有密钥的情况下对数据进行加密。内存加密功能也由与内存模块连接的主机控制。
6、然而,在图17中示意性地描述的这些方案需要支持内存安全功能的cpu。此外,它们要求主机用户在cpu中开启和配置内存安全功能(如果可用)。此外,传统的方案在使用cpu中的内存安全功能时,可能会出现性能下降的情况。此外,在现有的方案中,数据保护的负担和责任在用户而不是数据中心所有者。
技术实现思路
1、鉴于上述情况,本发明旨在改进用于分离式计算系统的传统方案。目的是使内存池能够以高效和简单的方式保护每个用户(主机)的数据,从而提供安全的服务,而不会给用户和主机增加额外的要求和管理负担。
2、这个目的和其它目的通过独立权利要求中描述的本发明的方案实现。有利的实现方式在从属权利要求中进一步定义。
3、根据第一方面,提供了一种分离式计算系统。所述分离式计算系统包括用于与多个主机以及与所述系统的内存池通信的fabric管理器,所述内存池包括内存控制器和一个或多个内存设备,所述一个或多个内存设备用于保存所述主机的数据。所述fabric管理器还用于开启任意主机与所述内存池的所述至少一个内存设备之间的数据通路,在所述主机向所述至少一个内存设备写入数据后,关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路。所述内存控制器用于在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路后,配置所述内存池以保护所述至少一个内存设备中的所述主机的所述数据。
4、这样做的优点是确保提供内存池服务的机架或数据中心不需要依赖主机来保护一个或多个内存设备中的数据。
5、此外,分离式计算系统可以使用任意cpu,并且不与提供特定内存安全功能的产品绑定。
6、内存池可以在位于主机机箱外部的单独模块中实现。此外,内存池可以是所有主机共用的。
7、在所述第一方面的一种实现方式中,所述fabric管理器还用于控制所述内存池在所述至少一个内存设备中为所述主机分配内存空间。
8、所述fabric管理器可以是一个软硬件结合系统,用于分配所述公共内存池的资源,并且能够将任意主机与所述内存池连接。
9、在所述第一方面的一种实现方式中,所述主机在所述至少一个内存设备中写入数据后,在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路后,所述fabric管理器还用于开启所述内存控制器与所述内存池的所述至少一个内存设备之间的本地数据通路。
10、这样可以保护用户的数据,而不会给用户和主机增加额外的要求和管理负担。
11、在所述第一方面的一种实现方式中,保护所述至少一个内存设备中的所述主机的所述数据包括为所述主机清理在所述内存池的所述至少一个内存设备中分配的所述内存空间。
12、当在不同主机之间切换内存资源时,在将主机与内存池的内存设备分离后,再将另一台主机与内存设备连接前,可以清理保存在内存设备上的主机数据,从而防止主机的数据随后被任意其它主机访问。
13、在所述第一方面的一种实现方式中,清理在所述内存池的所述至少一个内存设备中分配给所述主机的所述内存空间包括擦除在所述内存池的所述至少一个内存设备中分配给所述主机的所述内存空间,或者使用随机数据覆盖所述内存池的所述至少一个内存设备中的所述主机的所述内存空间。
14、这样做的优点是可以采用不同的方式来保护主机的数据,提高了设备的效率和灵活性。
15、在所述第一方面的一种实现方式中,所述分离式计算系统还包括fabric网格,所述fabric网格用于与所述fabric管理器、所述多个主机以及所述内存池通信。所述fabric网格还用于通过所述fabric网格开启所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路,以及通过所述fabric网格关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路。
16、也就是说,主机到内存池的至少一个内存设备的连接可以由fabric网格提供。fabric网格可以包括一个或多个物理实现方式。
17、在所述第一方面的一种实现方式中,所述内存控制器包括内存主机设备,所述主机在所述至少一个内存设备中写入数据后,在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路后,所述fabric管理器还用于通过所述fabric网格开启所述内存主机设备与所述至少一个内存设备之间的数据通路。
18、因此,fabric网格还可以使内存主机设备与内存池内的至少一个内存设备连接。
19、在所述第一方面的一种实现方式中,所述内存控制器包括复位模块主机,所述主机在所述至少一个内存设备中写入数据后,在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路后,所述fabric管理器还用于通过所述fabric网格开启所述复位模块主机与所述至少一个内存设备之间的数据通路。
20、因此,fabric网格还可以提供复位模块主机到内存池内的至少一个内存设备的连接。
21、在所述第一方面的一种实现方式中,在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,保护所述至少一个内存设备中的所述主机的所述数据包括对所述内存池的所述至少一个内存设备执行低电平复位。
22、这提供了另一种保护主机数据的方式,进一步提高了设备的效率和灵活性。
23、在所述第一方面的一种实现方式中,所述fabric管理器还用于生成加密密钥并将所述加密密钥发送至所述内存控制器,以及在所述主机将数据写入所述至少一个内存设备后且在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭前更改所述加密密钥。所述内存池还包括加密引擎,用于与所述内存控制器以及与所述一个或多个内存设备通信。此外,所述内存控制器还用于在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,通过所述加密引擎对所述至少一个内存设备中的所述主机的所述数据进行保护。
24、这提供了确保数据保护的优点,而不需要主机对自身的数据启用、配置和管理加密,从而提高了灵活性和效率。此外,这适用于所有cpu。
25、在所述第一方面的一种实现方式中,所述fabric管理器还用于通过所述加密引擎开启所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路,通过所述加密引擎关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路。
26、在所述第一方面的一种实现方式中,在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,通过所述加密引擎保护所述至少一个内存设备中的所述主机的所述数据,包括:所述内存控制器控制所述加密引擎使用由所述fabric管理器发送的所述加密密钥对所述主机的数据进行加密;将所述主机的所述加密数据提供给所述至少一个内存设备。
27、这提供了另一种方式来保护主机的数据,即通过加密引擎在内存池中“动态”加密主机的数据。应当注意,生成的加密密钥对每个主机都是唯一的,从而进一步增强了数据保护。
28、在所述第一方面的一种实现方式中,所述至少一个内存设备还用于保存所述主机的所述加密数据。
29、根据第二方面,提供了一种用于分离式计算系统的方法。所述分离式计算系统包括用于与多个主机以及与所述系统的内存池通信的fabric管理器,所述内存池包括内存控制器和一个或多个内存设备,所述一个或多个内存设备用于保存所述主机的数据。所述方法包括:由所述fabric管理器开启任意主机与所述内存池的所述至少一个内存设备之间的数据通路;在所述主机向所述至少一个内存设备写入数据后,由所述fabric管理器关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路;所述内存控制器配置所述内存池以用于在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,对所述至少一个内存设备中的所述主机的所述数据进行保护。
30、这样做的优点是确保提供内存池服务的机架或数据中心不需要依赖主机来保护一个或多个内存设备中的数据。
31、此外,分离式计算系统可以使用任意cpu,并且不与提供特定内存安全功能的产品绑定。
32、在所述第二方面的一种实现方式中,所述方法还包括:由所述fabric管理器控制所述内存池来为所述至少一个内存设备中的所述主机分配内存空间。
33、所述fabric管理器可以是一个软硬件结合系统,用于分配所述公共内存池的资源,并且能够将任意主机与所述内存池连接。
34、在所述第二方面的一种实现方式中,所述主机在所述至少一个内存设备中写入数据后,在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路后,所述方法还包括:由所述fabric管理器开启所述内存控制器与所述内存池的所述至少一个内存设备之间的本地数据通路。
35、这样可以保护用户的数据,而不会给用户和主机增加额外的要求和管理负担。
36、在所述第二方面的一种实现方式中,保护所述至少一个内存设备中的所述主机的所述数据包括为所述主机清理在所述内存池的所述至少一个内存设备中分配的所述内存空间。
37、当在不同主机之间切换内存资源时,在将主机与内存池的内存设备分离后,再将另一台主机与内存设备连接前,可以清理保存在内存设备上的主机数据,从而防止主机的数据随后被任意其它主机访问。
38、在所述第二方面的一种实现方式中,清理在所述内存池的所述至少一个内存设备中分配给所述主机的所述内存空间包括擦除在所述内存池的所述至少一个内存设备中分配给所述主机的所述内存空间,或者使用随机数据覆盖所述内存池的所述至少一个内存设备中的所述主机的所述内存空间。
39、这样做的优点是可以采用不同的方式来保护主机的数据,提高了效率和灵活性。
40、在所述第二方面的一种实现方式中,所述方法还包括:通过fabric网格开启所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路,所述fabric网格用于与所述fabric管理器、所述多个主机以及所述内存池通信;通过所述fabric网格关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路。
41、也就是说,主机到内存池的至少一个内存设备的连接可以由fabric网格提供。fabric网格可以包括一个或多个物理实现方式。
42、在所述第二方面的一种实现方式中,所述内存控制器包括内存主机设备,所述主机在所述至少一个内存设备中写入数据后,在关闭所述主机与所述内存池的至少一个内存设备之间的所述数据通路后,所述方法还包括:由所述fabric管理器通过所述fabric网格开启所述内存主机设备与所述至少一个内存设备之间的数据通路。
43、因此,fabric网格还可以使内存主机设备与内存池内的至少一个内存设备连接。
44、在所述第二方面的一种实现方式中,所述内存控制器包括复位模块主机,所述主机在所述至少一个内存设备中写入数据后,在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路后,所述方法还包括:由所述fabric管理器通过所述fabric网格开启所述复位模块主机与所述至少一个内存设备之间的数据通路。
45、因此,fabric网格还可以提供复位模块主机到内存池内的至少一个内存设备的连接。
46、在所述第二方面的一种实现方式中,在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,保护所述至少一个内存设备中的所述主机的所述数据包括对所述内存池的所述至少一个内存设备执行低电平复位。
47、这提供了另一种保护主机数据的方式,进一步提高了设备的效率和灵活性。
48、在所述第二方面的一种实现方式中,所述方法还包括:所述fabric管理器生成加密密钥;所述fabric管理器将所述加密密钥发送至所述内存控制器;所述主机向所述至少一个内存设备写入数据后,在关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路前,所述fabric管理器更改加密密钥;在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,所述内存控制器对所述至少一个内存设备中的所述主机的所述数据进行保护;使用加密引擎与所述内存控制器以及所述一个或多个内存设备通信。
49、这提供了确保数据保护的优点,而不需要主机对自身的数据启用、配置和管理加密,从而提高了灵活性和效率。此外,这适用于所有cpu。
50、在所述第二方面的一种实现方式中,所述方法还包括:由所述fabric管理器通过所述加密引擎开启所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路;由所述fabric管理器通过所述加密引擎关闭所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路。
51、在所述第二方面的一种实现方式中,在所述主机与所述内存池的所述至少一个内存设备之间的所述数据通路关闭后,通过所述加密引擎保护所述至少一个内存设备中的所述主机的所述数据,包括:所述内存控制器控制所述加密引擎使用由所述fabric管理器发送的所述加密密钥对所述主机的数据进行加密;将所述主机的所述加密数据提供给所述至少一个内存设备。
52、这提供了另一种方式来保护主机的数据,即通过加密引擎在内存池中“动态”加密主机的数据。应当注意,生成的加密密钥对每个主机都是唯一的,从而进一步增强了数据保护。
53、在所述第二方面的一种实现方式中,所述至少一个内存设备还用于保存所述主机的所述加密数据。
54、根据第二方面的方法包括根据第一方面的设备的相应实现方式的特征。
55、根据第三方面,提供了一种计算机程序产品,包括用于当在处理器上实现时执行根据第二方面的方法及其实现方式的程序代码。
56、根据第三方面的计算机程序产品包括根据第二方面的方法的相应实现方式的特征。
57、根据第二方面的方法和根据第三方面的计算机程序产品及其实现方式提供了与上述根据第一方面的设备及其相应实现方式相同的优点和效果。
58、根据本发明的方案从内存池的角度解决了安全方面的问题,并且可以提供以下一个或多个优点:
59、·所述方案适用于所有cpu;
60、·所述方法对性能的影响可以忽略不计;
61、·所述方案不需要主机启用、配置和管理高级安全功能;
62、·数据中心所有者可以保证内存隔离,而不需要主机和他的用户提出任何要求。
63、应当注意,本技术中描述的所有设备、元件、单元和装置可以在软件或硬件元件或其任意类型的组合中实现。本技术中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体要执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应硬件或软件元件或其任意组合实现。