云计算系统中的跨安全区域的资源访问方法及电子设备与流程

allin2023-02-05  80



1.本说明书一个或多个实施例涉及云计算技术领域,尤其涉及一种云计算系统中的跨安全区域的资源访问方法、装置、电子设备及云计算系统。


背景技术:

2.在云计算系统中,为用户(云计算系统中的租户)分配的计算资源(比如:虚拟机)通常被配置位于一安全区域中,而对于该计算资源所要访问的公共资源(比如:存储资源),通常被配置位于与计算资源所在的安全区域隔离的另外一个安全区域中。
3.由于安全区域之间相互隔离,互相无法直接通信进行资源访问,所以在现有的技术方案中,当计算资源需要跨安全区域访问公共资源时,通常基于网络虚拟化技术来实现跨安全区域的资源访问。然而,在该方案中主要存在以下问题:所有跨安全区域的资源访问io基于中心化的io转发机制进行转发,虽然对于带宽型应用,可以基于满足业务需求,但对于io延迟敏感型应用,在海量io及io并发的场景下,则无法满足低延迟的业务需求。


技术实现要素:

4.本技术提供一种云计算系统中的跨安全区域的资源访问方法,所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟出的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动所模拟出的作为rpc调用客户端的虚拟块设备;所述虚拟块设备上包括模拟出的与所述rpc调用服务端程序之间的rpc通道;所述方法包括:所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。
5.可选的,所述io访问请求包括针对所述虚拟块设备的io写请求;所述rpc请求包括rpc request请求;其中,所述io写请求包括与针对所述目标数据资源进行rpc调用相关的调用参数;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,包括:所述虚拟块设备响应于所述io写请求,将所述io写请求中的所述调用参数写入至所述虚拟块设备的逻辑存储空间;响应于所述调用参数成功写入所述虚拟块设备的逻辑存储空间,向所述虚拟节点上安装的业务应用返回与所述io写请求对应的写入成功的响应消息,并对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request 请求。
6.可选的,所述io访问请求还包括针对所述虚拟块设备的io读请求;所述rpc请求包括用于读取rpc response的rpc读请求;所述虚拟块设备响应于所述io访问请求,将所述io
访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,包括:所述虚拟块设备响应于所述io读请求,将所述io读请求封装成用于读取rpc response的rpc读请求。
7.可选的,所述虚拟块设备的逻辑存储空间包括用于承载命令队列的第一逻辑存储子空间;其中,所述第一逻辑存储子空间包括预先创建的命令队列;所述命令队列中维护了待执行的控制命令;所述控制命令包括封装命令;对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request请求,包括:执行所述命令队列中的封装命令,对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request请求;将所述io读请求封装成用于读取rpc response的rpc读请求,包括:执行所述命令队列中的封装命令,将所述io读请求封装成用于读取rpc response的rpc读请求。
8.可选的,所述虚拟块设备的逻辑存储空间还包括用于承载数据队列的第二逻辑存储子空间;所述控制命令还包括用于动态创建数据队列的创建命令;所述rpc通道包括通过执行所述控制命令在所述第二逻辑存储子空间动态创建的数据队列;通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序之前,还包括:执行所述命令队列中的创建命令,在所述第二逻辑存储子空间中为所述业务应用动态创建数据通道。
9.可选的,所述数据队列包括若干逻辑存储单元;通过所述rpc通道,将所述rpc request请求发送至所述rpc调用服务端程序,包括:从所述数据队列中为所述rpc request请求分配空闲的目标逻辑存储单元,并将所述rpc request请求写入所述目标逻辑存储单元,以由所述rpc调用服务端程序从所述数据队列中的所述目标逻辑存储单元中读取所述rpc request请求;通过所述rpc通道,将所述rpc读请求发送至所述rpc调用服务端程序,将所述rpc读请求写入所述目标逻辑存储单元中与所述rpc request请求进行关联存储,以由所述rpc调用服务端程序从所述数据队列中的所述目标逻辑存储单元中读取与所述rpc request请求关联存储的rpc读请求。
10.可选的,将所述rpc request请求写入所述目标逻辑存储单元,包括:将所述rpc request请求写入在所述目标逻辑存储单元中创建的rpc上下文;将所述rpc读请求写入所述目标逻辑存储单元中与所述rpc request请求进行关联存储,包括:将所述rpc读请求写入在所述目标逻辑存储单元中创建的所述rpc上下文,在所述rpc上下文中与所述rpc request请求进行关联存储。
11.可选的,所述云计算系统还包括位于所述资源安全区域中的资源服务程序;所述计算机节点设备上还包括与所述至少一个虚拟节点对应的资源访问代理程序;所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用,包括:所述rpc调用服务端程序响应于从所述目标逻辑存储单元中读取到的所述rpc request请求,将所述rpc request提交至所述资源访问代理程序,由所述资源访问代理程序进一步将所述rpc request请求提交至位于所述资源安全区域中的资源服务程序,以使所述资源服务程序执行所述rpc request请求,完成针对所述目标数据资源的跨安全区域的rpc调用,并将rpc调用产生的rpc response 通过所述资源访问代理程序返回给所述rpc调用服务端程序;所述rpc调用服务端程序响应于从所述目标逻辑存储单元中读取到的与所述rpc request请求关联存储的rpc读请求,将所述资源服务程序返回的所述rpc response,进一步返回给所述虚拟块设备,由所述虚拟块设备将所述rpc response返回给所述业务应用。
12.可选的,所述方法还包括:所述虚拟块设备在将所述rpc response返回给所述业务应用之后,删除所述目标逻辑存储单元中关联存储的rpc request请求和所述rpc读请求,并将所述目标逻辑存储单元作为空闲的逻辑存储单元进行回收释放。
13.可选的,所述虚拟块设备的逻辑存储空间还包括用于存储所述虚拟块设备的配置信息的第三逻辑存储子空间;其中,所述第三逻辑存储子空间为只读存储空间;所述方法还包括:所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的配置信息读取请求;所述虚拟块设备响应于所述配置信息读取请求,从所述第三逻辑存储子空间中读取所述虚拟块设备的配置信息,并将读取到的配置信息返回给所述业务应用。
14.本技术还提供一种云计算系统中的跨安全区域的资源访问装置,所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟出的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动所模拟出的作为rpc调用客户端的虚拟块设备;所述虚拟块设备上包括模拟出的与所述rpc调用服务端程序之间的rpc通道;所述装置包括:接收模块,用于所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;访问模块,用于所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。
15.本技术还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
16.本技术还提供一种计算机程序,所述计算机程序被处理器执行时实现上述的方法。
17.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
18.本技术还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
19.本技术还提出一种云计算系统,包括:位于用户安全区域中的计算节点设备;位于与所述用户安全区域隔离的资源安全区域中的资源服务程序;所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟出的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动所模拟出的作为rpc调用客户端的虚拟块设备;所述虚拟块设备上包括模拟出的与所述rpc调用服务端程序之间的rpc通道;其中,所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述
目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。
20.在以上技术方案中,利用云计算系统中基于virtio协议的blk前端驱动模拟的作为rpc调用客户端的虚拟块设备,通过所述虚拟块设备模拟的与所述rpc调用服务端程序之间的rpc通道,所述虚拟块设备接收各虚拟节点上业务应用触发的针对资源服务程序维护的数据资源的io访问请求;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用,实现了位于用户安全区域中的各计算节点设备利用基于virtio协议的blk设备模拟出的基于virtio协议的rpc机制对位于与用户安全区域隔离的资源安全区域中的资源服务程序的跨安全区域的资源的分布式访问。由于缩短了各计算节点上搭载的各虚拟节点安装的业务应用的资源访问的io转发路径,可以极大降低了资源访问的io延迟;通过分布式访问机制进行资源访问,避免了网络虚拟化技术的中心转发机制存在的性能瓶颈,可以提升整体io处理的吞吐效率;并且在云计算系统中,利用基于virtio协议的blk设备模拟基于virtio协议的rpc访问机制,可以在现有云计算系统中部署实现基于virtio协议的rpc访问机制,具有更强的适用性和实用性。
附图说明
21.图1是一示例性的实施例示出的一种云计算系统中的跨安全区域的资源访问的组网架构示意图;图2是一示例性的实施例示出的一种云计算系统中的跨安全区域的资源访问方法的流程图;图3是一示例性的实施例示出的另一种云计算系统中的跨安全区域的资源访问的组网架构示意图;图4是一示例性的实施例示出的另一种云计算系统中的跨安全区域的资源访问方法的流程图;图5是一示例性的实施例示出的另一种云计算系统中的跨安全区域的资源访问的组网架构示意图;图6是一示例性的实施例示出的一种云计算系统中的跨安全区域的资源访问的交互示意图;图7是一示例性的实施例示出的一种云计算系统中的跨安全区域的资源访问装置所在电子设备的结构示意图;图8是一示例性的实施例示出的一种云计算系统中的跨安全区域的资源访问装置的框图。
具体实施方式
22.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
23.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
24.请参考图1,图1是本说明书一实施例提供的一种云计算系统中的跨安全区域的资源访问的组网架构示意图。
25.如图1所示,计算节点设备所处的区域简称为用户售卖区(比如包括:安全区域1、...、安全区域n),计算节点设备所要访问的资源所处的区域简称为资源服务区(比如:安全区域s);其中,用户售卖区中各个安全域内可以包括多个计算节点设备,为了保证计算节点设备中的业务访问资源服务区中资源的安全性,云计算系统可以将不同用户(租户)的计算节点设备进行安全隔离(比如包括:安全区域1、...、安全区域n之间互相隔离),计算节点设备及其要访问的资源进行安全隔离(比如:安全区域1、...、安全区域n分别与安全区域s之间互相隔离)。
26.在用户售卖区和资源服务区安全隔离后,当用户售卖区中计算节点设备中的业务访问资源服务区中资源时,在一些技术方案中,通常基于网络虚拟化技术来实现跨安全区域的资源访问。
27.例如,请参考图1,虚拟网络、负载均衡、代理服务器构建形成网络虚拟化技术方案;其中,虚拟网关,可以提供基于vxlan等隧道技术,来自用户售卖区访问资源服务区的资源访问的网络报文需要通过虚拟网关进行ip地址转换和报文转发;负载均衡及其管理的代理服务器,用于提供负载均衡机制,为了防止资源服务区访问存在的性能瓶颈点,需要通过负载均衡机制将用户售卖区的资源访问io分散到不同的代理服务器上,从而可以实现对资源服务区中的资源的访问均衡性。
28.然而网络虚拟化方案中,由虚拟网关、负载均衡和代理服务器构建形成了中心化的io转发机制。在该机制中,主要存在以下问题:用户售卖区的所有io的转发路径都需要依次通过虚拟网关、负载均衡和代理服务器才能实现对资源服务区的访问。对于带宽型应用,通过横向扩展虚拟网关、负载均衡和代理服务器的个数还可以满足业务的带宽需求,但是对于io延迟敏感型应用,由于io转发路径较长、以及海量io并发下io调度的延迟增加,导致该机制无法满足低延迟的业务需求。
29.请参考图2,图2是一示例性实施例提供的一种云计算系统中的跨安全区域的资源访问方法的流程图;所述云计算系统包括位于用户安全区域中的计算节点设备(例如可以包括多个计算节点设备)、位于与所述用户安全区域隔离的资源安全区域中的资源服务程序;其中,所述计算节点设备分别搭载了至少一个虚拟节点和与所述至少一个虚拟节点对应的资源访问代理程序;所述计算节点设备与搭载的所述虚拟节点之间分别保持了基于virtio协议的rpc通道;所述方法应用于所述计算节点设备;上述方法执行以下步骤:
步骤202、通过与所述虚拟节点之间保持的基于virtio协议的rpc通道,接收io访问命令;所述io访问命令为各虚拟节点上安装的业务应用触发的io访问命令;所述io访问命令,用于针对所述资源服务程序维护的数据资源进行io访问。
30.步骤204、响应于所述io访问命令,将所述io访问命令提交至所述资源访问代理程序,由所述资源访问代理程序将所述io访问命令提交至所述资源服务程序,以进行跨安全区域的资源访问。
31.为了方便理解和描述,请参考图3,图3是本说明书一实施例提供的另一种云计算系统中的跨安全区域的资源访问的组网架构示意图。
32.图3与图1中描述的用户售卖区、资源服务区及各个安全区域基本相同,图3相对图1的主要区别在于:位于用户售卖区中的各个安全区域中的各计算节点设备,可以分别基于virtio协议的rpc通道(如图3中所示的virtio-rpc)和各自对应的资源访问代理程序向位于资源服务区中的安全区域中的资源分布式地发起资源访问。其中,上述各计算节点设备搭载了基于virtio协议的rpc服务;上述各计算节点设备搭载的上述至少一个虚拟节点,分别搭载了与上述基于virtio协议的rpc服务对应的基于virtio协议的前端驱动;其中,上述基于virtio协议的rpc通道包括上述基于virtio协议的rpc服务和上述基于virtio协议的前端驱动之间保持的rpc通道。
33.在以上技术方案中,可以通过位于用户安全区域中的各计算节点设备基于virtio协议基础上扩展的rpc机制对位于与用户安全区域隔离的资源安全区域中的资源服务程序进行跨安全区域的资源的分布式访问。
34.但是,在实际应用过程中,基于virtio协议的rpc前端驱动是上述方案中必备的io虚拟化设备,而现有的云计算系统中普遍搭载基于virtio协议的blk驱动以及基于virtio协议的net驱动等常见的设备,并未搭载上述基于virtio协议的rpc前端驱动,因此,上述基于virtio协议的rpc通道的跨安全区域的资源访问方法并不适用于大多数现有的云计算系统。
35.基于此,本说明书中,旨在提出一种位于用户安全区域中的各计算节点设备利用基于virtio协议的blk机制设备模拟基于virtio协议的rpc(remote procedure call protocol,远程过程调用协议)机制,对位于与用户安全区域隔离的资源安全区域中的资源服务程序进行跨安全区域的资源的分布式访问的技术方案。
36.在实现时,云计算系统可以包括位于用户安全区域中的至少一个计算节点设备;上述计算机节点设备上可以包括至少一个虚拟节点以及基于virtio协议的blk服务模拟的rpc调用服务端程序;上述虚拟节点上可以包括基于virtio协议的blk服务的前端驱动模拟的作为rpc调用客户端的虚拟块设备;上述虚拟块设备可以包括模拟的与所述rpc调用服务端程序之间的rpc通道;进一步地,上述虚拟块设备可以接收所述虚拟节点上安装的业务应用触发的io访问请求;上述io访问请求,可以用于针对位于资源安全区域中的目标数据资源进行io访问;其中,上述用户安全区域和上述资源安全区域相互隔离;进一步地,上述虚拟块设备响应于所述io访问请求,可以将上述io访问请求封装成用于针对上述目标数据资源进行rpc调用的rpc请求,并且可通过上述rpc通道,将上述rpc请求发送至上述rpc调用服务端程序,以由上述rpc调用服务端程序基于上述rpc请求,
可以发起针对上述目标数据资源的跨安全区域的rpc调用。
37.需要说明的是,上述计算节点搭载至少一个资源访问代理程序,上述资源访问代理程序的数量主要由需要访问的上述资源服务程序的数量确定,本说明书中对此不作具体限定;另外,在确定与上述io访问请求所请求访问的数据资源的类型对应的目标资源访问代理程序的具体方法,在本说明书中也不作具体限定。例如,可以基于上述io访问请求中携带的请求访问的数据资源的类型进行判断确定,也可以基于上述io访问请求的命令类型查找对应类型的数据资源的类型进行查找确定。
38.在以上技术方案中,利用云计算系统中基于virtio协议的blk前端驱动模拟的作为rpc调用客户端的虚拟块设备,通过所述虚拟块设备模拟的与所述rpc调用服务端程序之间的rpc通道,所述虚拟块设备接收各虚拟节点上业务应用触发的针对资源服务程序维护的数据资源的io访问请求;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用,实现了位于用户安全区域中的各计算节点设备利用基于virtio协议的blk设备模拟出的基于virtio协议的rpc机制对位于与用户安全区域隔离的资源安全区域中的资源服务程序的跨安全区域的资源的分布式访问。由于缩短了各计算节点上搭载的各虚拟节点安装的业务应用的资源访问的io转发路径,可以极大降低了资源访问的io延迟;通过分布式访问机制进行资源访问,避免了网络虚拟化技术的中心转发机制存在的性能瓶颈,可以提升整体io处理的吞吐效率;并且在云计算系统中,利用基于virtio协议的blk设备模拟基于virtio协议的rpc访问机制,可以在现有云计算系统中部署实现基于virtio协议的rpc访问机制,具有更强的适用性和实用性。
39.下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
40.请参见图4,图4是一示例性实施例提供的一种云计算系统中的跨安全区域的资源访问方法的流程图;所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动模拟的作为rpc调用客户端的虚拟块设备;所述虚拟块设备包括模拟的与所述rpc调用服务端程序之间的rpc通道;上述方法执行以下步骤:s402,所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;s404,所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。
41.在本说明书中,上述云计算系统,可以包括任何类型的云计算系统。例如,在实际应用中,上述云计算系统可以包括公有云、私有云、混合云。
42.在本说明书中,上述云计算系统可以包括位于用户安全区域中的多个计算节点设
备、位于与上述用户安全区域隔离的资源安全区域中的资源服务程序。
43.其中,上述计算节点设备,可以包括用于构建上述云计算系统的任何类型的计算设备。例如,在实际应用中,上述计算节点设备具体可以包括物理服务器、pc机等。
44.上述资源服务程序,可以包括提供任何类型资源的资源服务程序。例如,在实际应用中,上述资源服务程具体可以包括提供存储资源的资源服务程序、提供数据库资源的资源服务程序、提供网络资源的资源服务程序、提供媒体资源的资源服务程序等。
45.在本说明书中,上述各计算节点设备分别搭载了至少一个虚拟节点和与上述至少一个虚拟节点对应的资源访问代理程序;上述各个虚拟节点和各计算节点上模拟出的rpc调用服务端程序之间分别保持了模拟的rpc通道。
46.其中,上述虚拟节点,可以包括搭载在上述计算节点设备上的任何类型的虚拟节点。
47.在示出的一种实施方式中,上述虚拟节点可以包括以下任一:虚拟机、虚拟容器。其中,上述虚拟机及上述虚拟容器的类型,在本说明书中不作具体限定。
48.例如,上述虚拟机具体可以包括kvm虚拟机、xen虚拟机、vmware虚拟机、hyper-v虚拟机等;上述虚拟容器具体可以包括普通容器、安全容器;其中,容器的类型比如可以包括docker容器、lxc容器等。
49.上述资源访问代理程序,可以包括搭载在上述计算节点设备上的与上述至少一个上虚拟节点对应的资源访问代理程序;上述资源访问代理程序用于作为中间代理,来接收并处理上述至少一个虚拟节点上安装的业务应用所发起的针对上述资源服务程序维护的数据资源的io访问请求。
50.其中,上述资源访问代理程序可以被直接部署在上述计算节点设备上运行,也可以被部署在上述计算节点设备搭载的硬件设备(比如:智能网卡、gpu等)中运行。
51.在本说明书中,上述业务应用,可以包括安装在上述虚拟节点的任何类型的业务应用。例如,以上述虚拟节点为虚拟机为例,在实际应用中,上述业务应用具体可以包括安装在该虚拟机的网络业务应用、存储业务应用、媒体业务应用等。
52.为了方便理解和描述,请参考图5,图5是本说明书一实施例提供的另一种云计算系统中的跨安全区域的资源访问的组网架构示意图。
53.图5与图3中描述的用户售卖区、资源服务区及各个安全区域基本相同,图5相对图3的主要区别在于:位于计算机节点上的基于virtio协议的blk服务模拟的rpc调用服务端程序;位于基于virtio协议的blk服务的前端驱动模拟的作为rpc调用客户端的虚拟块设备模拟的与所述rpc调用服务端程序之间的rpc通道。通过所述rpc通道,由上述rpc调用服务端程序对各自对应的资源访问代理程序以向位于资源服务区中的安全区域中的资源分布式地发起资源访问。
54.块设备具有特殊的访问机制,例如,块设备的io请求类型有两种,一种为write请求,另一种为read请求。对于write请求,可以将用户数据写入块设备,相应的write请求不会返回数据,只会返回写入成功与否的状态信息;对于read请求,可以通过read接口向块设备提交数据获取指令以取回与命令对应的数据。
55.基于此,在示出的一种实施方式中,上述io访问请求包括针对所述虚拟块设备的io写请求。位于虚拟节点的业务应用触发io写请求,其中,上述io写请求中可以包括针对上
request请求至对应的资源访问代理程序。
65.s610,响应于上述rpc request请求,对位于资源服务区的安全区域的资源进行访问。
66.s612,返回与上述rpc request请求对应的rpcresponse请求。
67.s614,响应于上述rpc response请求,上述资源访问代理程序将上述rpc response请求返回至所述rpc调用服务端程序。
68.s616,将位于虚拟节点的业务应用触发的io读请求,发送至上述虚拟块设备。
69.s618,响应于上述io读请求,上述虚拟块设备将上述io读请求进行封装处理,以生成用于读取rpc response的rpc读请求。
70.s620,上述虚拟块设备可以将上述rpc读请求发送至上述rpc调用服务端程序,以请求读取上述rpc response。
71.s622,上述rpc调用服务端程序响应于上述rpc读请求,将上述rpc request请求和上述rpc读请求进行配对,进一步将上述rpc response请求与上述rpc读请求进行配对,并且将配对后的rpc response请求返回至上述虚拟块设备。
72.s624,响应于步骤622中返回的rpc response请求,可以返回上述io读请求对应的数据至对应的业务应用。
73.可选的,步骤608中转发的rpcrequest请求,可以是接收到的上述rpc request请求,也可以是在上述rpc调用服务端程序对上述rpc request请求处理后的真正的rpc命令,对此本发明并不作过多限制。
74.进一步,上述实施例中的步骤616中位于虚拟节点的业务应用触发的io读请求,与步骤602中位于虚拟节点的业务应用触发的io写请求可以同步发送,也可以异步发送;主要注意的是,若上述616步骤中的io读请求还未由上述虚拟块设备转发至上述rpc调用服务端程序,则不执行步骤622,上述rpc服务端调用程序接受到的rpc response请求可以在内存中进行等待,等待步骤620中的rpc读请求发送至上述rpc调用服务端程序后,再执行后续步骤。
75.通过上述过程描述,可以看出步骤602和步骤616是用于模仿rpc命令中的请求和应答;通过两次io过程,模拟一个完整的rpc命令。
76.进一步的,通过上述io写请求和上述io读请求可以模拟控制rpc命令,进而可以实现一些rpc控制命令的传输,例如心跳信息。
77.但是利用上述虚拟块设备模拟rpc通道以进行rpc的数据传输,还需要在上述虚拟块设备中实现传输通道的建立。
78.块设备的数据传输是通过将待传输数据存储在块设备的逻辑地址空间,和读取块设备逻辑地址空间存储的数据,从而通过块设备实现数据的交互。在本发明中利用块设备实现数据交互实际上是利用块设备的逻辑地址空间进行数据交互,因此,还需要对基于virtio协议的blk服务的前端驱动模拟的虚拟块设备的逻辑地址空间进行划分,以便进行数据交互。
79.为了在块设备上实现rpc的功能,可以对上述虚拟块设备的空白逻辑地址,按照不同的功能进行定义和划分,例如,可以将上述块设备的逻辑地址空间被划分为:用于承载命令队列的第一逻辑存储子空间和用于承载数据队列的第二逻辑存储子空间。
80.上述用于承载命令队列的第一逻辑存储子空间可以包括预先创建的命令队列,进一步地,命令队列中可以维护上述虚拟块设备待执行的控制命令,例如,可以包括用于对上述io写请求和上述io读请求进行封装处理的封装命令;还可以包括用于在上述第二逻辑存储子空间动态创建数据队列的创建命令。对应的,上述rpc通道,可以包括通过执行上述动态创建数据队列的控制命令在所述第二逻辑存储子空间动态创建的数据队列。
81.需要注意的是,通过上述rpc通道,将上述rpc请求发送至上述rpc调用服务端程序之前还需要确定上述第二逻辑存储子空间中是否包含为上述业务应用动态创建的数据队列;如果否,执行上述命令队列中的创建命令,在上述第二逻辑存储子空间中为上述业务应用动态创建数据通道,以进行数据的交互。
82.进一步地,上述数据队列是一段连续的逻辑地址空间,可以包含若干逻辑存储单元。继续以上一例子为例,请参照图6,步骤606可以是从上述数据队列中为上述rpc request请求分配空闲的目标逻辑存储单元,并将上述rpc request请求写入上述目标逻辑存储单元,以由上述rpc调用服务端程序从上述数据队列中的上述目标逻辑存储单元中读取上述rpc request请求。类似的,步骤616还可以通过上述rpc通道,将上述rpc读请求发送至上述rpc调用服务端程序,可以将上述rpc读请求写入上述目标逻辑存储单元中与上述rpc request请求进行关联存储,以由上述rpc调用服务端程序从上述数据队列中的上述目标逻辑存储单元中读取与上述rpc request请求关联存储的rpc读请求。
83.进一步地,上述将rpc request请求写入上述目标逻辑存储单元,可以是将上述rpc request请求写入在上述目标逻辑存储单元中创建的rpc上下文;并且,可以将上述rpc读请求写入在上述目标逻辑存储单元中创建的上述rpc上下文,在上述rpc上下文中与上述rpc request请求进行关联存储。
84.进一步地,步骤624将上述io读请求对应的rpc response返回至上述对应的业务应用后,还可以删除上述目标逻辑存储单元中关联存储的rpc request请求和上述rpc读请求,并且可以将上述目标逻辑存储单元作为空闲的逻辑存储单元进行回收释放,以供其他数据交互使用。
85.需要注意的是,在利用上述虚拟块设备的逻辑地址模拟rpc命令传输的过程中,上述虚拟块设备会接收并执行多个指令,可以将接收的多个指令存储在数据逻辑地址空间上动态建立的动态队列中。执行上述动态队列中的指令时,可以通过文件锁等方式实现对动态队列的并发控制。
86.进一步地,上述虚拟块设备的逻辑存储空间还可以包括用于存储上述虚拟块设备的配置信息的第三逻辑存储子空间;其中,上述第三逻辑存储子空间为只读存储空间。在步骤602前还可以由上述虚拟块设备接收上述虚拟节点上安装的业务应用触发的配置信息读取请求;上述虚拟块设备响应于上述配置信息读取请求,从上述第三逻辑存储子空间中读取上述虚拟块设备的配置信息,并将读取到的配置信息返回给上述业务应用。其中,上述虚拟模块的配置信息可以是上述虚拟模块的逻辑地址空间相关的数据配置等,对此本说明书也不作限定。
87.与上述方法实施例相对应,本说明书还提供了一种云计算系统中的跨安全区域的资源访问装置的实施例。
88.本说明书的装置的实施例可以应用在电子设备上。装置实施例可以通过软件实
现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
89.从硬件层面而言,如图7所示,为本说明书的云计算系统中的跨安全区域的资源访问装置所在电子设备的一种硬件结构图,除了图7所示的处理器702、内部总线704、网络接口706、内存708、以及非易失性存储器710之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
90.图8是本说明书一示例性实施例示出的一种云计算系统中的跨安全区域的资源访问装置的框图。
91.请参考图8,云计算系统中的跨安全区域的资源访问装置可以应用在前述图8所示的电子设备中;所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟出的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动所模拟出的作为rpc调用客户端的虚拟块设备;所述虚拟块设备上包括模拟出的与所述rpc调用服务端程序之间的rpc通道;所述装置包括:接收模块802,用于所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;访问模块804,用于所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。
92.进一步地,所述io访问请求包括针对所述虚拟块设备的io写请求;所述rpc请求包括rpc request请求;其中,所述io写请求包括与针对所述目标数据资源进行rpc调用相关的调用参数;所述访问模块,用于所述虚拟块设备响应于所述io写请求,将所述io写请求中的所述调用参数写入至所述虚拟块设备的逻辑存储空间;响应于所述调用参数成功写入所述虚拟块设备的逻辑存储空间,向所述虚拟节点上安装的业务应用返回与所述io写请求对应的写入成功的响应消息,并对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request请求。
93.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
94.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
95.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
96.在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
97.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
98.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
99.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
100.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
101.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
102.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
103.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说
明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

技术特征:
1.一种云计算系统中的跨安全区域的资源访问方法,所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动模拟的作为rpc调用客户端的虚拟块设备;所述虚拟块设备包括模拟的与所述rpc调用服务端程序之间的rpc通道;所述方法包括:所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。2.根据权利要求1所述的方法,所述io访问请求包括针对所述虚拟块设备的io写请求;所述rpc请求包括rpc request请求;其中,所述io写请求包括与针对所述目标数据资源进行rpc调用相关的调用参数;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,包括:所述虚拟块设备响应于所述io写请求,将所述io写请求中的所述调用参数写入至所述虚拟块设备的逻辑存储空间;响应于所述调用参数成功写入所述虚拟块设备的逻辑存储空间,向所述虚拟节点上安装的业务应用返回与所述io写请求对应的写入成功的响应消息,并对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request请求。3.根据权利要求2所述的方法,所述io访问请求还包括针对所述虚拟块设备的io读请求;所述rpc请求包括用于读取rpc response的rpc读请求;所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,包括:所述虚拟块设备响应于所述io读请求,将所述io读请求封装成用于读取rpc response的rpc读请求。4.根据权利要求3所述的方法,所述虚拟块设备的逻辑存储空间包括用于承载命令队列的第一逻辑存储子空间;其中,所述第一逻辑存储子空间包括预先创建的命令队列;所述命令队列中维护了待执行的控制命令;所述控制命令包括封装命令;对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request请求,包括:执行所述命令队列中的封装命令,对所述逻辑存储空间中存储的所述调用参数进行封装处理以生成用于针对所述目标数据资源进行rpc调用的rpc request请求;将所述io读请求封装成用于读取rpc response的rpc读请求,包括:执行所述命令队列中的封装命令,将所述io读请求封装成用于读取rpc response的rpc读请求。
5.根据权利要求4所述的方法,所述虚拟块设备的逻辑存储空间还包括用于承载数据队列的第二逻辑存储子空间;所述控制命令还包括用于动态创建数据队列的创建命令;所述rpc通道包括通过执行所述控制命令在所述第二逻辑存储子空间动态创建的数据队列;通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序之前,还包括:执行所述命令队列中的创建命令,在所述第二逻辑存储子空间中为所述业务应用动态创建数据通道。6.根据权利要求5所述的方法,所述数据队列包括若干逻辑存储单元;通过所述rpc通道,将所述rpc request请求发送至所述rpc调用服务端程序,包括:从所述数据队列中为所述rpc request请求分配空闲的目标逻辑存储单元,并将所述rpc request请求写入所述目标逻辑存储单元,以由所述rpc调用服务端程序从所述数据队列中的所述目标逻辑存储单元中读取所述rpc request请求;通过所述rpc通道,将所述rpc读请求发送至所述rpc调用服务端程序,将所述rpc读请求写入所述目标逻辑存储单元中与所述rpc request请求进行关联存储,以由所述rpc调用服务端程序从所述数据队列中的所述目标逻辑存储单元中读取与所述rpc request请求关联存储的rpc读请求。7.根据权利要求6所述的方法,将所述rpc request请求写入所述目标逻辑存储单元,包括:将所述rpc request请求写入在所述目标逻辑存储单元中创建的rpc上下文;将所述rpc读请求写入所述目标逻辑存储单元中与所述rpc request请求进行关联存储,包括:将所述rpc读请求写入在所述目标逻辑存储单元中创建的所述rpc上下文,在所述rpc上下文中与所述rpc request请求进行关联存储。8.根据权利要求6所述的方法,所述云计算系统还包括位于所述资源安全区域中的资源服务程序;所述计算机节点设备上还包括与所述至少一个虚拟节点对应的资源访问代理程序;所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用,包括:所述rpc调用服务端程序响应于从所述目标逻辑存储单元中读取到的所述rpc request请求,将所述rpc request提交至所述资源访问代理程序,由所述资源访问代理程序进一步将所述rpc request请求提交至位于所述资源安全区域中的资源服务程序,以使所述资源服务程序执行所述rpc request请求,完成针对所述目标数据资源的跨安全区域的rpc调用,并将rpc调用产生的rpc response通过所述资源访问代理程序返回给所述rpc调用服务端程序;所述rpc调用服务端程序响应于从所述目标逻辑存储单元中读取到的与所述rpc request请求关联存储的rpc读请求,将所述资源服务程序返回的所述rpc response,进一步返回给所述虚拟块设备,由所述虚拟块设备将所述rpc response返回给所述业务应用。9.根据权利要求8所述的方法,所述方法还包括:所述虚拟块设备在将所述rpc response返回给所述业务应用之后,删除所述目标逻辑存储单元中关联存储的rpc request请求和所述rpc读请求,并将所述目标逻辑存储单元作
为空闲的逻辑存储单元进行回收释放。10.根据权利要求5所述的方法,所述虚拟块设备的逻辑存储空间还包括用于存储所述虚拟块设备的配置信息的第三逻辑存储子空间;其中,所述第三逻辑存储子空间为只读存储空间;所述方法还包括:所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的配置信息读取请求;所述虚拟块设备响应于所述配置信息读取请求,从所述第三逻辑存储子空间中读取所述虚拟块设备的配置信息,并将读取到的配置信息返回给所述业务应用。11.一种云计算系统中的跨安全区域的资源访问装置,所述云计算系统包括位于用户安全区域中的至少一个计算节点设备;所述计算机节点设备上包括至少一个虚拟节点以及基于virtio协议的blk服务模拟出的rpc调用服务端程序;所述虚拟节点上包括基于virtio协议的blk服务的前端驱动所模拟出的作为rpc调用客户端的虚拟块设备;所述虚拟块设备上包括模拟出的与所述rpc调用服务端程序之间的rpc通道;所述装置包括:接收模块,用于所述虚拟块设备接收所述虚拟节点上安装的业务应用触发的io访问请求;所述io访问请求,用于针对位于资源安全区域中的目标数据资源进行io访问;其中,所述用户安全区域和所述资源安全区域相互隔离;访问模块,用于所述虚拟块设备响应于所述io访问请求,将所述io访问请求封装成用于针对所述目标数据资源进行rpc调用的rpc请求,并通过所述rpc通道,将所述rpc请求发送至所述rpc调用服务端程序,以由所述rpc调用服务端程序基于所述rpc请求,发起针对所述目标数据资源的跨安全区域的rpc调用。12.一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如权利要求1-10中任一项所述的方法。13.一种计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一项所述的方法。14.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一项所述的方法。

技术总结
一种云计算系统中的跨安全区域的资源访问方法及电子设备。利用云计算系统中基于virtio协议的BLK前端驱动模拟作为RPC调用客户端的虚拟块设备,通过虚拟块设备上模拟的RPC通道,接收各虚拟节点上安装的业务应用触发的针对资源服务程序维护的数据资源的IO访问请求;响应于IO访问请求,将IO访问请求封装成用于针对目标数据资源进行RPC调用的RPC请求,并通过RPC通道,将RPC请求发送至基于virtio协议的BLK服务模拟的RPC调用服务端程序,以由RPC调用服务端程序将RPC请求提交至资源访问代理程序,由资源访问代理程序进一步将RPC请求提交至资源服务程序以完成跨安全区域的资源访问。的资源访问。的资源访问。


技术研发人员:吴忠杰 李强 黄硕
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.05.31
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-5038.html

最新回复(0)