一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据存储方法及数据处理设备与流程

2022-07-02 14:28:33 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,尤其涉及一种数据存储方法及数据处理设备。


背景技术:

2.目前,用户可以使用市面上的数据处理服务,满足自己的数据处理需求。数据处理服务方通常管理有数据处理设备。数据处理设备上可以部署一个或多个虚拟机,虚拟机为用户提供独立的数据处理环境。
3.虚拟机中的数据处理模块有时存在数据存储需求,而数据处理设备的本地存储空间可能不适合虚拟机使用,或者,数据处理设备并不具有本地存储空间。
4.为此,需要一种提供给数据处理设备上部署的虚拟机使用的数据存储方案。


技术实现要素:

5.为了解决上述技术问题,本说明书实施例提供了一种数据存储方法和数据处理设备。技术方案如下所示。
6.一种数据存储方法,其中,数据处理设备上部署有至少一个虚拟机,每个虚拟机中包括数据处理模块与虚拟存储驱动模块,该虚拟存储驱动模块用于驱动对应于该虚拟机的虚拟存储执行模块,该虚拟存储执行模块绑定有非本地的远端存储设备;所述数据处理设备的网卡中包括网卡驱动模块、加密模块与对应于每个虚拟机的虚拟存储执行模块,所述方法包括:
7.任一虚拟机中的数据处理模块将待存储数据明文发送给该虚拟机中的虚拟存储驱动模块;
8.该虚拟存储驱动模块将该待存储数据明文发送给对应于该虚拟机的虚拟存储执行模块;
9.该虚拟存储执行模块将该待存储数据明文发送给所述加密模块;
10.所述加密模块对该待存储数据明文进行加密,并将得到的待存储数据密文返回给该虚拟存储执行模块;
11.该虚拟存储执行模块以该待存储数据密文为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建存储报文并发送给所述网卡驱动模块进行网络发送,以便于将所述待存储数据密文存储至该远端存储设备。
12.一种数据处理设备,其中,所述数据处理设备上部署有至少一个虚拟机,每个虚拟机中包括数据处理模块与虚拟存储驱动模块,该虚拟存储驱动模块用于驱动对应于该虚拟机的虚拟存储执行模块,该虚拟存储执行模块绑定有非本地的远端存储设备;所述数据处理设备的网卡中包括网卡驱动模块、加密模块与对应于每个虚拟机的虚拟存储执行模块;
13.任一虚拟机中的数据处理模块,用于将待存储数据明文发送给该虚拟机中的虚拟存储驱动模块;
14.该虚拟存储驱动模块,用于将该待存储数据明文发送给对应于该虚拟机的虚拟存储执行模块;
15.该虚拟存储执行模块,用于将该待存储数据明文发送给所述加密模块;
16.所述加密模块,用于对该待存储数据明文进行加密,并将得到的待存储数据密文返回给该虚拟存储执行模块;
17.该虚拟存储执行模块,用于以该待存储数据密文为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建存储报文并发送给所述网卡驱动模块进行网络发送,以便于将所述待存储数据密文存储至该远端存储设备。
18.上述技术方案中,虚拟机的数据处理模块通过所在数据处理设备的网卡,可以将需要存储的数据通过网卡中的虚拟存储执行模块,发送到远端存储设备进行存储,从而可以实现远端存储,使得虚拟机能够进行数据存储。
附图说明
19.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
20.图1是本说明书实施例提供的一种数据发送方法的流程示意图;
21.图2是本说明书实施例提供的一种数据存储方法的原理示意图;
22.图3是本说明书实施例提供的一种数据存储方法中读取数据的原理示意图;
23.图4是本说明书实施例提供的一种网卡的结构示意图;
24.图5是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
25.为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
26.目前,用户可以使用市面上的数据处理服务,满足自己的数据处理需求。数据处理服务方通常管理有数据处理设备。数据处理设备上可以部署一个或多个虚拟机,虚拟机为用户提供独立的数据处理环境。
27.虚拟机中用于执行数据处理过程的数据处理模块有时存在数据存储需求,而数据处理设备的本地存储空间可能不适合虚拟机使用,或者,数据处理设备并不具有本地存储空间。
28.其中,数据处理设备的本地存储空间可能存在不稳定的问题,容易丢失数据;或者存在不可信的问题,某一虚拟机专用的存储空间容易被该虚拟机以外的其他虚拟机访问,造成数据隐私泄露;或者存在不方便统一存储管理的问题。
29.例如,不同虚拟机所需的数据存储空间大小不同,直接为每个虚拟机分配相同大小的存储空间,容易造成资源浪费,而针对虚拟机动态分配存储空间,也存在提高存储空间
复杂度的问题。
30.数据处理设备本身也可能不具有本地存储空间,而是专用于进行数据处理。例如,数据处理设备可以是与存储节点解耦的计算节点,本地存储空间可以是磁盘。
31.因此,虚拟机的数据处理模块往往无法将数据存储到数据处理设备的本地存储空间,为此,需要一种提供给数据处理设备上部署的虚拟机使用的数据存储方案。
32.本说明书实施例公开了提供给数据处理设备上部署的虚拟机使用的数据存储方案。
33.在一种可选的数据存储方案中,针对数据处理设备上的每个虚拟机,可以绑定一个数据处理设备以外的远端存储设备,从而可以将该虚拟机的数据处理模块所需要存储的数据存储到该远端存储设备。
34.具体可以是每个虚拟机中的数据处理模块管理虚拟机所绑定的远端存储设备通信地址,以需要存储的数据为负载,以该远端存储设备通信地址为目的地址,构建报文并通过数据处理设备上的网卡发送到网络,从而可以使得该远端存储设备在接收到该报文后,将报文负载中需要存储的数据存储到该远端存储设备本地。
35.但在这种数据存储方案中,虚拟机的数据处理模块在执行自身数据处理任务之外,还需要额外承担管理远端存储设备的通信地址的任务,并且需要额外承担构建报文的任务,耗费数据处理模块的计算资源,降低了虚拟机进行数据处理的效率。
36.并且,从用户的角度出发,用户使用虚拟机是为了使用虚拟机的计算资源满足数据处理需求,如果虚拟机中的数据处理模块为了实现远端数据存储耗费了较多计算资源,降低数据处理效率,也就会降低用户使用数据处理服务的体验。
37.在另一种可选的数据存储方案中,可以使用一种特别的网卡,装载在数据处理设备上,由该网卡代替虚拟机的数据处理模块,承担管理远端存储设备的通信地址的任务,并且承担构建报文的任务,从而使得虚拟机中的数据处理模块可以专注执行自身的数据处理任务,提高数据处理效率。
38.在本方案中,网卡上可以部署有虚拟存储执行模块,虚拟存储执行模块可以执行实际的远端数据存储操作,具体可以承担管理远端存储设备的通信地址的任务,并且承担构建报文的任务。
39.虚拟机中可以装载一个虚拟存储驱动模块,用于驱动网卡上的虚拟存储执行模块。
40.对于虚拟机而言,可以将虚拟存储驱动模块所驱动的虚拟存储执行模块看作是一个虚拟化的本地存储空间,数据处理模块可以直接将需要存储的数据发送到虚拟存储驱动模块,以便于虚拟存储驱动模块将数据存储到虚拟存储执行模块这一虚拟化的本地存储空间,无需执行其他操作。
41.当然,虚拟存储执行模块并不是一个实际存在的存储空间,而是用于执行远端数据存储的功能模块,可以将所获取的需要存储的数据发送到远端存储设备。
42.虚拟存储执行模块可以针对从虚拟存储驱动模块接收到的需要存储的数据,确定对应的远端存储设备通信地址,进而以需要存储的数据为负载,以该远端存储设备通信地址为目的地址,构建报文,再将报文发送给网卡中的网卡驱动模块进行网络发送,从而可以使得该远端存储设备在接收到该报文后,将报文负载中需要存储的数据存储到该远端存储
设备本地。
43.因此,在本方案中,可以通过一种特别的网卡,为虚拟机分担远端数据存储的任务,使得虚拟机的数据处理模块可以专注执行自身的数据处理任务,可以节约虚拟机的计算资源,提高数据处理效率,提高用户使用数据处理服务的体验。
44.需要说明的是,本方案中的特别网卡具有良好的可拔插性,无需对数据处理设备和虚拟机进行过多的改动。
45.对于数据处理设备只需要装载这种特别网卡,并在虚拟机中装载一个虚拟存储驱动模块,就可以实现远端存储。并且,虚拟机可以将虚拟存储执行模块看作是一个虚拟化的本地存储空间,数据处理模块可以直接将需要存储的数据发送给用于驱动这一虚拟化本地存储空间的虚拟存储驱动模块即可,因此,虚拟机中针对虚拟存储驱动模块的使用逻辑也十分简单,改动成本较低。
46.并且,本方案中可以利用虚拟存储执行模块可以很方便地进行存储资源的扩容,具体可以是新增一个远端存储设备进行远端数据存储,或者更换一个存储空间更大的远端存储设备。
47.因此,本方案可以从软件层面方便地实现存储资源的扩容,而无需从硬件层面进行复杂的扩容操作。例如,在数据处理设备本地新增磁盘硬件,配置磁盘等。
48.进一步地,为了提高数据在远端存储的安全性,以及在数据传输过程中的安全性,通常需要由虚拟机的数据处理模块自身对需要存储的数据明文进行加密,得到数据密文后发送到远端存储设备进行存储。显然,这种方式也会耗费虚拟机的计算资源。
49.因此,在上述特别网卡的基础上,可以进一步由网卡加密需要存储的数据后再发送到远端存储设备。
50.具体地,可以在网卡中部署加密模块,虚拟存储执行模块在获取到需要存储的数据明文之后,可以先利用加密模块加密需要存储的数据明文,得到加密模块返回的数据密文后,以需要存储的数据密文为负载,以对应的远端存储设备通信地址为目的地址,构建报文,再将报文发送给网卡中的网卡驱动模块进行网络发送,从而可以使得该远端存储设备在接收到该报文后,将报文负载中需要存储的数据密文存储到该远端存储设备本地。
51.这种方式可以在不增加虚拟机的计算资源负担的前提下,提高数据在远端存储的安全性,以及在数据传输过程中的安全性。其中,一方面传输的是数据密文,从而可以提高数据传输到远端存储设备的过程安全性,另一方面远端存储设备存储的是数据密文,无法进行解密,从而可以提高远端存储的数据安全性。
52.如图1所示,为本说明书实施例提供的一种数据存储方法的流程示意图。
53.其中,数据处理设备上可以部署有至少一个虚拟机,每个虚拟机中可以包括数据处理模块与虚拟存储驱动模块,该虚拟存储驱动模块可以用于驱动对应于该虚拟机的虚拟存储执行模块,该虚拟存储执行模块可以绑定有非本地的远端存储设备。
54.数据处理设备的网卡中可以包括网卡驱动模块、加密模块与对应于每个虚拟机的虚拟存储执行模块。
55.该方法可以包括以下步骤。
56.s101:任一虚拟机中的数据处理模块将待存储数据明文发送给该虚拟机中的虚拟存储驱动模块。
57.s102:该虚拟存储驱动模块将该待存储数据明文发送给对应于该虚拟机的虚拟存储执行模块。
58.s103:该虚拟存储执行模块将该待存储数据明文发送给加密模块。
59.s104:加密模块对该待存储数据明文进行加密,并将得到的待存储数据密文返回给该虚拟存储执行模块。
60.s105:该虚拟存储执行模块以该待存储数据密文为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建存储报文并发送给网卡驱动模块进行网络发送,以便于将待存储数据密文存储至该远端存储设备。
61.上述方法流程中,虚拟机的数据处理模块通过所在数据处理设备的网卡,可以将需要存储的数据通过网卡中的虚拟存储执行模块,发送到远端存储设备进行存储,从而可以实现远端存储,使得虚拟机能够进行数据存储。
62.另外,上述方法流程中,数据处理设备可以通过装载一种特别的网卡,利用该网卡中的虚拟存储执行模块为虚拟机分担远端数据存储的任务,使得虚拟机的数据处理模块可以专注执行自身的数据处理任务,可以节约虚拟机的计算资源,提高数据处理效率,提高用户使用数据处理服务的体验。
63.此外,还可以进一步通过网卡上的虚拟存储执行模块,执行数据加密,为虚拟机分担数据加密的任务,进一步节约了虚拟机的计算资源,从而在不增加虚拟机的计算资源负担的前提下,提高数据在远端存储的安全性,以及在数据传输过程中的安全性。
64.由于在网络中传输的就是密文形式的数据,因此数据传输的过程中可以不执行额外的加密操作,例如,无需通过ipsec等形式进行额外的传输加密,从而可以提高数据传输的效率。并且在外部存储设备中存储的也是密文形式的数据,没有掌握对应解密密钥的设备无法获取到明文数据,从而可以在不增加虚拟机负担的情况下,提高数据在远端存储过程中的安全性。
65.并且,远端存储设备可以直接存储接收到的数据密文,无需其他处理,可扩展性较好。
66.下面分别针对各个步骤进行详细解释。
67.s101:任一虚拟机中的数据处理模块将待存储数据明文发送给该虚拟机中的虚拟存储驱动模块。
68.在一种可选的实施例中,待存储数据明文可以是数据处理模块在执行数据处理过程中相关的数据。例如,数据处理结果,数据处理中间结果,数据处理日志等。
69.数据处理模块出于数据存储需求,需要将至少部分数据进行存储。例如,需要将至少部分数据存储到磁盘,但是并不希望存储在数据处理设备本地。
70.因此,可选地,数据处理模块可以将这些至少部分数据确定为待存储数据明文,直接将待存储数据明文发送到该虚拟机中新增的虚拟存储驱动模块。
71.对于虚拟机而言,可以对远端数据存储以及远端存储设备无感知,对虚拟机与远端存储设备进行解耦。虚拟机可以将虚拟存储驱动模块所驱动的虚拟存储执行模块,看作是一个虚拟化的本地存储空间,从而只需要将待存储数据明文发送到用于驱动这一虚拟化本地存储空间的虚拟存储驱动模块即可。
72.在本实施例中,可以针对虚拟机装载新的虚拟存储驱动模块,虚拟存储驱动模块
的功能较为简单,并且,虚拟存储驱动模块的使用逻辑也十分简单,只需要数据处理模块向虚拟存储驱动模块发送待存储数据明文即可,因此,可以简化对于虚拟机的改动,主要由一种特别的网卡分担远端数据存储的任务。
73.可选地,虚拟存储驱动模块,具体可以是virtio-blk驱动。虚拟存储驱动模块可以用于驱动虚拟存储执行模块,相应地,虚拟存储执行模块具体可以是virtio-blk vf。virtio-blk是一种虚拟磁盘技术,virtio-blk驱动为设备的cpu提供一种可调用的虚拟磁盘接口,而virtio-blk vf可以通过网络调用非设备本地的磁盘,为设备实现本地存储的功能。
74.s102:该虚拟存储驱动模块将该待存储数据明文发送给对应于该虚拟机的虚拟存储执行模块。
75.可选地,一个虚拟存储执行模块,可以对应于数据处理设备上部署的多个虚拟机。
76.该虚拟存储执行模块可以由多个虚拟机中的虚拟存储驱动模块进行驱动,从而执行相应的远端数据存储任务。
77.可选地,网卡上可以包括至少一个虚拟存储执行模块,不同虚拟机可以一一对应于不同的虚拟存储执行模块,换言之,数据处理设备上每个虚拟机可以对应于专用的虚拟存储执行模块。
78.具体地,不同虚拟存储执行模块可以一一对应于不同虚拟存储驱动模块,每个虚拟存储执行模块可以只能由对应的一个虚拟存储驱动模块进行驱动。因此,虚拟机可以通过自身装载的虚拟存储驱动模块,唯一驱动一个虚拟存储执行模块。而其他虚拟机或者其他虚拟存储驱动模块,都无法驱动该虚拟存储执行模块。
79.在本实施例中,每个虚拟机可以使用专用的虚拟存储执行模块,作为专用的虚拟化存储空间,从而可以在一定程度上实现不同虚拟机之间的数据隔离效果,隔离不同虚拟机中数据处理模块中需要存储的数据,提高虚拟机中数据的安全性。
80.例如,如果多个虚拟机通过不同的虚拟存储驱动模块,驱动同一个虚拟存储执行模块进行远端数据存储,那么对于其中一个虚拟机中数据处理模块发送到该虚拟存储执行模块的数据,其他虚拟机也可以通过自身的虚拟存储驱动模块,驱动该虚拟存储执行模块,获取该虚拟机的数据。
81.因此,通过隔离不同虚拟机中数据处理模块中需要存储的数据,可以避免其他虚拟机或者其他设备获取到虚拟机中的数据,提高虚拟机中数据的安全性。
82.可选地,该虚拟存储驱动模块可以将该待存储数据明文发送给该虚拟机专用的虚拟存储执行模块。由于该虚拟存储执行模块是该虚拟机专用的,可以提高待存储数据明文的安全性。
83.s103:该虚拟存储执行模块将该待存储数据明文发送给加密模块。
84.s104:加密模块对该待存储数据明文进行加密,并将得到的待存储数据密文返回给该虚拟存储执行模块。
85.下面针对s103和s104进行解释。
86.1)关于虚拟机专用的加密密钥。
87.在一种可选的实施例中,加密模块可以使用加密密钥针对该待存储数据明文进行加密。
88.本方法流程并不限定具体的加密方式,具体可以是,aes-cbc/aes-xts等主流块存储加密算法。
89.由于数据处理设备中可以部署有一个或多个虚拟机,可选地,不同虚拟机之间,可以具有不同的加密密钥,针对各自数据处理模块中需要存储的数据,使用不同的加密密钥进行加密。换言之,数据处理设备上的每个虚拟机可以具有专用的加密密钥。
90.其中,由于使用不同的加密密钥进行加密,因此,如果某一个虚拟机远端存储的数据密文被破解,也不会影响其他虚拟机远端存储的数据密文安全性,从而可以提高待存储数据明文的安全性。
91.可选地,数据处理设备上可以部署有至少两个虚拟机;加密模块对该待存储数据明文进行加密,可以包括:加密模块使用该虚拟机所专用的加密密钥,对该待存储数据明文进行加密。
92.本实施例可以通过虚拟机专用的加密密钥,提高虚拟机中待存储数据明文的安全性。
93.2)关于加密密钥的具体形式。
94.本方法流程并不限定加密密钥的具体形式,可以是对称密钥,也可以是非对称密钥。
95.需要说明的是,在加密密钥是对称密钥的情况下,加密密钥与解密密钥相同,因此,存储有虚拟机专用加密密钥的网卡具有数据加密存储和数据密文解密的能力,在这种情况下,提高虚拟机专用加密密钥的安全性也可以提高虚拟机专用解密密钥的安全性。
96.3)关于数据安全区。
97.在一种可选的实施例中,由于需要使用各个虚拟机专用的加密密钥对待存储数据明文进行加密,因此,各个虚拟机专用的加密密钥较为重要。如果加密密钥泄露,可能会导致被破解出相应的解密密钥。
98.例如,在加密密钥为对称密钥的情况下,加密密钥和解密密钥相同,加密密钥泄露也就意味着解密密钥泄露。
99.为了提高各个虚拟机专用的加密密钥安全性,数据处理设备的网卡中可以具有数据安全区。其中,可以认为数据安全区中的数据难以外泄。
100.可选地,数据安全区可以是网卡以外的设备无法直接获取数据的区域,本方法流程并不限定具体的数据安全区的形式,只要数据安全区中的数据难以泄露即可。可选地,数据安全区可以通过硬件或软件构建一个相对独立的存储区域,数据的进出可以受到严格的管控,从而降低其中数据泄露的可能性。数据安全区例如,可信执行环境,sgx等。
101.相应地,数据安全区中可以存储有各个虚拟机专用的加密密钥,从而提高虚拟机专用的加密密钥的安全性。
102.可选地,数据安全区可以具体是硬件级的数据安全区,通过硬件保护各个虚拟机专用的加密密钥,进一步提高各个虚拟机专用的加密密钥的安全性。攻击方的攻击方式通常是软件级的攻击,通常难以成功攻击硬件级的数据安全区。
103.当然,在其他可选的实施例中,也可以多个虚拟机使用同一加密密钥。
104.因此,可选地,网卡可以具有硬件级的数据安全区,加密模块所使用的加密密钥可以存储在数据安全区。
105.其中,加密模块所使用的的加密密钥可以是各个虚拟机专用的加密密钥,也可以是多个虚拟机使用的同一加密密钥。
106.需要说明的是,通常可以在数据安全区中存储不同虚拟机与不同加密密钥之间的一一对应关系,从而可以方便确定出某个虚拟机对应的专用加密密钥。
107.在本实施例中,可以通过网卡的硬件级数据安全区存储加密密钥,实现提高加密密钥安全性的效果,即保护数据的加密密钥不会以明文方式出现在内存及cpu cache中,而是在硬件级数据安全区中利用加密密钥加密,无需出现在内存及cpu cache中。
108.4)关于虚拟机与加密密钥之间对应关系的具体形式。
109.本实施例并不限定虚拟机与加密密钥之间对应关系的具体形式。可以是虚拟机标识与加密密钥之间的对应关系,也可以在虚拟机具有专用的虚拟存储执行模块的情况下,对应关系具体是虚拟存储执行模块标识与加密密钥之间的对应关系。
110.相应地,在虚拟机标识与加密密钥之间的对应关系,具体是虚拟机标识与加密密钥之间的对应关系的情况下,s103:该虚拟存储执行模块将该待存储数据明文发送给加密模块,具体还可以包括,加密模块确定该虚拟机的标识,具体可以是加密模块获取该虚拟存储执行模块发送的该虚拟机的标识。s104中的加密模块对该待存储数据明文进行加密,具体可以包括,加密模块根据该虚拟机的标识,确定对应的加密密钥,作为该虚拟机专用的加密密钥,对该待存储数据明文进行加密。
111.相应地,在虚拟机标识与加密密钥之间的对应关系,具体是虚拟存储执行模块标识与加密密钥之间的对应关系的情况下,s103:该虚拟存储执行模块将该待存储数据明文发送给加密模块,具体还可以包括,加密模块确定该虚拟存储执行模块的标识。s104中的加密模块对该待存储数据明文进行加密,具体可以包括,加密模块根据该虚拟存储执行模块的标识,确定对应的加密密钥,作为该虚拟机专用的加密密钥,对该待存储数据明文进行加密。
112.可选地,在虚拟机具有专用的虚拟存储执行模块,虚拟机标识与加密密钥之间的对应关系,具体是虚拟机标识与加密密钥之间的对应关系的情况下,s103:该虚拟存储执行模块将该待存储数据明文发送给加密模块,具体还可以包括,加密模块根据该虚拟存储执行模块的标识,确定对应的该虚拟机标识。s104中的加密模块对该待存储数据明文进行加密,具体可以包括,加密模块根据该虚拟机的标识,确定对应的加密密钥,作为该虚拟机专用的加密密钥,对该待存储数据明文进行加密。
113.5)加密模块也可以部署在数据安全区。
114.在一种可选的实施例中,在加密模块所使用的加密密钥存储在数据安全区的情况下,加密模块需要使用加密密钥,对待存储数据明文进行加密,因此,加密模块需要从数据安全区中获取所需的加密密钥。具体可以是某一虚拟机专用的加密密钥。
115.可选地,加密模块也可以部署在数据安全区中,从而可以避免将加密密钥传输到数据安全区之外,进一步提高加密密钥的安全性。
116.并且,加密模块所执行的步骤也不会泄露,进一步提高加密密钥的安全性。
117.当然,在加密模块使用各个虚拟机专用的加密密钥的情况下,也可以提高各个虚拟机专用的加密密钥的安全性。
118.在一种可选的实施例中,不同虚拟机与不同虚拟存储执行模块一一对应,可以实
现不同虚拟机之间数据隔离的效果,提高待存储数据明文的安全性。
119.进一步地,在加密模块部署在数据安全区的情况下,待存储数据明文在加密过程中会直接在数据安全区中进行加密,降低了加密模块泄露待存储数据明文的可能性,因此,可以更好地实现数据隔离的效果,提高待存储数据明文的安全性。
120.具体地,任一虚拟机都无法直接获取数据安全区中的数据,也就无法获取到数据安全区中的待存储数据明文,也无法调用加密模块获取到其他虚拟机的待存储数据明文,从而提高了待存储数据明文的安全性。
121.在本实施例中,由于虚拟存储执行模块是虚拟机专用的,可以看作是可信的区域,又借助数据安全区进行数据加密,使得待存储数据明文始终在网卡的可信区域中,直到加密完成得到待存储数据密文。
122.因此,可以将网卡整体看作是一个数据安全区,其中的待存储数据明文难以从网卡中泄露。具体的实现方法,包括由虚拟机专用的虚拟存储执行模块接收到待存储数据明文,并且虚拟存储执行模块将待存储数据明文发送到数据安全区中的加密模块进行加密,得到待存储数据密文。
123.6)加密模块可以管理加密密钥。
124.在一种可选的实施例中,加密模块所使用的加密密钥可以作为一个加密密钥集合,或者一个加密密钥库,方便加密模块调用。
125.可选地,加密模块可以用于管理加密密钥集合,具体可以是针对加密密钥集合进行更新。例如,新增加密密钥、删除加密密钥、修改虚拟机与加密密钥之间的对应关系等。
126.以加密模块管理各个虚拟机专用的加密密钥为例。
127.可选地,加密模块管理各个虚拟机专用的加密密钥的步骤可以包括以下至少一个:在确定任一虚拟机从数据处理设备迁移到其他数据处理设备的情况下,向其他数据处理设备的网卡中的加密模块发送该虚拟机专用的加密密钥;在确定数据处理设备创建任一虚拟机的情况下,生成该虚拟机专用的加密密钥;在确定数据处理设备删除任一虚拟机的情况下,删除该虚拟机专用的加密密钥。
128.关于加密密钥迁移。
129.可选地,由于虚拟机通常已经使用专用的加密密钥进行远端数据存储,因此,为了保持加密数据的密钥一致性,降低加解密的复杂度,虚拟机在数据处理设备之间进行迁移时,通常需要专用的加密密钥一同跟随迁移到新设备的网卡中。
130.可选地,其他数据处理设备的网卡也可以是本方法流程中特别的网卡,从而也部署有加密模块,并且这类特别的网卡之间可以互相进行通信。因此,可以针对迁移的虚拟机专用加密密钥实现热迁移。
131.需要说明的是,网卡内部存储加密密钥的安全性较高,可以避免在虚拟机中通过内存或缓存泄露加密密钥。例如,网卡中可以具有硬件级的数据安全区。因此,可以直接通过网卡之间的交互,也就是加密模块之间的通信,实现迁移虚拟机专用的加密密钥跟随,提高加密模块在迁移过程中的安全性。
132.具体加密模块之间,可选地,为了提高虚拟机专用的加密密钥在传输过程中的安全性,可以使用安全连接或者密文形式进行传输。
133.因此,可选地,在任一虚拟机需要由数据处理设备迁移至其他数据处理设备的情
况下,还包括:该虚拟机中的数据处理模块向该虚拟机中的虚拟存储驱动模块发送迁移通知。
134.该虚拟存储驱动模块将该迁移通知发送给对应于该虚拟机的虚拟存储执行模块。
135.该虚拟存储执行模块根据该迁移通知,向加密模块发送密钥迁移指令。
136.加密模块对数据安全区中存储的对应于该虚拟机的密钥进行加密。
137.加密模块以加密后的该密钥为报文负载,以待迁移的其他数据处理设备的网卡中的其他加密模块的通信地址为目的地址,构建密钥迁移报文并进行网络发送,以便于该其他加密模块解密获得该密钥。
138.当然,本实施例并不限定迁移通知的具体来源,只要虚拟存储执行模块接收到某一虚拟机的迁移通知,其中明确了待迁移的其他数据处理设备的网卡中的其他加密模块的通信地址即可。
139.其中,对应于该虚拟机的加密密钥具体可以是该虚拟机专用的加密密钥。
140.本实施例也不限定对密钥进行加密和解密的方式。一种可选的示例为,利用待迁移的其他数据处理设备的网卡的公钥进行加密。该其他加密模块可以使用相应的私钥解密。
141.本实施例通过虚拟机迁移时,通过设备间特别网卡的交互,实现了虚拟机对应加密密钥的迁移,从而可以保持虚拟机远端存储的数据密文的密钥一致性。并且,通过加密传输密钥的方式,提高了加密密钥在迁移过程中的安全性。
142.关于加密密钥创建。
143.可选地,由网卡内部的加密模块,直接在确定数据处理设备创建任一虚拟机的情况下,生成该虚拟机专用的加密密钥,或者生成该虚拟机对应的加密密钥。
144.其中,无需该虚拟机参与加密密钥的生成过程,可以提高加密密钥的安全性,也可以使得该虚拟机对加密密钥无感知。本实施例并不限定加密密钥的生成方法。具体可以是密钥派生方法。
145.具体确定数据处理设备创建虚拟机,可以是针对所创建的虚拟机,在确定该虚拟机对应的虚拟存储执行模块后,下发控制命令,通知加密模块生成一个对应的加密密钥。该加密密钥可以绑定该虚拟机的标识,存储在网卡的加密密钥库中。
146.关于加密密钥删除。
147.可选地,加密模块在确定数据处理设备删除任一虚拟机的情况下,可以删除该虚拟机专用的加密密钥,或者删除该虚拟机对应的加密密钥,节约存储资源。
148.可选地,加密模块在确定任一虚拟机从数据处理设备迁移到其他数据处理设备的情况下,也可以在向其他数据处理设备的网卡中的加密模块发送该虚拟机对应的加密密钥之后,删除该虚拟机对应的加密密钥,节约存储资源。
149.s105:该虚拟存储执行模块以该待存储数据密文为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建存储报文并发送给网卡驱动模块进行网络发送,以便于将待存储数据密文存储至该远端存储设备。
150.可选地,远端存储设备可以是云盘。
151.其中,网卡驱动模块主要用于发送报文,具体可以是根据路由表发送报文。
152.在一种可选的实施例中,将待存储数据密文发送到远端存储设备,远端存储设备
需要将待存储数据密文存储至设备本地。
153.需要说明的是,虚拟存储执行模块可以绑定远端存储设备中的部分存储区域,进行远端数据存储,从而可以更高效地利用存储资源。
154.因此,该虚拟存储执行模块绑定有非本地的远端存储设备,可以包括:该虚拟存储执行模块绑定有非本地的远端存储设备上的目标存储空间;其中,存储报文的报文负载还包括:目标存储空间的地址,以便于将待存储数据密文存储至目标存储空间。
155.相应地,目标存储空间所在的远端存储设备,可以根据报文负载中的空间地址,将待存储数据密文存储至该空间地址表征的存储空间。
156.可选地,不同虚拟存储执行模块可以绑定不同的远端存储设备,不同的虚拟存储执行模块可以绑定不同的远端存储区域。
157.在一种可选的实施例中,不同虚拟存储执行模块可以一一对应不同的远端存储区域。
158.在不同虚拟机与不同虚拟存储执行模块一一对应的情况下,由于虚拟存储执行模块绑定有专用的远端存储区域,也就意味着每个虚拟机具有专用的远端存储空间。
159.从而可以进一步将不同虚拟机远端存储的数据密文进一步隔离,提高远端存储数据的安全性。
160.具体地,如果某一远端存储空间被攻击,导致对应虚拟机的数据密文泄露,那么其他虚拟机的数据密文不受影响。
161.因此,本实施例通过隔离不同虚拟机的远端存储数据,可以进一步实现不同虚拟机之间数据隔离的效果,提高待存储数据密文的安全性。
162.为了便于理解,如图2所示,为本说明书实施例提供的一种数据存储方法的原理示意图。
163.其中,数据处理设备上部署有虚拟机1-3,每个虚拟机中包括数据处理模块和虚拟存储驱动模块。
164.数据处理设备的网卡包括虚拟存储执行模块1-3、加密模块、加密密钥库和网卡驱动模块。
165.虚拟存储执行模块1-3可以与虚拟机1-3一一对应。网卡还具有数据安全区,加密模块和加密密钥库部署在数据安全区中。
166.在数据处理设备之外,还存在一个远端存储设备。
167.图2中示出了各模块间交互的具体情况。
168.上述方法流程解释了远端数据存储。
169.而对于虚拟机的数据处理模块,还具有对已存储数据的使用需求,从而需要读取远端存储设备中的已存储数据。
170.因此,对应于上述方法流程,还需要针对从远端存储设备中读取的数据密文进行解密。
171.通常可以是由虚拟机进行解密,为了提高虚拟机的数据处理效率,可以由网卡中的虚拟存储执行模块执行密文解密。加密模块具体为加解密模块,既可以执行数据加密,也可以执行数据解密。
172.因此,上述方法流程还可以包括以下步骤。
173.s201:任一虚拟机中的数据处理模块向该虚拟机中的虚拟存储驱动模块发送待读取数据明文对应的标识信息。
174.可选地,待读取数据明文对应的标识信息,可以是数据块的标识。
175.s202:该虚拟存储驱动模块将该待读取数据明文的标识信息,发送给对应于该虚拟机的虚拟存储执行模块。
176.s203:该虚拟存储执行模块根据该待读取数据明文的标识信息,确定相应的待读取数据密文的标识信息。
177.可选地,可以直接将待读取数据明文对应的标识信息,确定为相应的待读取数据密文的标识信息。具体可以是在上述方法流程中加密时,只加密数据内容,而不加密数据标识或数据索引,因此,数据明文和数据密文的标识信息相同。
178.s203:该虚拟存储执行模块以该待读取数据密文的标识信息为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建读取请求报文并发送给网卡驱动模块进行网络发送。
179.s204:该虚拟存储执行模块接收网卡驱动模块发送的读取反馈报文,读取反馈报文是该远端存储设备构建并进行网络发送的,读取反馈报文的报文负载包括该待读取数据密文。
180.s205:该虚拟存储执行模块将该待读取数据密文发送给加解密模块。
181.s206:加解密模块对该待读取数据密文进行解密,并将得到的待读取数据明文返回给该虚拟存储执行模块。
182.s207:该虚拟存储执行模块将该待读取数据明文发送给该虚拟存储驱动模块。
183.s208:该虚拟存储驱动模块将该待读取数据明文发送给该数据处理模块。
184.在一种可选的实施例中,数据处理设备上可以部署有至少两个虚拟机;加解密模块对该待读取数据密文进行解密,可以包括:加解密模块使用该虚拟机所专用的解密密钥,对该待读取数据密文进行加密。
185.在一种可选的实施例中,网卡可以具有硬件级的数据安全区,加解密模块所使用的解密密钥存储在数据安全区。加解密模块也可以部署在数据安全区。
186.该方法流程的具体解释可以参见上述方法流程s101-s105的解释。
187.其中,关于解密密钥,可以参考上述加密密钥的解释。
188.为了便于理解,如图3所示,为本说明书实施例提供的一种数据存储方法中读取数据的原理示意图。
189.其中,数据处理设备上部署有虚拟机1-3,每个虚拟机中包括数据处理模块和虚拟存储驱动模块。
190.数据处理设备的网卡包括虚拟存储执行模块1-3、加解密模块、解密密钥库和网卡驱动模块。
191.虚拟存储执行模块1-3可以与虚拟机1-3一一对应。网卡还具有数据安全区,加解密模块和解密密钥库部署在数据安全区中。
192.在数据处理设备之外,还存在一个远端存储设备。
193.图3中示出了各模块间交互的具体情况。
194.上述方法流程中,虚拟机的数据处理模块通过所在数据处理设备的网卡,可以将
需要存储的数据通过网卡中的虚拟存储执行模块,发送到远端存储设备进行存储,从而可以实现远端存储,使得虚拟机能够进行数据存储。
195.另外,上述方法流程中,数据处理设备可以通过装载一种特别的网卡,利用该网卡中的虚拟存储执行模块为虚拟机分担远端数据存储的任务,使得虚拟机的数据处理模块可以专注执行自身的数据处理任务,可以节约虚拟机的计算资源,提高数据处理效率,提高用户使用数据处理服务的体验。
196.此外,还可以进一步通过网卡上的虚拟存储执行模块,执行数据加密,为虚拟机分担数据加密的任务,进一步节约了虚拟机的计算资源,从而在不增加虚拟机的计算资源负担的前提下,实现了落盘加密和传输加密,提高数据在远端存储的安全性,以及在数据传输过程中的安全性。
197.由于在网络中传输的就是密文形式的数据,因此数据传输的过程中可以不执行额外的加密操作,例如,无需通过ipsec等形式进行额外的传输加密,从而可以提高数据传输的效率。并且在外部存储设备中存储的也是密文形式的数据,没有掌握对应解密密钥的设备无法获取到明文数据,从而可以在不增加虚拟机负担的情况下,提高数据在远端存储过程中的安全性。
198.并且,远端存储设备可以直接存储接收到的数据密文,无需其他处理,可扩展性较好。
199.还可以通过网卡中的数据安全区,提高加密密钥和解密密钥的安全性,具体可以是保护加密密钥和解密密钥不会以明文方式出现在内存及cpu cache中。
200.对应于上述方法实施例,本说明书实施例还提供了一种数据处理设备的实施例和一种网卡的实施例。
201.一种数据处理设备,其中,数据处理设备上部署有至少一个虚拟机,每个虚拟机中包括数据处理模块与虚拟存储驱动模块,该虚拟存储驱动模块用于驱动对应于该虚拟机的虚拟存储执行模块,该虚拟存储执行模块绑定有非本地的远端存储设备;数据处理设备的网卡中包括网卡驱动模块、加密模块与对应于每个虚拟机的虚拟存储执行模块。
202.任一虚拟机中的数据处理模块,用于将待存储数据明文发送给该虚拟机中的虚拟存储驱动模块。
203.该虚拟存储驱动模块,用于将该待存储数据明文发送给对应于该虚拟机的虚拟存储执行模块。
204.该虚拟存储执行模块,用于将该待存储数据明文发送给加密模块。
205.加密模块,用于对该待存储数据明文进行加密,并将得到的待存储数据密文返回给该虚拟存储执行模块。
206.该虚拟存储执行模块,用于以该待存储数据密文为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建存储报文并发送给网卡驱动模块进行网络发送,以便于将待存储数据密文存储至该远端存储设备。
207.如图4所示,为本说明书实施例提供的一种网卡的结构示意图。
208.其中一种网卡,装载于数据处理设备,数据处理设备上部署有至少一个虚拟机,每个虚拟机中包括数据处理模块与虚拟存储驱动模块,该虚拟存储驱动模块用于驱动对应于该虚拟机的虚拟存储执行模块,该虚拟存储执行模块绑定有非本地的远端存储设备;网卡
中包括网卡驱动模块303、加密模块302与对应于每个虚拟机的虚拟存储执行模块301。
209.任一虚拟机中的数据处理模块,用于将待存储数据明文发送给该虚拟机中的虚拟存储驱动模块。
210.该虚拟存储驱动模块,用于将该待存储数据明文发送给对应于该虚拟机的虚拟存储执行模块301。
211.该虚拟存储执行模块301,用于将该待存储数据明文发送给加密模块。
212.加密模块302,用于对该待存储数据明文进行加密,并将得到的待存储数据密文返回给该虚拟存储执行模块。
213.该虚拟存储执行模块301,用于以该待存储数据密文为报文负载,以所绑定的远端存储设备的通信地址为报文目的地址,构建存储报文并发送给网卡驱动模块303进行网络发送,以便于将待存储数据密文存储至该远端存储设备。
214.上述一种数据处理设备的实施例和一种网卡的实施例具体解释可以参见上述方法实施例。
215.图5示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
216.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
217.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
218.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
219.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
220.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
221.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
222.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程
序被处理器执行时实现一种数据发送方法中代理模块和/或网卡驱动模块所执行的步骤。
223.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例中的数据处理模块,或网卡驱动模块,或虚拟存储驱动模块,或虚拟存储执行模块,或加密模块的功能。
224.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
225.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
226.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
227.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
228.以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献