基于云计算技术的云系统及请求处理方法与流程

摘要: 本技术实施例涉及云计算,特别涉及一种基于云计算技术的云系统及请求处理方法。背景技术:1、随着云计算的应用越来越广泛,云上的服务器可以将中央处理器(central...
基于云计算技术的云系统及请求处理方法与流程

本技术实施例涉及云计算,特别涉及一种基于云计算技术的云系统及请求处理方法。

背景技术:

1、随着云计算的应用越来越广泛,云上的服务器可以将中央处理器(centralprocessing unit,cpu)的一些功能卸载(download,也称为下沉)到诸如数据流处理器单元(data processing unit,dpu)等外部设备中,以降低服务器的数据处理压力。其中,cpu与外部设备之间可以基于外围组件互连快速(peripheral componentinterconnect express,pcie)总线进行通信。这种场景下,需要保证cpu与外部设备之间的通信可靠性。

技术实现思路

1、本技术实施例提供了一种基于云计算技术的云系统及请求处理方法,能够在总线网络化后提高cpu与高速互联网络中任意其他设备比如dpu之间的通信可靠性。技术方案如下:

2、第一方面,提供了一种基于云计算技术的云系统,云系统包括cpu设备池、内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池,cpu设备池中的多个cpu、内存设备池中的多个内存、网卡设备池中的多个网卡、扩展处理器设备池中的多个扩展处理器以及磁盘设备池中的多个磁盘均接入到高速互连网络中。其中:

3、cpu设备池中的第一cpu,用于通过高速互连网络中的第一路径向目标设备发送第一报告posted请求,目标设备为内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池中的任一设备;目标设备,用于在接收到第一posted请求之后,向第一cpu返回第一posted请求的确认消息;第一cpu,还用于在接收到第一posted请求的确认消息后,通过第一路径向目标设备发送第一非报告non-posted请求。

4、在本技术实施例提供的云系统中,云系统不仅包括cpu设备池,还包括内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池。并且,cpu设备池中的多个cpu、内存设备池中的多个内存、网卡设备池中的多个网卡、扩展处理器设备池中的多个扩展处理器以及磁盘设备池中的多个磁盘均接入到高速互连网络中。如此,对于任一cpu言,该cpu中的业务可以通过高速互连网络卸载到云系统中多个其他设备比如多个dpu中,从而避免将cpu的业务卸载到单个外部设备而导致外部设备的负载过大。

5、并且进一步地,在本技术实施例中,第一cpu在与云系统中的目标物理设备比如dpu通信时,第一cpu能够通过同一路径发送posted请求和non-posted请求,并在接收到针对posted请求的确认消息后发送non-posted请求,以保证高速互连网络中传输的posted请求和non-posted请求满足总线保序规则,从而提高高速互连网络中cpu与目标设备比如dpu之间的通信可靠性。

6、需要说明的是,在本技术实施例中,第一cpu在与云系统中的目标物理设备比如dpu通信时,第一cpu可以通过同一路径发送posted请求和non-posted请求来保证高速互连网络中传输的posted请求和non-posted请求满足总线保序规则。第一cpu也可以在接收到针对posted请求的确认消息后发送non-posted请求来保证高速互连网络中传输的posted请求和non-posted请求满足总线保序规则。

7、换句话说,在本技术实施例中,为了保证高速互连网络中传输的posted请求和non-posted请求满足总线保序规则,本技术实施例提供了两种策略,一种策略是通过高速互连网络中的同一路径发送posted请求和non-posted请求,另一种策略是在接收到针对posted请求的确认消息后发送non-posted请求。其中,第一cpu可以使用这两种策略种任一种,也可以同时使用这两种策略。

8、基于第一方面提供的云系统,在一种可能的实现方式中,第一posted请求和第一non-posted请求均携带路径信息,路径信息用于指示第一路径。

9、在本技术实施例中,第一cpu在发送第一posted请求和第一non-posted请求时,可以在每个请求中携带用于指示第一路径的路径信息,如此高速互连网络中的总线交换机基于该路径信息来转发报文流,从而实现将第一posted请求和第一non-posted请求的传输路径固定。

10、基于第一方面提供的云系统,在一种可能的实现方式中,第一cpu还用于:在接收到第一posted请求的确认消息时,确定第一posted请求没有丢包;或者,在没有接收到第一posted请求的确认消息时,确定第一posted请求丢包。

11、在目前的pcie协议中,针对non-posted请求,目的端对于non-posted请求有响应机制,因此对于non-posted请求,源端可以基于目的端的响应情况来确认non-posted请求的丢包情况。而针对posted请求,目的端对于posted请求没有响应机制。基于此,本技术实施例提供了一种源端针对posted请求确定丢包情况的方案。

12、其中,第一posted请求示例地为dma写请求。通过上述方式,第一cpu在发送dma写请求之后,目标设备在接收到dma写请求后,基于dma写请求执行相应操作,并在执行完毕时目标设备需要返回针对dma写请求的确认消息。如此,第一cpu可以根据该dma写请求的确认消息来确认dma写请求的丢包情况。

13、基于第一方面提供的云系统,在一种可能的实现方式中,第一posted请求为存储器写请求,存储器写请求携带目的地址和目标数据;第一cpu还用于:在发送存储器写请求之后,向目标设备发送存储器读请求,存储器读请求携带目的地址;接收来自目标设备的读取结果;如果读取结果携带的数据为目标数据,则确定存储器写请求没有丢包,或者,如果读取结果没有携带目标数据,则确定存储器写请求丢包。

14、在上述方案中,并不将posted请求中的存储器写请求的处理方式更改为nonposted请求的处理方案。换句话说,第一cpu并不等待存储器写请求的响应,而是主动再读一次之前写的内容,也即追加一个存储器读请求,如果能读到之前通过存储器写请求写入的数据,则说明目标设备成功将存储器写请求中的目标数据写进去了,因此可以确认存储器写请求没有丢包。

15、基于第一方面提供的云系统,在一种可能的实现方式中,目标设备为扩展处理器设备池中的第一扩展处理器,其中:第一扩展处理器,用于通过高速互连网络中的第二路径向第一cpu发送第二posted请求;第一cpu,用于在接收到第二posted请求之后,向第一扩展处理器返回第二posted请求的确认消息;第一扩展处理器,还用于在接收到第二posted请求的确认消息后,通过第二路径向第一cpu发送第二non-posted请求。

16、在本技术实施例中,对于扩展处理器向云系统中的其他设备比如cpu发送posted请求和non-posted请求的场景,扩展处理器同样能够通过同一路径发送posted请求和non-posted请求,并在接收到针对posted请求的确认消息后发送non-posted请求,以保证高速互连网络中传输的posted请求和non-posted请求满足总线保序规则,从而提高高速互连网络中扩展处理器与其他设备比如cpu之间的通信可靠性。

17、基于第一方面提供的云系统,在一种可能的实现方式中,第二non-posted请求包括io请求;第一cpu还用于:接收并记录来自第一扩展处理器的至少一个第一io请求中每个第一io请求的序列号;在第一扩展处理器故障的情况下,继续接收并记录来自扩展处理器设备池中第二扩展处理器的至少一个第二io请求中每个第二io请求的序列号,第二扩展处理器为扩展处理器设备池中用于替换第一扩展处理器的一个设备;基于记录的序列号对io请求进行追踪。

18、在本技术实施例中,可以在cpu侧引入一个软件(也即本技术实施例提供的可靠性中间模块),该软件做的事情是:记录接收到的io请求的序列号(sequence id)。这样在扩展处理器比如dpu切换后,就可以知道哪些io请求没有接收到或者哪些io请求重复下发了,也即实现对io请求的追踪。换句话说,在本技术实施例中,在第一扩展处理器由于故障需要切换至第二扩展处理器为第一cpu提供业务卸载功能时,第一cpu中的可靠性中间模块可以通过记录io请求的序列号来实现对io请求的追踪。

19、基于第一方面提供的云系统,在一种可能的实现方式中,第一cpu用于:基于至少一个第一io请求中每个第一io请求的序列号和至少一个第二io请求中每个第二io请求的序列号,确定第一扩展处理器发送的第一io请求中是否存在丢失的io请求,或者确定第一扩展处理器发送的第一io请与第二扩展处理器发送的第二io请求之间是否存在重复的io请求。

20、在本技术实施例中,追踪io请求可以包括追踪丢失的io请求或者追踪重复下发的io请求,以便于后续对这些io请求进行不同的处理。

21、基于第一方面提供的云系统,在一种可能的实现方式中,第一cpu还用于:在第一扩展处理器为第一cpu提供业务卸载功能时,将业务卸载设备标识确定为目标扩展处理器标识;在第二扩展处理器替换第二扩展处理器为第一cpu提供业务卸载功能后,继续确定业务卸载设备标识为目标扩展处理器标识。

22、通过上述方式,在将第一扩展处理器切换至第二扩展处理器继续对第一cpu提供业务卸载功能的过程中,可靠性中间模块对外提供的业务卸载设备标识均是同一个目标扩展处理器标识,如此第一cpu中上层的vm感知到的均是目标扩展处理器标识,从而实现对该故障无感。

23、基于第一方面提供的云系统,在一种可能的实现方式中,第一cpu,用于在第一路径发生故障的情况下,通过高速互连网络中的第三路径向目标设备发送第三posted请求;目标设备,用于在接收到第三posted请求之后,向第一cpu返回第三posted请求的确认消息;第一cpu,还用于在接收到第三posted请求的确认消息后,通过第三路径向目标设备发送第三non-posted请求。

24、通过上述方式,第一cpu可以在第一路径故障时切换到第三路径继续与目标设备进行通信,以保证第一路径故障场景下第一cpu与目标设备之间的通信可靠性。

25、第二方面,提供了一种基于云计算技术的云系统。第二方面提供的云系统的技术效果可以参考第一方面提供的云系统的技术效果,下面不再赘述。

26、其中,云系统包括cpu设备池、内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池,cpu设备池中的多个cpu、内存设备池中的多个内存、网卡设备池中的多个网卡、扩展处理器设备池中的多个扩展处理器以及磁盘设备池中的多个磁盘均接入到高速互连网络中;

27、其中,扩展处理器设备池中的第一扩展处理器,用于通过高速互连网络向cpu设备池中的第一cpu发送第二non-posted请求,第二non-posted请求包括io请求;第一cpu,用于接收并记录来自第一扩展处理器的至少一个第一io请求中每个第一io请求的序列号;第一cpu,还用于在第一扩展处理器故障的情况下,继续接收并记录来自扩展处理器设备池中第二扩展处理器的至少一个第二io请求中每个第二io请求的序列号,第二扩展处理器为扩展处理器设备池中用于替换第一扩展处理器的一个设备;第一cpu,还用于基于记录的序列号对io请求进行追踪。

28、基于第二方面提供的云系统,在一种可能的实现方式中,基于至少一个第一io请求中每个第一io请求的序列号和至少一个第二io请求中每个第二io请求的序列号,确定第一扩展处理器发送的第一io请求中是否存在丢失的io请求,或者确定第一扩展处理器发送的第一io请与第二扩展处理器发送的第二io请求之间是否存在重复的io请求。

29、基于第二方面提供的云系统,在一种可能的实现方式中,第一cpu还用于:在第一扩展处理器为第一cpu提供业务卸载功能时,将业务卸载设备标识确定为目标扩展处理器标识;在第二扩展处理器替换第二扩展处理器为第一cpu提供业务卸载功能后,继续确定业务卸载设备标识为目标扩展处理器标识。

30、第三方面,本技术提供了一种基于云计算技术的云系统中的请求处理方法。第三方面提供的方法的技术效果可以参考第一方面提供的云系统的技术效果,下面不再赘述。

31、其中,云系统包括cpu设备池、内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池,cpu设备池中的多个cpu、内存设备池中的多个内存、网卡设备池中的多个网卡、扩展处理器设备池中的多个扩展处理器以及磁盘设备池中的多个磁盘均接入到高速互连网络中。

32、在该方法中,cpu设备池中的第一cpu通过高速互连网络中的第一路径向目标设备发送第一报告posted请求,目标设备为内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池中的任一设备;目标设备在接收到第一posted请求之后,向第一cpu返回第一posted请求的确认消息;第一cpu在接收到第一posted请求的确认消息后,通过第一路径向目标设备发送第一非报告non-posted请求。

33、基于第三方面提供的方法,在一种可能的实现方式中,第一posted请求和第一non-posted请求均携带路径信息,路径信息用于指示第一路径。

34、基于第三方面提供的方法,在一种可能的实现方式中,在该方法中,第一cpu在接收到第一posted请求的确认消息时,确定第一posted请求没有丢包;或者,第一cpu在没有接收到第一posted请求的确认消息时,确定第一posted请求丢包。

35、基于第三方面提供的方法,在一种可能的实现方式中,第一posted请求为存储器写请求,存储器写请求携带目的地址和目标数据。这种场景下,第一cpu在发送存储器写请求之后,向目标设备发送存储器读请求,存储器读请求携带目的地址;第一cpu接收来自目标设备的读取结果;如果读取结果携带的数据为目标数据,第一cpu则确定存储器写请求没有丢包,或者,如果读取结果没有携带目标数据,第一cpu则确定存储器写请求丢包。

36、基于第三方面提供的方法,在一种可能的实现方式中,目标设备为扩展处理器设备池中的第一扩展处理器,其中:第一扩展处理器通过高速互连网络中的第二路径向第一cpu发送第二posted请求;第一cpu在接收到第二posted请求之后,向第一扩展处理器返回第二posted请求的确认消息;第一扩展处理器在接收到第二posted请求的确认消息后,通过第二路径向第一cpu发送第二non-posted请求。

37、基于第三方面提供的方法,在一种可能的实现方式中,在该方法中,第二non-posted请求包括io请求;在该方法中,第一cpu接收并记录来自第一扩展处理器的至少一个第一io请求中每个第一io请求的序列号;在第一扩展处理器故障的情况下,第一cpu继续接收并记录来自扩展处理器设备池中第二扩展处理器的至少一个第二io请求中每个第二io请求的序列号,第二扩展处理器为扩展处理器设备池中用于替换第一扩展处理器的一个设备;第一cpu基于记录的序列号对io请求进行追踪。

38、基于第三方面提供的方法,在一种可能的实现方式中,第一cpu基于记录的序列号对io请求进行追踪的实现方式可以为:基于至少一个第一io请求中每个第一io请求的序列号和至少一个第二io请求中每个第二io请求的序列号,确定第一扩展处理器发送的第一io请求中是否存在丢失的io请求,或者确定第一扩展处理器发送的第一io请与第二扩展处理器发送的第二io请求之间是否存在重复的io请求。

39、基于第三方面提供的方法,在一种可能的实现方式中,在该方法中,在第一扩展处理器为第一cpu提供业务卸载功能时,第一cpu将业务卸载设备标识确定为目标扩展处理器标识;在第二扩展处理器替换第二扩展处理器为第一cpu提供业务卸载功能后,第一cpu继续确定业务卸载设备标识为目标扩展处理器标识。

40、基于第三方面提供的方法,在一种可能的实现方式中,第一cpu在第一路径发生故障的情况下,通过高速互连网络中的第三路径向目标设备发送第三posted请求;目标设备在接收到第三posted请求之后,向第一cpu返回第三posted请求的确认消息;第一cpu在接收到第三posted请求的确认消息后,通过第三路径向目标设备发送第三non-posted请求。

41、第四方面,提供了一种基于云计算技术的云系统中的请求处理方法,第四方面提供的方法的技术效果可以参考第一方面提供的云系统的技术效果,下面不再赘述。

42、其中,云系统包括cpu设备池、内存设备池、网卡设备池、扩展处理器设备池以及磁盘设备池,cpu设备池中的多个cpu、内存设备池中的多个内存、网卡设备池中的多个网卡、扩展处理器设备池中的多个扩展处理器以及磁盘设备池中的多个磁盘均接入到高速互连网络中。

43、在该方法中,扩展处理器设备池中的第一扩展处理器通过高速互连网络向cpu设备池中的第一cpu发送第二non-posted请求,第二non-posted请求包括io请求;第一cpu接收并记录来自第一扩展处理器的至少一个第一io请求中每个第一io请求的序列号;在第一扩展处理器故障的情况下,第一cpu继续接收并记录来自扩展处理器设备池中第二扩展处理器的至少一个第二io请求中每个第二io请求的序列号,第二扩展处理器为扩展处理器设备池中用于替换第一扩展处理器的一个设备;第一cpu基于记录的序列号对io请求进行追踪。

44、第五方面,本技术提供了一种计算设备,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术第三方面以及其任一种可能的实现方式中提供的方法,或者执行本技术第四方面以及其任一种可能的实现方式中提供的方法。

45、第六方面,本技术提供了一种计算设备集群,包括多个计算设备,多个计算设备包括多个处理器和多个存储器,多个存储器中存储有程序指令,多个处理器运行程序指令,使得计算设备集群执行本技术第三方面以及其任一种可能的实现方式中提供的方法,或者执行本技术第四方面以及其任一种可能的实现方式中提供的方法。

46、第七方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算设备上运行时,使得计算设备执行本技术第三方面以及其任一种可能的实现方式中提供的方法,或者执行本技术第四方面以及其任一种可能的实现方式中提供的方法。

47、第八方面,本技术提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术第三方面以及其任一种可能的实现方式中提供的方法,或者执行本技术第四方面以及其任一种可能的实现方式中提供的方法。

48、上述第五方面至第八方面中对应的技术手段获得的技术效果近似,在这里不再赘述。