云存储区间更新方法、装置、电子设备及计算机存储介质与流程

文档序号:24397483发布日期:2021-03-26 22:28阅读:105来源:国知局
云存储区间更新方法、装置、电子设备及计算机存储介质与流程

1.本发明实施例涉及存储数据处理技术领域,具体涉及一种云存储区间更新方法、装置、电子设备及计算机存储介质。


背景技术:

2.随着数据技术的发展,为了提高数据的使用效率和安全性,虚拟化技术应运而生,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在新一代的虚拟化架构下,虚拟机的输入输出(io)设备通常采用直通方式,比如pci passthrough,pci passthrough指的是允许客户机排他地使用宿主机上的某个pci设备,就像将该设备物理连接到客户机上一样,在这种场景下,缓存资源需要提前分配,不能够接受即时分配,不支持页面置换,这是因为页面置换涉及的页面拷贝和更新映射均是由cpu来执行,而设备端会通过直接内存存取(dma,direct memory access)绕过cpu访问内存,这样就很难保证页面置换过程中设备是否进行了写操作,而且在虚拟机所在的物理机上,如果发生硬件或内存错误,也无法实现页面的置换,这就为存储资源的使用带来了不便。为了解决该问题,现有技术中,在需要置换或迁移页面时,通常使用停止设备工作的方式来避免页面置换或迁移期间的直接内存存取访问,或者客户机在发起直接内存存取访问时,与虚拟机监控器通信,让虚拟机监控器了解哪些页面正在处理直接内存存取访问,以在需要时对直接内存存取访问进行控制。上述现有技术方案均需要虚拟机系统的参与,这就会受限于虚拟机内部系统是否开启或支持相应功能,是否能够配合,这样就很难在云存储这样的环境中进行使用。


技术实现要素:

3.本发明实施例提供一种云存储区间更新方法、装置、电子设备及计算机存储介质。
4.第一方面,本发明实施例中提供了一种云存储区间更新方法。
5.具体的,所述云存储区间更新方法,包括:
6.确定云存储系统中的待更新云存储区间;
7.确定所述云存储系统中的目标云存储区间;
8.当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间。
9.结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间,包括:
10.清除所述待更新云存储区间的数据目录信息;
11.将所述待更新云存储区间数据复制至所述目标云存储区间;
12.计算复制数据后得到的目标云存储区间的第一内容校验值;
13.锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
14.当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元。
15.结合第一方面和第一方面的第一种实现方式,本发明实施例在第一方面的第二种实现方式中,所述计算复制数据后得到的目标云存储区间的第一内容校验值之后,还包括:
16.锁定输入输出索引地址环形数据组件,其中,所述输入输出索引地址环形数据组件存储有与所述云存储区间对应的指向物理地址的索引地址;
17.检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值;
18.所述锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值,被实施为:
19.当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值。
20.结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述检测所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值之后,还包括:
21.当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离小于预设距离阈值时,解锁所述输入输出索引地址环形数据组件,使其进入睡眠状态预设时间,返回重新清除所述待更新云存储区间的数据目录信息。
22.结合第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元,被实施为:
23.当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元,解锁所述输入输出索引地址环形数据组件。
24.结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值之后,还包括:
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.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
53.结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
54.图1示出根据本发明一实施方式的存储区间更新方法的流程图;
55.图2示出根据图1所示实施方式的存储区间更新方法的步骤s103的流程图;
56.图3-图5示出根据图1所示不同实施方式的存储区间更新方法的步骤s103的流程图;
57.图6示出根据本发明一实施方式的存储区间更新装置的结构框图;
58.图7示出根据图6所示实施方式的复制模块603的结构框图;
59.图8-图10示出根据图6所示不同实施方式的复制模块603的结构框图;
60.图11示出根据本发明一实施方式的电子设备的结构框图;
61.图12是适于用来实现根据本发明一实施方式的存储区间更新方法的计算机系统的结构示意图。
具体实施方式
62.下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
63.在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
64.另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
65.本发明实施例提供的技术方案通过基于内容验证,进一步地,基于对于输入输出索引地址环形数据组件的控制将所述待更新云存储区间数据复制至所述目标云存储区间。
该技术方案在虚拟化直通场景中,只需对于输入输出索引地址环形数据组件进行控制,以及基于内容验证的方式,即可安全地实现页面置换或迁移,而无需直通设备、客户机的参与或通信,从而简化了页面置换流程,降低了通信数据量,节省了通信资源,可应用于云存储环境中。
66.图1示出根据本发明一实施方式的存储区间更新方法的流程图,如图1所示,所述存储区间更新方法包括以下步骤s101-s103:
67.在步骤s101中,确定云存储系统中的待更新云存储区间;
68.在步骤s102中,确定所述云存储系统中的目标云存储区间;
69.在步骤s103中,当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间。
70.上文提及,随着数据技术的发展,为了提高数据的使用效率和安全性,虚拟化技术应运而生,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在新一代的虚拟化架构下,虚拟机的输入输出(io)设备通常采用直通方式,比如pci passthrough,pci passthrough指的是允许客户机排他地使用宿主机上的某个pci设备,就像将该设备物理连接到客户机上一样,在这种场景下,缓存资源需要提前分配,不能够接受即时分配,不支持页面置换,这是因为页面置换涉及的页面拷贝和更新映射均是由cpu来执行,而设备端会通过直接内存存取(dma,direct memory access)绕过cpu访问内存,这样就很难保证页面置换过程中设备是否进行了写操作,而且在虚拟机所在的物理机上,如果发生硬件或内存错误,也无法实现页面的置换,这就为存储资源的使用带来了不便。为了解决该问题,现有技术中,在需要置换或迁移页面时,通常使用停止设备工作的方式来避免页面置换或迁移期间的直接内存存取访问,或者客户机在发起直接内存存取访问时,与虚拟机监控器通信,让虚拟机监控器了解哪些页面正在处理直接内存存取访问,以在需要时对直接内存存取访问进行控制。上述现有技术方案均需要虚拟机系统的参与,这就会受限于虚拟机内部系统是否开启或支持相应功能,是否能够配合,这样就很难在云存储这样的环境中进行使用。
71.考虑到上述问题,在该实施方式中,提出一种存储区间更新方法,该方法通过基于内容验证,进一步地,基于对于输入输出索引地址环形数据组件的控制将所述待更新云存储区间数据复制至所述目标云存储区间。该技术方案在虚拟化直通场景中,只需对于输入输出索引地址环形数据组件进行控制,以及基于内容验证的方式,即可安全地实现页面置换或迁移,而无需直通设备、客户机的参与或通信,从而简化了页面置换流程,降低了通信数据量,节省了通信资源,可应用于云存储环境中。
72.在本发明一实施方式中,所述云存储区间指的是云存储系统的存储资源中用于存储数据的区间,也可以称之为存储页面。其中,所述待更新云存储区间指的是由于出现数据存储故障等原因而导致不能够提供稳定的数据存储服务的、需要将其上存储的数据迁移至其他数据存储空间的即需要被更新的数据存储区间,也可称之为源存储区间,其中,所述数据存储故障比如可能为内存故障、存储硬件故障等等。
73.即在本发明一实施方式中,所述步骤s101,即确定云存储系统中的待更新云存储区间的步骤,可被实施为:
74.响应于检测到云存储区间错误消息,确定云存储系统中的待更新云存储区间,比如需要置换的源页面。
75.在本发明一实施方式中,所述目标云存储区间指的是目前未发生相应的数据存储故障、可正常提供稳定的数据存储服务的、处于空闲状态的、可接受由其他待更新云存储区间迁移过来的数据的数据存储区间,比如空闲的替换目标页面。
76.即在本发明一实施方式中,所述步骤s102,即确定所述云存储系统中的目标云存储区间的步骤,可被实施为:
77.获取可用云存储区间,并在所述可用云存储区间中确定所述目标云存储空间。
78.其中,所述可用云存储区间可能有一个或多个,此时,可从所述一个或多个可用云存储区间中确定一个云存储空间作为接受数据迁移的目标云存储空间。在本发明一实施方式中,既可从所述一个或多个可用云存储区间中随机确定一个云存储空间作为所述目标云存储空间,也可按照预设确定规则确定所述目标云存储空间,其中,所述预设确定规则可由本领域技术人员根据实际应用的需要以及云存储区间的特点来确定,本公开对其不作具体限定。
79.在本发明一实施方式中,如图2所示,所述步骤s103,即当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间的步骤,包括以下步骤s201-s205:
80.在步骤s201中,清除所述待更新云存储区间的数据目录信息;
81.在步骤s202中,将所述待更新云存储区间数据复制至所述目标云存储区间;
82.在步骤s203中,计算复制数据后得到的目标云存储区间的第一内容校验值;
83.在步骤s204中,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
84.在步骤s205中,当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元。
85.为了保障数据迁移的完整性和安全性,在该实施方式中,基于内容验证的方式实现数据迁移和云存储区间的置换和更新。具体地,首先在存储管理单元(mmu)和虚拟化扩展页表(ept)中清除所述待更新云存储区间的数据目录信息,比如页表项;然后将所述待更新云存储区间数据复制至所述目标云存储区间;计算复制数据后得到的目标云存储区间的第一内容校验值,其中,所述第一内容校验值用于与后续待更新云存储区间的第二内容校验值进行比对,以确定云存储区间数据内容的一致性,若所述第一内容校验值与所述第二内容校验值相匹配,比如相等,说明待更新云存储区间中存储的数据与数据迁移后目标云存储区间中存储的数据内容是一致的,在数据迁移过程中未发生数据改变;然后锁定所述待更新云存储区间,比如虚拟化扩展页表(ept)将所述待更新云存储区间标记为写保护,并计算所述待更新云存储区间的第二内容校验值;最后比较所述第一内容校验值与所述第二内容校验值,如上文所述,当所述第一内容校验值与所述第二内容校验值相匹配时,认为在数据迁移过程中未发生数据改变,即数据迁移成功,此时,可将所述目标云存储区间信息发送给存储管理单元,以对所述存储管理单元中存储的云存储区间管理信息进行更新。
86.在本发明一实施方式中,所述数据目录信息可包括以下信息中的一种或多种:物理地址、对应的云存储区间属性信息等等。
87.在本发明一实施方式中,所述内容校验值可采用md5消息摘要算法(md5 message-digest algorithm)计算得到,所述md5消息摘要算法是一种密码散列函数,可产生一个具有一定长度的散列值,以对于待校验内容进行表征。当然,也可采用其他内容校验值计算方法来计算内容校验值,本领域技术人员可根据实际应用的需要以及待校验内容的特点选择合适的内容校验值计算方法,本公开对其不作具体限定。
88.在本发明一实施方式中,所述步骤s203,即计算复制数据后得到的目标云存储区间的第一内容校验值的步骤之后,还包括确定目标云存储区间是否有可能在短时间内被访问的步骤,即如图3所示,所述步骤s103,即当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间的步骤,包括以下步骤s301-s307:
89.在步骤s301中,清除所述待更新云存储区间的数据目录信息;
90.在步骤s302中,将所述待更新云存储区间数据复制至所述目标云存储区间;
91.在步骤s303中,计算复制数据后得到的目标云存储区间的第一内容校验值;
92.在步骤s304中,锁定输入输出索引地址环形数据组件,其中,所述输入输出索引地址环形数据组件存储有与所述云存储区间对应的指向物理地址的索引地址;
93.在步骤s305中,检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值;
94.在步骤s306中,当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
95.在步骤s307中,当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元。
96.为了避免目标云存储区间在实施数据迁移的过程中被访问,进而导致迁移数据发生错误,在该实施方式中,在计算得到复制数据后得到的目标云存储区间的第一内容校验值后,首先锁定存储有与所述云存储区间对应的指向物理地址的索引地址的输入输出索引地址环形数据组件,比如,虚拟化扩展页表(ept)将所述输入输出索引地址环形数据组件标记为写保护,阻止cpu侧对所述输入输出索引地址环形数据组件的操作,这样可以保证当前状态下数据写操作的目标云存储区间是一个确定的集合,防止在数据迁移过程中虚拟机对于所述输入输出索引地址环形数据组件执行操作,进而影响数据迁移;然后检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值,相当于检测需要替换的页面是否在所述输入输出索引地址环形数据组件的入方向上,以判断所述目标云存储区间的数据迁移操作是否在预设时间段内安全,会不会与所述输入输出索引地址环形数据组件操作发生冲突,或者说确定所述目标云存储区间是否有可能在短时间内被访问,其中,所述预设时间段至少大于等于数据迁移所需要的时间;进而当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,或者说需要替换的页面不在所述输入输出索引地址环形数据组件的入方向上时,认为所述目标云存储区间的数据迁移操作在预设时间段内是安全的,不会在短时间内被访问,不会与所
述输入输出索引地址环形数据组件操作发生冲突,此时,再锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值。
97.在本发明一实施方式中,当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离小于预设距离阈值时,或者说需要替换的页面处于所述输入输出索引地址环形数据组件的入方向上时,认为所述目标云存储区间的数据迁移操作在预设时间段内可能是不安全的,有可能在短时间内被访问,有可能会与所述输入输出索引地址环形数据组件操作发生冲突,此时,先解锁所述输入输出索引地址环形数据组件,使其进入睡眠状态,并持续预设时间,再返回所述步骤s301重新清除所述待更新云存储区间的数据目录信息,避开有可能发生的数据操作冲突风险。
98.即在本发明一实施方式中,如图4所示,所述步骤s103,即当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间的步骤,包括以下步骤s401-s408:
99.在步骤s401中,清除所述待更新云存储区间的数据目录信息;
100.在步骤s402中,将所述待更新云存储区间数据复制至所述目标云存储区间;
101.在步骤s403中,计算复制数据后得到的目标云存储区间的第一内容校验值;
102.在步骤s404中,锁定输入输出索引地址环形数据组件,其中,所述输入输出索引地址环形数据组件存储有与所述存储区间对应的指向物理地址的索引地址;
103.在步骤s405中,检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值;
104.在步骤s406中,当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
105.在步骤s407中,当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元;
106.在步骤s408中,当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离小于预设距离阈值时,解锁所述输入输出索引地址环形数据组件,使其进入睡眠状态预设时间,返回重新清除所述待更新云存储区间的数据目录信息。
107.在本发明一实施方式中,如上文所述,当所述第一内容校验值与所述第二内容校验值相匹配时,说明待更新云存储区间中存储的数据与数据迁移后目标云存储区间中存储的数据内容一致,在数据迁移过程中未发生数据改变,可将所述目标云存储区间信息发送给存储管理单元(mmu或iommu)进行数据更新,此时认为数据迁移过程完成,虚拟化扩展页表(ept)可解锁所述输入输出索引地址环形数据组件,即解除所述输入输出索引地址环形数据组件的写保护,使其恢复正常访问操作,即在该实施方式中,所述步骤s407,即当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元的步骤,可被实施为:
108.当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间
信息发送给存储管理单元,解锁所述输入输出索引地址环形数据组件。
109.在本发明一实施方式中,所述步骤s204,即锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值的步骤之后,还包括当所述第一内容校验值与所述第二内容校验值不相匹配时,返回再次将所述待更新云存储区间数据复制至所述目标云存储区间的步骤,即如图5所示,所述步骤s103,即当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间的步骤,包括以下步骤s501-s506:
110.在步骤s501中,清除所述待更新云存储区间的数据目录信息;
111.在步骤s502中,将所述待更新云存储区间数据复制至所述目标云存储区间;
112.在步骤s503中,计算复制数据后得到的目标云存储区间的第一内容校验值;
113.在步骤s504中,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
114.在步骤s505中,当所述第一内容校验值与所述第二内容校验值不相匹配时,返回再次将所述待更新云存储区间数据复制至所述目标云存储区间;
115.在步骤s506中,当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元。
116.当所述第一内容校验值与所述第二内容校验值不相匹配时,说明待更新云存储区间中存储的数据与数据迁移后目标云存储区间中存储的数据内容不相一致,在数据迁移过程中可能发生了数据改变,此时,需要返回所述步骤s502,即再次将所述待更新云存储区间数据复制至所述目标云存储区间,重新执行数据迁移操作。
117.下述为本发明装置实施例,可以用于执行本发明方法实施例。
118.图6示出根据本发明一实施方式的存储区间更新装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述存储区间更新装置包括:
119.第一确定模块601,被配置为确定云存储系统中的待更新云存储区间;
120.第二确定模块602,被配置为确定所述云存储系统中的目标云存储区间;
121.复制模块603,被配置为当所述待更新云存储空间的数据与执行数据复制操作后所述目标云存储区间的数据满足预设内容验证条件时,将所述待更新云存储区间的数据复制至所述目标云存储区间。
122.上文提及,随着数据技术的发展,为了提高数据的使用效率和安全性,虚拟化技术应运而生,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在新一代的虚拟化架构下,虚拟机的输入输出(io)设备通常采用直通方式,比如pci passthrough,pci passthrough指的是允许客户机排他地使用宿主机上的某个pci设备,就像将该设备物理连接到客户机上一样,在这种场景下,缓存资源需要提前分配,不能够接受即时分配,不支持页面置换,这是因为页面置换涉及的页面拷贝和更新映射均是由cpu来执行,而设备端会通过直接内存存取(dma,direct memory access)绕过cpu访问内存,这样就很难保证页面置换过程中设备是否进行了写操作,而且在虚拟机所在的物理机上,如果发生硬件或内存错误,也无法实现页面的置换,这就为存储资源的使用带来了不便。为了解决该问题,现有技术中,在需要置换或迁移页面时,通常使用停止设备
工作的方式来避免页面置换或迁移期间的直接内存存取访问,或者客户机在发起直接内存存取访问时,与虚拟机监控器通信,让虚拟机监控器了解哪些页面正在处理直接内存存取访问,以在需要时对直接内存存取访问进行控制。上述现有技术方案均需要虚拟机系统的参与,这就会受限于虚拟机内部系统是否开启或支持相应功能,是否能够配合,这样就很难在云存储这样的环境中进行使用。
123.考虑到上述问题,在该实施方式中,提出一种存储区间更新装置,该装置通过基于内容验证,进一步地,基于对于输入输出索引地址环形数据组件的控制将所述待更新云存储区间数据复制至所述目标云存储区间。该技术方案在虚拟化直通场景中,只需对于输入输出索引地址环形数据组件进行控制,以及基于内容验证的方式,即可安全地实现页面置换或迁移,而无需直通设备、客户机的参与或通信,从而简化了页面置换流程,降低了通信数据量,节省了通信资源,可应用于云存储环境中。
124.在本发明一实施方式中,所述云存储区间指的是云存储系统的存储资源中用于存储数据的区间,也可以称之为存储页面。其中,所述待更新云存储区间指的是由于出现数据存储故障等原因而导致不能够提供稳定的数据存储服务的、需要将其上存储的数据迁移至其他数据存储空间的即需要被更新的数据存储区间,也可称之为源存储区间,其中,所述数据存储故障比如可能为内存故障、存储硬件故障等等。
125.即在本发明一实施方式中,所述第一确定模块601可被配置为:
126.响应于检测到云存储区间错误消息,确定云存储系统中的待更新云存储区间,比如需要置换的源页面。
127.在本发明一实施方式中,所述目标云存储区间指的是目前未发生相应的数据存储故障、可正常提供稳定的数据存储服务的、处于空闲状态的、可接受由其他待更新云存储区间迁移过来的数据的数据存储区间,比如空闲的替换目标页面。
128.即在本发明一实施方式中,所述第二确定模块602可被配置为:
129.获取可用云存储区间,并在所述可用云存储区间中确定所述目标云存储空间。
130.其中,所述可用云存储区间可能有一个或多个,此时,可从所述一个或多个可用云存储区间中确定一个云存储空间作为接受数据迁移的目标云存储空间。在本发明一实施方式中,既可从所述一个或多个可用云存储区间中随机确定一个云存储空间作为所述目标云存储空间,也可按照预设确定规则确定所述目标云存储空间,其中,所述预设确定规则可由本领域技术人员根据实际应用的需要以及云存储区间的特点来确定,本公开对其不作具体限定。
131.在本发明一实施方式中,如图7所示,所述复制模块603包括:
132.清除子模块701,被配置为清除所述待更新云存储区间的数据目录信息;
133.复制子模块702,被配置为将所述待更新云存储区间数据复制至所述目标云存储区间;
134.计算子模块703,被配置为计算复制数据后得到的目标云存储区间的第一内容校验值;
135.第一锁定子模块704,被配置为锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
136.发送子模块705,被配置为当所述第一内容校验值与所述第二内容校验值相匹配
时,将所述目标云存储区间信息发送给存储管理单元。
137.为了保障数据迁移的完整性和安全性,在该实施方式中,所述复制模块603基于内容验证的方式实现数据迁移和云存储区间的置换和更新。具体地,清除子模块701在存储管理单元(mmu)和虚拟化扩展页表(ept)中清除所述待更新云存储区间的数据目录信息,比如页表项;复制子模块702将所述待更新云存储区间数据复制至所述目标云存储区间;计算子模块703计算复制数据后得到的目标云存储区间的第一内容校验值,其中,所述第一内容校验值用于与后续待更新云存储区间的第二内容校验值进行比对,以确定云存储区间数据内容的一致性,若所述第一内容校验值与所述第二内容校验值相匹配,比如相等,说明待更新云存储区间中存储的数据与数据迁移后目标云存储区间中存储的数据内容是一致的,在数据迁移过程中未发生数据改变;第一锁定子模块704锁定所述待更新云存储区间,比如虚拟化扩展页表(ept)将所述待更新云存储区间标记为写保护,并计算所述待更新云存储区间的第二内容校验值;发送子模块705比较所述第一内容校验值与所述第二内容校验值,如上文所述,当所述第一内容校验值与所述第二内容校验值相匹配时,认为在数据迁移过程中未发生数据改变,即数据迁移成功,此时,可将所述目标云存储区间信息发送给存储管理单元,以对所述存储管理单元中存储的云存储区间管理信息进行更新。
138.在本发明一实施方式中,所述数据目录信息可包括以下信息中的一种或多种:物理地址、对应的云存储区间属性信息等等。
139.在本发明一实施方式中,所述内容校验值可采用md5消息摘要算法(md5 message-digest algorithm)计算得到,所述md5消息摘要算法是一种密码散列函数,可产生一个具有一定长度的散列值,以对于待校验内容进行表征。当然,也可采用其他内容校验值计算方法来计算内容校验值,本领域技术人员可根据实际应用的需要以及待校验内容的特点选择合适的内容校验值计算方法,本公开对其不作具体限定。
140.在本发明一实施方式中,所述计算子模块703之后,还包括确定目标云存储区间是否有可能在短时间内被访问的部分,即如图8所示,所述复制模块603包括:
141.清除子模块801,被配置为清除所述待更新云存储区间的数据目录信息;
142.复制子模块802,被配置为将所述待更新云存储区间数据复制至所述目标云存储区间;
143.计算子模块803,被配置为计算复制数据后得到的目标云存储区间的第一内容校验值;
144.第二锁定子模块804,被配置为锁定输入输出索引地址环形数据组件,其中,所述输入输出索引地址环形数据组件存储有与所述云存储区间对应的指向物理地址的索引地址;
145.检测子模块805,被配置为检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值;
146.第一锁定子模块806,被配置为当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
147.发送子模块807,被配置为当所述第一内容校验值与所述第二内容校验值相匹配
时,将所述目标云存储区间信息发送给存储管理单元。
148.为了避免目标云存储区间在实施数据迁移的过程中被访问,进而导致迁移数据发生错误,在该实施方式中,在计算子模块803计算得到复制数据后得到的目标云存储区间的第一内容校验值后,设置第二锁定子模块804锁定存储有与所述云存储区间对应的指向物理地址的索引地址的输入输出索引地址环形数据组件,比如,虚拟化扩展页表(ept)将所述输入输出索引地址环形数据组件标记为写保护,阻止cpu侧对所述输入输出索引地址环形数据组件的操作,这样可以保证当前状态下数据写操作的目标云存储区间是一个确定的集合,防止在数据迁移过程中虚拟机对于所述输入输出索引地址环形数据组件执行操作,进而影响数据迁移;设置检测子模块805检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值,相当于检测需要替换的页面是否在所述输入输出索引地址环形数据组件的入方向上,以判断所述目标云存储区间的数据迁移操作是否在预设时间段内安全,会不会与所述输入输出索引地址环形数据组件操作发生冲突,或者说确定所述目标云存储区间是否有可能在短时间内被访问,其中,所述预设时间段至少大于等于数据迁移所需要的时间;进而当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,或者说需要替换的页面不在所述输入输出索引地址环形数据组件的入方向上时,认为所述目标云存储区间的数据迁移操作在预设时间段内是安全的,不会在短时间内被访问,不会与所述输入输出索引地址环形数据组件操作发生冲突,此时,第一锁定子模块806再锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值。
149.在本发明一实施方式中,当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离小于预设距离阈值时,或者说需要替换的页面处于所述输入输出索引地址环形数据组件的入方向上时,认为所述目标云存储区间的数据迁移操作在预设时间段内可能是不安全的,有可能在短时间内被访问,有可能会与所述输入输出索引地址环形数据组件操作发生冲突,此时,需先解锁所述输入输出索引地址环形数据组件,使其进入睡眠状态,并持续预设时间,再使清除子模块801重新清除所述待更新云存储区间的数据目录信息,避开有可能发生的数据操作冲突风险。
150.即在本发明一实施方式中,如图9所示,所述复制模块603包括:
151.清除子模块901,被配置为清除所述待更新云存储区间的数据目录信息;
152.复制子模块902,被配置为将所述待更新云存储区间数据复制至所述目标云存储区间;
153.计算子模块903,被配置为计算复制数据后得到的目标云存储区间的第一内容校验值;
154.第二锁定子模块904,被配置为锁定输入输出索引地址环形数据组件,其中,所述输入输出索引地址环形数据组件存储有与所述存储区间对应的指向物理地址的索引地址;
155.检测子模块905,被配置为检测所述目标云存储区间在所述输入输出索引地址环形数据组件中的位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离是否大于预设距离阈值;
156.第一锁定子模块906,被配置为当所述目标云存储区间所在位置与所述输入输出
索引地址环形数据组件当前操作位置之间的距离大于等于预设距离阈值时,锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
157.发送子模块907,被配置为当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元;
158.解锁子模块908,被配置为当所述目标云存储区间所在位置与所述输入输出索引地址环形数据组件当前操作位置之间的距离小于预设距离阈值时,解锁所述输入输出索引地址环形数据组件,使其进入睡眠状态预设时间,返回重新清除所述待更新云存储区间的数据目录信息。
159.在本发明一实施方式中,如上文所述,当所述第一内容校验值与所述第二内容校验值相匹配时,说明待更新云存储区间中存储的数据与数据迁移后目标云存储区间中存储的数据内容一致,在数据迁移过程中未发生数据改变,可将所述目标云存储区间信息发送给存储管理单元(mmu或iommu)进行数据更新,此时认为数据迁移过程完成,虚拟化扩展页表(ept)可解锁所述输入输出索引地址环形数据组件,即解除所述输入输出索引地址环形数据组件的写保护,使其恢复正常访问操作,即在该实施方式中,所述发送子模块705可被配置为:
160.当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元,解锁所述输入输出索引地址环形数据组件。
161.在本发明一实施方式中,所述第一锁定子模块704之后,还包括当所述第一内容校验值与所述第二内容校验值不相匹配时,返回再次将所述待更新云存储区间数据复制至所述目标云存储区间的部分,即如图10所示,所述复制模块603包括:
162.清除子模块1001,被配置为清除所述待更新云存储区间的数据目录信息;
163.复制子模块1002,被配置为将所述待更新云存储区间数据复制至所述目标云存储区间;
164.计算子模块1003,被配置为计算复制数据后得到的目标云存储区间的第一内容校验值;
165.第一锁定子模块1004,被配置为锁定所述待更新云存储区间,并计算所述待更新云存储区间的第二内容校验值;
166.返回子模块1005,被配置为当所述第一内容校验值与所述第二内容校验值不相匹配时,返回再次将所述待更新云存储区间数据复制至所述目标云存储区间;
167.发送子模块1006,被配置为当所述第一内容校验值与所述第二内容校验值相匹配时,将所述目标云存储区间信息发送给存储管理单元。
168.当所述第一内容校验值与所述第二内容校验值不相匹配时,说明待更新云存储区间中存储的数据与数据迁移后目标云存储区间中存储的数据内容不相一致,在数据迁移过程中可能发生了数据改变,此时,需要设置返回子模块1005返回复制子模块1002再次将所述待更新云存储区间数据复制至所述目标云存储区间,重新执行数据迁移操作。
169.本发明实施例还公开了一种电子设备,图11示出根据本发明一实施方式的电子设备的结构框图,如图11所示,所述电子设备1100包括存储器1101和处理器1102;其中,
170.所述存储器1101用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1102执行以实现上述任一方法步骤。
171.图12适于用来实现根据本发明实施方式的存储区间更新方法的计算机系统的结构示意图。
172.如图12所示,计算机系统1200包括处理单元1201,其可以根据存储在只读存储器(rom)1202中的程序或者从存储部分1208加载到随机访问存储器(ram)1203中的程序而执行上述实施方式中的各种处理。在ram1203中,还存储有系统1200操作所需的各种程序和数据。处理单元1201、rom1202以及ram1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。
173.以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。其中,所述处理单元1201可实现为cpu、gpu、fpga、npu、ai芯片等处理单元。
174.特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述存储区间更新方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。
175.附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
176.描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
177.作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
178.以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限
于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1