CN110809760B - 资源池的管理方法、装置、资源池控制单元和通信设备 - Google Patents
资源池的管理方法、装置、资源池控制单元和通信设备 Download PDFInfo
- Publication number
- CN110809760B CN110809760B CN201980000758.6A CN201980000758A CN110809760B CN 110809760 B CN110809760 B CN 110809760B CN 201980000758 A CN201980000758 A CN 201980000758A CN 110809760 B CN110809760 B CN 110809760B
- Authority
- CN
- China
- Prior art keywords
- resource pool
- address
- control unit
- hardware
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3442—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种资源池的管理方法、管理装置、资源池控制单元和通信设备,该方法应用于包括多个通信设备的资源池系统,每个通信设备中部署一个资源池控制单元;当前时刻负责管理资源池的第一资源池控制单元接收任意一个通信设备中应用程序的资源申请请求,按照预置规则从资源池中划分由一个或多个逻辑硬件设备组成的第一资源;向第二资源池控制单元发送资源配置请求,以便于第二资源池控制单元根据该资源配置请求完成第一资源的配置,为应用程序提供所需硬件设备资源。
Description
技术领域
本申请涉及计算机领域,尤其涉及数据中心中一种资源池的管理方法、装置、资源池控制单元和通信设备。
背景技术
随着计算机技术的不断发展,由大规模设备组成的统一运维管理的数据中心越来越多。通常在数据中心中利用单独服务器部署管理节点,管理节点可以识别硬件设备,由管理节点将数据中心中存储设备(例如,磁盘)、网络设备(例如,网卡、交换机)、计算设备(例如,中央处理器(central processing unit,CPU))等硬件资源组成资源池,并将一个或多个硬件设备的完整的资源分配给应用程序使用。例如,当应用程序1需要使用2个CPU资源时,管理节点可以在资源池中划分指定2个CPU(如CPU1和CPU2)为该应用程序1提供硬件资源,此时,上述CPU1和CPU2仅供应用程序1使用。除此之外,资源释放、资源池的扩容等操作均需要管理节点的参与。而当管理节点出现故障时,会导致整个资源池无法正常使用,应用程序业务中断,甚至出现数据丢失,影响数据中心的正常使用。因此,如何提供一种不依赖于管理节点的资源池管理的方法成为亟待解决的技术问题。
发明内容
本申请提供了一种资源池的管理方法、装置、资源池控制单元和通信设备,可以去除资源池中的管理节点,提供一种不依赖于管理节点的资源池管理的方法。
第一方面,提供一种资源池的管理方法,该方法应用于资源池的管理系统,该系统包括多个通信设备,部分或全部服务器中每个通信设备中部署一个资源池控制单元,各个通信设备通过资源池控制单元进行通信。首先,第一资源池控制节点接收任意一个通信设备中应用程序的资源申请请求,该资源申请请求中包括所需资源的类型和资源量,其中,第一资源池控制单元负责当前时刻管理资源池,为多个资源池控制单元中任意一个;类型用于指示该应用程序所需硬件资源的类型,资源量用于指示该应用程序所需硬件资源的大小。然后,第一资源池控制单元按照预置规则,从资源池中将满足所述类型和所述资源量要求的一个或多个逻辑硬件设备划分为第一资源;而资源池中的逻辑硬件设备的资源由多个通信设备中空闲的硬件设备提供,每个逻辑设备对应一个或多个硬件设备。最后,第一资源池控制单元向上述应用程序所在通信设备部署的第二资源池控制单元发送资源配置请求,指示所述第二资源池控制单元根据所述资源配置请求完成所述第一资源的配置,为所述应用程序提供所需资源。
上述技术方案中,根据业务需求在系统的全部或部分通信设备中均部署一个资源池控制单元,再在多个资源池控制单元中选择一个资源控制单元管理资源池,当接收到应用程序的请求时,当前时刻负责管理资源池的资源池控制单元可以划分由一个或多个逻辑硬件设备组成的第一资源,分配给应用程序使用。任意时刻由部署资源池控制单元中一个资源池控制单元负责管理资源池,当当前时刻管理资源池的资源池控制单元故障时,可以由其他资源池控制单元继续承担资源池的管理工作,避免影响系统业务。另一方面,资源池控制单元的个数可以灵活配置,只要通信设备中添加资源池控制单元即可参与资源池的管理,布局方式更灵活,具体实施时,可以根据业务需求设置资源池控制单元的数量,相比于传统技术中需要利用单独的通信设备部署管理节点的方式,成本也更低。
在一种可能的实现方式中,第一资源池控制单元为按照以下规则中任意一种规则从多个资源池控制单元中确定的一个资源池控制单元,包括:
第一资源池控制单元为按照资源池控制单元的标识确定的任意一个资源池控制单元;
第一资源池控制单元为多个资源池控制单元中负载最轻的一个资源池控制单元;
第一资源池控制单元为系统中首个启动的资源池控制单元。
通过上述描述可知,可以在部署资源池控制单元的多个通信设备中任意选择一个资源池控制单元管理资源池,去除传统技术中资源池管理中因依赖管理节点而产生的中心化问题。而且,资源池控制单元的部署数量可以依据业务需求设置,配置更灵活。
在另一种可能的实现方式中,系统初始化阶段,第一资源池控制单元还需要负责收集第一资源池控制单元所在通信设备中可用于组建所述资源池的第一硬件信息,以及接收所述多个通信设备中除所述第一资源池控制单元所在通信设备之外的其他通信设备中每个通信设备部署的资源池控制单元发送的可用于组建所述资源池的第二硬件信息;其中,第一硬件信息和第二硬件信息分别包括其所在通信设备中能够用于组建资源池的硬件设备的类型、资源量和位置。然后,第一资源池控制单元会根据第一硬件信息和第二硬件信息创建所述资源池。再在每个资源池中分别创建一个或多个逻辑硬件设备,每个逻辑硬件设备的资源由一个或多个硬件设备提供。
通过上述描述可知,第一资源池控制单元在管理资源池过程中,尤其在初始化阶段,需要利用各个通信设备中可用于组建资源池的硬件设备所提供的资源创建资源池,并将上述硬件设备提供的资源划分为一个或多逻辑硬件设备,细化资源的管理粒度,提升资源使用的效率。
在另一种可能的实现方式中,第一资源池控制单元具体是根据硬件设备的类型创建一个或多个资源池;然后,再在同一资源池中按照硬件设备所提供的资源量将一个或多个硬件设备组成多个分组。
在另一种可能的实现方式中,第一资源池控制单元创建逻辑设备的方法包括以下一种或多种:
方法1,将多个硬件设备在逻辑上划分为一个逻辑硬件设备;
方法2,将一个硬件设备在逻辑上划分为多个逻辑硬件设备;
方法3,将一个硬件设备在逻辑上划分为一个逻辑硬件设备。
由此精细化管理硬件设备,根据不同业务需求将不同逻辑设备分配给不同应用程序,满足不同资源需求,提升资源池中硬件设备的使用效率。
在另一种可能的实现方式中,第一资源池控制单元在划分第一资源时,优先将与第二资源池控制单元所在通信设备距离最近的通信设备的硬件设备的资源所组成的逻辑硬件设备划分第一资源;其中,与第二资源池控制单元所在通信设备距离最近的通信设备,是指与第二资源池控制单元数据传输距离最短的通信设备。由此减少应用程序访问硬件资源的时延,缩短数据处理时长,提升数据处理效率。
在另一种可能的实现方式中,除了上述划分第一资源的方式外,第一资源池控制单元还可以预先在同一资源池中建立第二资源池控制单元和其他资源池控制单元绑定关系;当具有绑定关系的资源池控制单元所在通信设备的应用程序需要申请资源时,第一资源池控制单元优先从与第二资源池控制单元确定绑定关系的资源池控制单元所在通信设备的硬件设备所组成的逻辑硬件设备划分为所述第一资源。
具体实施例,为了满足特殊或重要应用程序的业务需求,也可以按照硬件配置或逻辑硬件设备的位置和处理能力,预先建立资源池控制单元的绑定关系,保证特殊或重要应用对硬件设备的要求,提升其处理能力。
第二方面,本申请提供一种资源池管理的装置,所述装置包括用于执行上述第一方面或第一方面任一种可能实现方式中的资源池管理方法的各个模块。
第三方面,本申请提供一种资源池控制单元,该资源池控制单元包括处理器和存储器,存储器中用于存储计算机执行指令,资源池控制单元运行时,处理器执行所述存储器中的计算机执行指令以利用资源池控制单元中的硬件资源执行上述第一方面或第一方面任一种可能实现方式中的资源池管理方法的操作步骤。
第四方面,本申请提供一种通信设备,包括上述第三方面及第三方面任意一种可能的实现方式中所述的资源池控制单元、可组建资源池的硬件设备和总线,所述资源池控制单元和可组建资源池的硬件设备之间通过总线连接并完成相互间的通信,所述资源池控制单元包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述通信设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述通信设备中的硬件资源执行上述第一方面或第一方面任一种可能实现方式中的资源池管理方法的操作步骤。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请还提供一种消息传输方法及设备,用于在一个通信设备访问位于另一个通信设备内的硬件设备时,节省该硬件设备所在通信设备中处理器的计算资源,降低通信设备对位于其他通信设备中的硬件设备的访问延迟。
第七方面,本申请提供了一种消息传输方法,该方法适用于包含多个通信设备的通信系统,其中每个通信设备中包含处理器、访问组件和至少一个硬件设备。本方法中涉及的第一通信设备为通信系统的任一通信设备。第一通信设备的虚拟硬件设备由至少一个硬件设备组成。所述方法包括以下步骤:
第一通信设备的第一访问组件获取所述第一通信设备的处理器传输的消息后,判断该消息的传输对象;在第一访问组件确定传输对象为第二通信设备中的目标硬件设备时,将消息中包含的处理器的内存的存储地址转换为指示该目标硬件设备的存储地址,以及将消息中包含的虚拟硬件设备的存储地址转换为该目标硬件设备的存储地址;然后,第一访问组件向第二通信设备中的第二访问组件发送该消息。
通过该方法,当第二访问组件收到该消息后,就可以不通过第二通信设备内的处理器进行操作,即可直接根据指示该目标硬件设备的存储地址,向该目标硬件设备传输该消息,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示的该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该方法可以节省第二通信设备中的处理器的计算资源,也可以降低第一通信设备对位于其他通信设备的硬件设备的访问延迟。
在一种可能的实现方式中,第一访问组件和第二访问组件通过网络通信;在该情况下,第一访问组件可以通过网络报文的形式向第二访问组件发送该消息,即第一访问组件将该消息封装在第一报文中发送给第二访问组件。通过该方式,第一访问组件可以成功地通过网络将消息发送给第二访问组件。
在另一种可能的实现方式中,第一访问组件和第二访问组件的表现形式相同,均可以为FPGA、CPLD、ASIC、SOC中任一种表现形式或多种表现形式的结合。这样,通过该方式可以提高通信设备中访问组件的表现形式的灵活性。
在又一种可能的实现方式中,第一访问组件可以通过以下方式,确定消息的传输对象为该目标硬件设备:
第一访问组件获取存储的资源配置信息,该资源配置信息中包含组成虚拟硬件设备的每个硬件设备对应的存储地址范围;所述第一访问组件判断该消息中包含的虚拟硬件设备的存储地址所在的存储地址范围,然后在资源配置信息中确定该存储地址范围对应的硬件设备即为目标硬件设备。
通过该方式,第一访问组件可以准确地确定消息的传输对象。
在又一种可能的实现方式中,第一访问组件可以生成记录处理器的内存的存储地址与指示该目标硬件设备的存储地址的第一映射表,然后通过该第一映射表将消息中包含的处理器的内存的存储地址转换为指示该目标硬件设备的存储地址。
该方式可以提高第一访问组件处理器的内存的存储地址的转换效率。另外,后续第一访问组件在收到包含的该目标硬件设备的存储地址的消息后,也可以继续利用该第一映射表,将指示该目标硬件设备的存储地址转换为处理器的内存的存储地址,从而也可以提高第一访问组件对指示该目标硬件设备的存储地址的转换效率。
在又一个可能的实现方式中,第一访问组件可以通过以下步骤,生成第一映射表:
第一访问组件确定该目标硬件设备的指示信息。例如,在该资源配置信息中包含每个硬件设备的描述信息与对应的存储地址范围的情况下,第一访问组件在确定消息的传输对象时即可确定该目标硬件设备的描述信息,然后第一访问组件根据该目标硬件设备的描述信息,确定该目标硬件设备的指示信息。
然后,第一访问组件将目标硬件设备的指示信息添加至处理器的内存的存储地址中,得到指示该目标硬件设备的存储地址;最终,生成该第一映射表。
通过该方式,第一访问组件可以准确地得到指示该目标硬件设备的存储地址,以及并生成第一映射表。
在又一个可能的实现方式中,目标硬件设备的指示信息包括:目标硬件设备的标识,和/或,第二通信设备中该目标硬件设备所连接的单板的标识。通过该设计,可以使第二访问组件在收到该消息时,可以根据目标硬件设备的指示信息,准确地确定该消息的传输对象。
在又一个可能的实现方式中,消息中处理器的内存的存储地址所在地址字段中存在空闲位域时,目标硬件设备的指示信息可以占用全部或部分空闲位域。该方式可以避免增加消息的传输开销,提高地址字段的比特资源利用率。
在又一个可能的实现方式中,第一通信设备中的处理器的功能虚拟化为多个功能时,第一访问组件可以在生成指示该目标硬件设备的存储地址时,将处理器传输该消息时使用的功能的标识添加到处理器的内存的存储地址中。通过该方式,第一访问组件还可以将处理器使用的功能的标识添加到消息中。
在又一个可能的实现方式中,当虚拟硬件设备只由目标硬件设备一个组成的情况下,若该目标硬件设备为第一通信设备提供全部硬件资源时,目标硬件设备的存储地址与虚拟硬件设备的存储地址相同;若该目标硬件设备为第一通信设备提供部分硬件资源时,目标硬件设备的存储地址=虚拟硬件设备的存储地址+目标硬件设备对应的偏移位置。其中,目标硬件设备对应的偏移位置为:目标硬件设备为第一通信设备提供的硬件资源起始存储位置,该目标硬件设备对应的偏移位置可以从资源配置信息中获取。
通过该方式,第一访问组件可以根据虚拟硬件设备中硬件资源的实际配置情况,准确地确定目标硬件设备的存储地址。
在又一个可能的实现方式中,当虚拟硬件设备由多个硬件设备组成时,所述第一访问组件可以根据第二映射表,将虚拟硬件设备的存储地址转换为目标硬件设备的存储地址,其中,第二映射表用于描述:虚拟硬件设备的存储地址与目标硬件设备的存储地址之间的映射关系。
其中,第二映射表是根据该资源配置信息中规定的每个硬件设备为第一通信设备提供的硬件资源大小,以及每个硬件设备为第一通信设备提供硬件资源的先后顺序生成的。
当目标硬件设备为第一通信设备提供全部硬件资源时,第二映射表可以指示以下映射关系:目标硬件设备的存储地址=虚拟硬件设备的存储地址-在目标硬件设备前为第一通信设备提供硬件资源的硬件设备提供的硬件资源大小之和。
当目标硬件设备为第一通信设备提供部分硬件资源时,第二映射表可以指示以下映射关系:目标硬件设备的存储地址=虚拟硬件设备的存储地址-在目标硬件设备前为第一通信设备提供硬件资源的硬件设备提供的硬件资源大小之和+目标硬件设备对应的偏移位置。
通过该方式,第一访问组件可以根据虚拟硬件设备中硬件资源的实际配置情况,准确地确定目标硬件设备的存储地址。
在又一个实现方式中,消息为写请求消息,该情况下,在第一访问组件向第二访问组件发送该消息之后还包括以下步骤:
第一访问组件接收第二访问组件发送的第二报文;然后,根据第一映射表,将第二报文中的指示目标硬件设备的存储地址转换为处理器的内存的存储地址,并读取处理器的内存的存储地址指示的存储位置中的目标数据;最后向第二访问组件发送第三报文,该第三报文中包含目标数据、指示目标硬件设备的存储地址和目标硬件设备的存储地址。
通过该方式,第一访问组件可以将待写入的目标数据发送给第二访问组件,从而写入目标硬件设备,实现写操作。
在又一个实现方式中,消息为读请求消息,该情况下,在第一访问组件向第二访问组件发送该消息之后还包括以下步骤:
第一访问组件接收第二访问组件发送的第四报文;然后,根据第一映射表,将第三报文中指示目标硬件设备的存储地址转换为处理器的内存的存储地址;最后将第四报文中的携带的目标数据存储在处理器的内存的存储地址指示的存储位置中。
通过该方式,第一访问组件可以将从目标硬件设备读取的目标数据写入到处理器的内存中,实现读操作。
第八方面,本申请提供了一种消息传输方法,该方法适用于包含多个通信设备的通信系统,其中每个通信设备中包含处理器、访问组件和至少一个硬件设备。本方法中涉及的第二通信设备为通信系统的任一通信设备。所述方法包括以下步骤:
第二通信设备的第二访问组件接收第一通信设备中的第一访问组件发送的消息后,根据该消息中指示目标硬件设备的存储地址,确定该目标硬件设备;然后,第二访问组件向该目标硬件设备传输包含指示目标硬件设备的存储地址和目标硬件设备的存储地址的第一消息,以使目标硬件设备可以根据第一消息中的两个存储地址读取或写入所述目标数据。
通过该方法,第二访问组件收到该消息,不通过第二通信设备内的处理器进行操作,即可直接根据指示该目标硬件设备的存储地址,向该目标硬件设备传输该消息,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示的该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该方法可以节省第二通信设备中的处理器的计算资源,也可以降低第一通信设备对位于其他通信设备的硬件设备的访问延迟。
在一种可能的实现方式中,第二访问组件和第一访问组件通过网络通信;在该情况下,第一访问组件可以通过网络报文的形式向第二访问组件发送该消息,即第一访问组件将该消息封装在第一报文中发送给第二访问组件,第二访问组件通过解封装获取第一报文中的该消息。通过该方式,第一访问组件可以成功地通过网络将消息发送给第二访问组件。
在另一种可能的实现方式中,第一访问组件和第二访问组件的表现形式相同,均可以为FPGA、CPLD、ASIC、SOC中任一种表现形式或多种表现形式的结合。这样,通过该方式可以提高通信设备中访问组件的表现形式的灵活性。
在又一种可能的实现方式中,第一消息为写请求消息;第二访问组件向目标硬件设备发送第一消息之后还包括以下步骤:
第二访问组件接收目标硬件设备发送的第二消息,然后将该第二消息封装为第二报文发送给第一访问组件;其中,该第二消息用于请求读取存储在第一通信设备的处理器内存中的目标数据,包含指示目标硬件设备的存储地址和目标硬件设备的存储地址;然后,第二访问组件接收第一访问组件发送的第三报文,该第三报文中包含该目标数据,以及指示目标硬件设备的存储地址和目标硬件设备的存储地址;
所述第二访问组件根据第三报文中指示目标硬件设备的存储地址,确定该目标硬件设备,并将目标数据存储到目标硬件设备的存储地址指示的存储位置。
通过该方式,第二访问组件可以将待写入的目标数据存储到目标硬件设备,实现写操作。
在又一种可能的实现方式中,第一消息为读请求消息;第二访问组件向目标硬件设备发送第一消息之后还包括以下步骤:
第二访问组件接收目标硬件设备发送的第三消息,然后将该第三消息封装为第四报文发送给第一访问组件;其中,该第三消息用于请求将目标数据存储到处理器内存中,第三消息中包含目标数据,以及指示目标硬件设备的存储地址,该目标数据是目标硬件设备从目标硬件设备的存储地址指示的存储位置读取的;
这样,第一访问组件在收到该第四报文后,可以将指示目标硬件设备的存储地址转换为处理器的内存的存储地址,进而将该目标数据存储到处理器的内存中,实现读操作。
第九方面,本申请还提供了一种第一访问组件,该第一访问组件应用于第一通信设备,第一通信设备为通信系统中任意一个通信设备,通信系统中包括多个通信设备,每个通信设备包含处理器、访问组件和硬件设备。第一访问组件包括执行第七方面或第七方面任一种可能实现方式中的消息传输方法的各个模块。
第十方面,本申请还提供了一种第二访问组件,该第二访问组件应用于第二通信设备,第二通信设备为通信系统中任意一个通信设备,通信系统中包括多个通信设备,每个通信设备包括处理器、访问组件和硬件设备。第二访问组件包括用于执行第八方面或第八方面任一种可能实现方式中的消息传输方法的各个模块。
第十一方面,本申请还提供了一种通信设备,该通信设备包括处理器、访问组件和硬件设备,其中,访问组件用于实现各方面提供的方法。
第十二方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第七方面至第十一方面中各方面所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种资源池管理系统的架构示意图;
图2为本申请提供的另一种资源池管理系统的架构示意图;
图3为本申请提供的一种资源池的管理方法流程示意图;
图4为本申请提供的另一种资源池管理系统的架构图;
图5为本申请提供的一种访问组件的结构示意图;
图6为本申请提供的一种资源池系统中消息传输方法的流程示意图;
图7为本申请提供的另一种资源池系统中消息传输方法的流程示意图;
图8为本申请提供的一种资源池的管理装置的结构示意图;
图9为本申请提供的一种服务器100的结构示意图;
图10为本申请提供的一种访问组件400的结构示意图;
图11为本申请提供的一种通信设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述。
图1是本申请实施例提供的一种资源池的系统架构的示意图,如图所示,该系统包括多个通信设备,按照每个通信设备的作用又可以具体划分为应用设备和资源设备,对于同一个通信设备而言,即可以为应用设备,也可以为资源设备。应用设备用于运行用户的应用程序,具体可以是服务器100或终端101,终端包括智能手机、便携计算机、平板电脑等。资源设备包括服务器201、大型计算设备202、交换203和防火墙204。多个资源设备共同组成一个或多个资源池200。应用设备和资源池中资源设备通过网络300进行通信,应用设备可以通过网络300使用资源池200中硬件资源。网络300可以利用以太网(Ethernet)、远程直接数据存取(remote direct memory access,RDMA)网络,其中,RDMA网络包括IB(InfiniBand)网络等。
为了便于描述,本申请实施例中应用设备和资源设备均为服务器为例进行说明。图2是本申请实施例提供的另一种资源池的系统架构的示意图,如图所示,该系统包括应用服务器100和资源服务器201。其中,应用服务器100中包括资源池控制单元(poolcontroller unit,PCU)101、处理器102和虚拟硬件设备103,虚拟硬件设备103来自由多个资源服务器201组成的资源池,资源池控制单元101连接处理器102和虚拟硬件设备103。其中,资源池控制单元101和处理器102通过快捷外围部件互连标准(Peripheral ComponentInterconnect Express,PCIe)或超级通道互连(Ultra Path Interconnect,UPI)连接。对于应用服务器100的处理器102来说,并不感知资源池的存在,应用服务器仅通过资源池控制单元101访问资源服务器中各种硬件资源。处理器102中运行多个应用程序,例如应用程序1021和应用程序1022。每个应用服务器100通过网络300访问资源服务器201。资源服务器201中包括资源池控制单元2011、处理器2012和硬件资源2013,其中,资源池控制单元2011和处理器2012也通过PCIe或UPI连接;硬件资源2013包括计算资源、存储资源和网络资源,计算资源如中央处理器(central processing unit,CPU)、人工智能(artificial)芯片、图形处理器(graphic processing unit,GPU);存储资源包括磁盘20134,具体可以是机械硬盘,如串行连接的小型计算机系统接口(serial attached small computer systeminterface,SAS)磁盘、串行高级技术附件(Serial Advanced Technology Attachment,SATA)磁盘,也可以是固态硬盘(solid state disk,SSD);网络资源可以是网卡20135。
图2所示的应用服务器100中资源池控制单元101和资源服务器201中资源池控制单元2011可以利用硬件实现,例如,上述资源池控制单元可以利用CPU、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specificintegrated circuit,ASIC)、片上系统(System on a chip,SOC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),通用阵列逻辑(generic array logic,GAL)或其任意组合。
可选地,应用服务器100中资源池控制单元101和资源服务器201中资源池控制单元2011也可以利用软件实现,具体可以为存储在应用服务器的存储介质(图中未示出)中一段计算机程序代码,由应用服务器100中处理器102执行该段程序代码实现资源池控制单元101的功能。
可选地,图2所示的应用服务器100中资源池控制单元101和资源服务器201中资源池控制单元2011也可以称为访问组件,除了用于管理资源池外,该访问组件为通信设备内的专用硬件部件,用于实现通信设备内和通信设备之间的硬件资源访问。由于访问组件可以实现通信设备之间的硬件资源访问,因此,访问组件具有网络通信的功能。可选地,访问组件可以通过多种外设接口分别与其他通信设备内的访问组件、硬件设备连接。可选地,外设接口可以为扩展外围组件互连(Peripheral Component Interconnect,PCI)接口,或者扩展外围组件互连高速(Peripheral Component Interconnect express,PCIe)接口或其他可用于与其他通信设备进行通信的外设接口,本申请对此不作限定。该访问组件通过外设接口可以实现处理器和硬件设备之间消息的透传。消息的透传,即消息在传输过程中访问组件只对消息中包含的存储地址进行转换,而不对消息的其他内容(例如消息中包含的其他数据、消息的类型等)进行改变;换句话说,处理器生成消息与硬件设备最终接收的消息之间的差别,以及硬件设备生成的消息与处理器最终接收的消息之间的差别,仅在于包含的存储地址不同。
作为一个可能的实现方式,图2中应用服务器的硬件资源也可以添加至资源池,为所有应用服务器硬件提供硬件资源。
作为另一种可能的实现方式,除了如图2中每个服务器均部署资源池控制单元外,也可以根据业务需求选择部分服务器部署资源池控制单元,对于部署了资源池控制单元的服务器即可参与资源池的管理。为了便与描述,本申请的以下描述中以图2所示每个服务器均部署资源池控制单元为例进行说明。
传统技术中,通常利用由一个单独服务器作为管理节点,资源池的管理过程均需要管理节点的参与,而当管理节点故障时,会引起应用服务器中运行的应用程序无法使用资源池中硬件资源,导致用户的业务中断或数据丢失。为了解决上述问题,本申请实施例提供一种去除管理节点的技术方案,由同一个资源服务器的多个硬件或不同资源服务器的多个硬件组成资源池,在应用服务器和资源服务器中均部署池化管理单元,各个资源池控制单元通过网络进行通信,为应用服务器提供硬件资源,资源池控制单元之间共同承担资源池管理的任务,由此提升资源池系统的可靠性。
下面,结合图3进一步介绍本申请实施例提供的资源池的管理方法。图3是本申请实施例提供的一种资源池的管理方法,如图所示,该方法包括:
S101、第一资源池控制单元收集第一资源池控制单元所在第一服务器中可以用于组建资源池的硬件资源信息。
由图2可知,每个服务器中均部署一个资源池控制单元,多个资源池控制单元通过网络进行通信。在资源池初始化阶段,多个资源池控制单元可以优先选择任意一个资源池控制单元管理资源池,例如,负责创建资源池和逻辑硬件设备、分配资源、释放资源等。作为一个可能的实施例,每个资源池控制单元配置有唯一标识,系统可以按照资源池控制单元的标识指定任意一个资源池控制单元负责管理资源池。例如,假设系统中共存在四个服务器,每个服务器部署一个资源池控制单元,标识依次为资源池控制单元1、资源池控制单元2、资源池控制单元3和资源池控制单元4,则优先选择资源池控制单元1负责创建资源池和逻辑硬件设备。当任意一个资源池控制单元确定其负责管理资源池后,会向其他资源池控制单元发送通知消息,通知资源池控制单元其负责管理资源池,以便于后续不同类型的资源池控制单元之间进行消息处理。
可选地,在图2所示的系统中,也可以由首个启动的资源池控制单元负责管理资源池。其中,首个启动的资源池控制单元是指在所有资源池控制单元中,第一个运行资源池控制单元进程的资源池控制单元。当两个或两个以上资源池控制单元同时启动时,可以按照资源池控制单元的标识再选择一个资源池控制单元管理资源池。或者,按照当前时刻资源池控制单元的负载情况,选择负载最低的资源池控制单元负责管理资源池。
值得说明的是,同一系统中管理资源池的资源池控制单元可以变更。为了便于描述,本申请实施例中以当前时刻管理资源池的资源池控制单元为第一资源池控制单元。
进一步地,每个资源池控制单元都会收集其所在服务器(例如,第一服务器)能够用于组建资源池的硬件资源信息,该硬件资源信息中包括硬件的类型、资源量、数量、位置,其中,类型,用于标识该硬件的类型,例如,计算、存储、网络;资源量,是指硬件的处理能力或存储能力,例如,如果硬件是CPU,则该CPU的资源量可以利用处理器核数、主频、转速等参数表示;数量,是指该硬件的个数;位置,是指该硬件所在服务器的标识或位置。
S102、第一资源池控制单元接收第二资源池控制单元所在第二服务器中可以用于组建资源池的硬件资源信息。
与步骤S101相同,每个资源池控制单元都会收集其所在服务器中可以用于组建资源池的硬件信息。第二资源池控制单元用于指示除第一资源池控制单元之外的任意一个资源池控制单元。
S103、第一资源池控制单元根据各个服务器中可组建资源池的硬件资源信息创建资源池,并创建逻辑硬件设备。
第一资源池控制单元在收集了各个资源池控制单元发送的可组建资源池的硬件资源信息后,可以按照硬件的类型对其进行分类划分成一个或多个资源池。例如,将所有CPU组成一个资源池,将所有GPU组成另一个资源池,再将所有磁盘组成一个资源池。
可选地,在同一个资源池中,还可以按照不同属性继续划分为不用组。例如,在CPU资源池中,将同一个CPU中具有4个处理器核的CPU划分为一个组,将同一个CPU中具有8个处理器核的CPU划分为另一个组。
为了更细化资源的划分,第一资源池控制单元可以按照以下方式中的任意一种或多种方式将同一资源池中硬件设备划分为多个逻辑硬件设备:
方式一:将同一个硬件设备划分为多个逻辑硬件设备。
以硬件设备为磁盘为例,可以将同一个磁盘硬件设备划分为多个逻辑磁盘,供多个应用服务器的应用程序使用。
方式二:将多个硬件设备组成一个逻辑硬件设备。
为了增加计算资源的处理能力,可以将多个人工智能芯片组成一个逻辑人工智能芯片,用于共同完成一个数据处理过程,提升处理效率,降低处理时长。或者,为了增大磁盘的资源量,将多个磁盘组成一个逻辑磁盘,供应用程序使用。方式二中硬件设备可以归属于同一服务器,也可以归属于不同服务器。
方式三:将同一个硬件设备作为一个逻辑硬件设备。
可以将同一个硬件设备以共享方式提供给多个应用程序使用,允许多个应用程序同时使用该硬件设备。也可以将同一个硬件设备以独享的方式仅提供给一个应用程序使用,仅允许该应用程序使用该硬件设备。
S104、第一资源池控制单元接收第二服务器中应用程序的资源申请请求。
第一资源池控制单元接收的资源申请请求,具体为第二资源池控制单元发送的第二服务器中应用程序的资源申请请求。该资源申请请求包括应用程序的标识、所需资源的类型、资源量。其中,应用程序的标识,用于唯一标识一个应用程序;所需资源的类型,用于标识该应用程序所需硬件资源的类型,如计算资源、网络资源或存储资源;所需资源的资源量,用于标识应用程序所需资源的具体要求,具体地,当需要计算资源时,资源量用于指示所需计算资源的计算能力,例如,当需要CPU时,资源量则用于指示所需CPU的个数和每个CPU的核数、主频、以及可处理的线程数等。可选地,资源申请请求中还可以包括应用程序所在应用服务器的标识。
S105、第一资源池控制单元按照预置规则将一个或多个逻辑硬件设备划分为第一资源。
第一资源池控制单元根据资源申请请求,可以按照预置规则在资源池中划分一个或多个逻辑硬件设备作为第一资源,以保证第一资源可以满足资源申请请求的要求。
预置规则包括以下几种规则中任意一种或多种规则:
规则一:优先选择距离应用程序所在服务器较近的硬件设备的资源所组成的逻辑硬件设备组成第一资源。
由上述描述可知,资源池由各个服务器可用于组成资源池的多个硬件设备的资源共同组成,为了考虑应用程序所使用资源的传输时延,可以选择与应用程序所在服务器距离较近的服务器所提供的硬件设备构成的逻辑硬件设备作为第一资源,具体距离可以利用不同服务器所在位置进行区分,例如,优选同一服务器所提供的资源,如果同一服务器所提供的资源不能满足资源申请请求的要求,则优选同一机柜的服务器所提供的资源。
可选地,当应用服务器的硬件设备也用于组成资源池时,可以优选该应用程序所在服务器所提供的硬件设备构成的逻辑硬件设备作为第一资源,此时,资源池控制单元通过PCIe协议访问硬件资源,相比于通过网络300访问其他服务器的硬件资源,因为数据传输路径缩短,速度会更快,可以提升数据处理的效率。
规则二:应用服务器中资源池控制单元可以与指定的一个或多个资源服务器中资源池控制单元建立绑定关系,当任意一个资源池控制单元所在服务器的应用程序申请资源时,第一资源池控制单元按照上述绑定关系,仅从指定的资源服务器的硬件设备组成的逻辑硬盘为应用服务器提供硬件资源。
图2所示的系统中,应用服务器中资源池控制单元预先与资源服务器中一个或多个资源池控制单元建立关联关系,当应用服务器中应用程序需要资源时,仅从与该应用服务器的资源池控制单元绑定的资源池控制单元所在的资源服务器中划分硬件资源。以上划分方式,可以根据应用服务器中运行的应用程序对资源需求的类型,指定固定的一个或多个资源服务器为其提供硬件资源,保证应用程序的应用需求。另外,在数据中心或公有云领域,对于较重要的应用程序,也可以按照上述方式划分资源,优先满足重要应用程序的资源需求,提升整个数据中心或公有云的服务质量。
可选地,当第一资源池控制单元划分第一资源后,会将组成第一资源的一个或多个逻辑硬件设备的状态更新为忙碌,用于指示该逻辑硬件设备已被其他应用程序使用。
S106、第一资源池控制单元根据第一资源向第二资源池控制单元发送资源配置请求。
当第一资源池控制单元确定第一资源后,会向第二资源池控制单元发送资源配置请求,其中,资源配置请求中携带逻辑硬件设备的标识和提供硬件资源的服务器的标识,以便于应用程序在使用该硬件资源时,第二资源池控制单元可以根据该服务器的标识访问硬件设备。服务器的标识可以利用媒体访问控制(Media Access Control,MAC)地址或互联网协议(Internet Protocol,IP)地址标识。可选地,资源配置请求中还可以携带资源池控制单元的标识。
S107、第二资源池控制单元根据资源配置请求完成第一资源的配置,供第二服务器中应用程序使用。
第二资源池控制单元在接收到资源配置请求后,会记录逻辑硬件设备的标识,以及提供硬件资源的服务器的标识。由于应用服务器中由资源池控制单元连接虚拟硬件设备,当应用程序需要访问硬件资源时,首先,由资源池控制单元确定访问请求所对应的逻辑硬件设备,然后,再确定该逻辑硬件设备所在服务器,再根据服务器的标识,将访问请求发送至该服务器,进而由该服务器的处理器完成读取或写入的操作。
作为一个可能的实施例,第一资源池控制单元还会向提供硬件资源的资源池控制单元发送资源配置请求,以便于该资源池控制单元记录所要提供的硬件设备,以及为哪个资源池控制单元提供上述硬件设备。
S108、第一资源池控制单元接收第二服务器的应用程序的资源释放请求。
当第二服务器的应用程序完成资源使用时,第二服务器的应用程序会通过第二资源池控制单元向第一资源池控制单元发送资源释放请求,资源释放请求中可以携带使用的逻辑硬件设备的标识。
S109、第一资源池控制单元指示提供第一资源的服务器的资源池控制单元已完成第一资源的使用。
第一资源池控制单元负责资源池中资源的释放,当应用程序完成对其申请的硬件资源使用时,会通知第一资源池控制单元释放上述硬件资源,例如,第一资源池控制单元在应用程序完成第一资源使用时,会通知提供上述硬件资源的服务器的资源池控制单元已完成资源使用,相应地,提供硬件资源的服务器的资源池控制单元会更新其记录的硬件资源绑定关系,以便于重新提供给其他应用程序使用。
S110、第一资源池控制单元更新逻辑硬件设备的状态。
第一资源池控制单元在管理资源池时,需要记录各个逻辑硬件设备的状态,当应用程序已完成逻辑硬件设备的使用时,可以更新逻辑硬件设备的状态为空闲,该状态用于标识逻辑硬件设备当前未被分配给应用程序使用,第一资源池控制单元可以将该逻辑硬件设备重新分配给其他应用程序使用。
值得说明的是,当第一资源池控制单元中应用程序需要申请硬件资源时,上述步骤S106、S109-S111均由第一资源池控制单元完成。
作为一个可能的实施例,除了由上述第一资源池控制单元管理资源池以外,也可以在图2所示的系统中选择任意一个处理器实现资源池的管理。示例地,选择当前时刻系统中负载最低的处理器负责管理资源池,此时,所有资源池控制单元均会将其收集的该资源池控制单元所在服务器的可用于组建资源池的硬件资源信息发送至该处理器,由该处理器负责创建资源池和逻辑硬件设备,以及资源申请和资源释放。也就是说,该处理器执行图3中第一资源池控制单元的操作步骤,由该选定的处理器接收和汇总第一资源池控制单元和第二资源池控制单元发送的其所在服务器中可以用于组建资源池的硬件资源信息;再根据上述服务器中可组建资源池的硬件资源信息创建资源池,并创建逻辑硬件设备;当接收到任意一个资源池控制单元发送的应用程序的资源申请请求时,则在按照预置规则将一个或多个逻辑硬件设备划分给该资源池控制单元,由该资源池控制单元完成资源配置,供应用程序使用所需资源。当该应用程序完成数据处理后,资源池控制单元会向该处理器发送资源释放请求,由该处理器更新逻辑硬件设备的状态,实现资源池中资源共享。
作为另一个可能的实施例,当当前时刻负责管理资源池的资源池控制单元故障或因升级等原因导致无法继续工作时,多个资源池控制单元可以重新选择一个新的资源池控制单元负载管理资源池,例如,多个资源池控制单元按照当前负载情况,选择负载最低的作为当前时刻负载管理资源池的资源池控制单元。或者,也可以按照资源池控制单元的标识选择一个资源池控制单元负载管理资源池。本申请实施例中,资源池控制单元仅用于实现资源池的创建、逻辑硬盘的创建、资源分配、资源释放过程,具体实施例中,应用程序使用硬件资源过程并不需要资源池控制单元的参与,也就是说,当前时刻负责管理资源池的资源池控制单元仅需要记录资源池的组成、逻辑硬件设备的组成和状态。当当前时刻负责管理资源池的资源池控制单元故障或升级时,新的负责管理资源池的资源池控制单元仅需要获取资源池的组成、逻辑硬件设备的组成和状态即可以继续管理资源池。具体实施时,每个负责管理资源池的资源池控制单元可以利用数据库或指定文件或其他形式记录资源池的组成、逻辑硬件设备的组成和状态,当当前时刻负责管理资源池的资源池控制单元故障或升级时,可以在宕机前将上述数据库内容或指定文件发送给任意一个资源池控制单元,当新的资源池控制单元确定后,再由保存上述数据库内容或指定文件的资源池控制单元发送给新的资源池控制单元,以实现新的资源池控制单元对资源池的管理。
通过上述内容描述,本申请所提供的资源池管理方法中可以根据业务需求选择多个服务器,每个服务器中部署一个资源池控制单元,各个资源池控制单元通过网络进行通信,由各个资源池控制单元共同管理资源池,资源池中无中心控制节点,无需部署传统技术中单独的管理节点,也不涉及因为管理节点故障或升级所导致的业务中断问题。当当前时刻负责管理的资源池控制单元故障时,其他资源池控制单元可以通过预置规则重新选出新的负责管理的资源池控制单元,承接原资源池控制单元的任务,继续管理资源池,有效提升了整个系统的可靠性。而且,资源池控制单元可以由FPGA或ASCI电路实现,相比于独立服务器部署管理节点的方式,降低了系统部署成本。另一方面,资源池控制单元的个数可以灵活配置,只要服务器中添加资源池控制单元即可参与资源池的管理,布局方式更灵活,具体实施时,可以根据业务需求设置资源池控制单元的数量,相比于传统技术中需要利用单独的服务器部署管理节点的方式,部署形式更灵活,成本也更低。再一方面,资源池的管理过程中采用更细粒度的管理方式,将硬件资源划分为不同形式的逻辑硬件设备供应用程序使用,允许同一物理设备的资源划分成多个逻辑硬件设备,或者将多个物理设备的资源共同组成一个逻辑物理设备,或者将一个物理设备的资源作为一个逻辑物理设备,资源使用的形式多样化,在数据中心或公有云领域可以依据用户需求分配给不同应用程序使用,提升了真个系统的资源利用率。
上述内容介绍了本申请提供的资源池系统的结构和管理方式,接下来,结合附图进一步介绍对于单个通信设备,如何实现一种在通信设备内对其虚拟硬件设备的消息传输方法,提升通信设备内的访问组件加速访问资源池中其他硬件设备的硬件设备的方法,降低通信设备对资源池中位于其他通信设备中的硬件访问的访问时延。
图4为本申请提供的另一种资源池管理系统的架构图,如图所示,在通信系统中,包括多个通信设备(如图中所示的通信设备A、通信设备B和通信设备C),和资源管理设备。其中,每个通信设备中均包含处理器、访问组件以及至少一个硬件设备。硬件设备可以包括SSD、中央处理器、GPU、NIC中至少一种。
图4中多个硬件设备如何组成硬件资源池,以及虚拟硬件设备分配方式的具体实现方案可以参考上述图1至图3所示的方法。可以将系统中至少一个可用的同类型的硬件设备组成一个虚拟逻辑设备,将该虚拟逻辑设备分配给一个通信设备外,也可以将所有可用的同类型的硬件设备组成一个或多个逻辑硬件设备,然后,在按照预置规则将每个逻辑硬件设备切分为多个子逻辑硬件设备,每个子逻辑硬件设备可以称为一个虚拟硬件设备。例如,当前系统中可用SSD设备为通信设备1的SSD 1、通信设备2的SSD 1和通信设备3的SSD1,将上述三个SSD组成一个逻辑SSD,然后,按照预置规则将该逻辑SSD切分为2个子逻辑SSD,每个子逻辑SSD称为一个虚拟SSD,可以分配给一个通信设备使用。
图4中虚拟硬件设备是以将图4所示系统中至少一个同种类型的可用硬件设备组成硬件资源池,该硬件资源池中包括一个或多个虚拟硬件设备,每个虚拟硬件设备由至少一个硬件设备组成为例进行描述。示例地,通信系统中的资源管理设备将通信设备1的SSD1和通信设备2的SSD 1组成一个虚拟SSD盘,并将该虚拟SSD盘分配给通信设备1使用,其中,该虚拟SSD盘的资源量为两个SSD盘资源量之和。
由于该通信系统采用了资源整合方式,因此,该通信系统中的资源管理设备可以将该通信系统中的各个通信设备中的具有同一设备类型的硬件设备(即硬件资源)进行资源整合,生成硬件资源池。例如,资源管理设备可以将所有通信设备中的固态硬盘(solidstate disk,SSD)资源整合为一个SSD资源池,或者将所有通信设备中的NIC资源整合为一个NIC资源池。
当某个通信设备请求分配硬件资源时,资源管理设备在该硬件资源池中拆分出满足该通信设备的硬件资源需求的硬件资源,并将拆分出的硬件资源作为一个虚拟硬件设备分配给该通信设备。资源管理设备在将该虚拟硬件设备分配给该通信设备后,还将该通信设备的资源配置信息发送给该通信设备。其中,资源管理设备可以为多个通信设备中的任一个,也可以为该通信系统中具有控制管理功能的、独立于通信设备的其他设备。具体的,该资源管理设备可以为图1或图2中当前时刻用于管理资源池的任意一个资源池控制单元。
资源管理设备为一目标通信设备分配的硬件资源,可以由至少一个硬件设备中的部分或全部硬件资源组成。其中,该至少一个硬件设备可以位于同一个通信设备,也可以位于不同的通信设备,本申请对此不作限定。另外,该至少一个硬件设备中可以包含位于该目标通信设备内的硬件设备,也可以不包含位于该目标通信设备内的硬件设备,本申请对此也不作限定。
本申请实施例的以下描述中,以通信设备A为应用服务器,通信设备A、通信设备B、通信设备C为资源服务器,以硬件设备为SSD为例进行进一步详细描述。
例如,资源管理设备为通信设备A分配硬件资源时,将通信设备A中的SSD A_1、通信设备B中的SSD B_1,以及通信设备C中的SSD C_1中的全部硬件资源作为虚拟SSD分配给通信设备A。
资源管理设备在为通信设备A分配硬件资源后,生成通信设备A的资源配置信息,并将通信设备A的资源配置信息发送给该通信设备A,该通信设备A中的访问组件A保存该资源配置信息。该访问组件A可以根据该资源配置信息向处理器A发送通知,使处理器A确定资源管理设备已经为通信设备A分配的虚拟硬件设备的设备类型(SSD)、提供的硬件资源大小等信息。
处理器A会接收到运行的业务应用发送的请求消息,该请求消息可以为读请求消息,也可以为写请求消息。处理器A将该请求消息传输给访问组件A,该访问组件A可以根据该资源配置信息,判断该请求消息的传输对象具体属于组成该虚拟SSD中哪个SSD。具体包括以下几个场景:
场景一:当访问组件A接收的请求消息的传输对象与处理器A位于同一通信设备(例如,请求消息的传输对象为SSD A_1)时,该访问组件A可以直接将该请求消息发送给该SSDA_1,以使该SSDA_1执行该操作。
场景二:当访问组件A接收的请求消息的传输对象与处理器A位于不同通信设备(例如,请求消息的传输对象为通信设备B中的SSD B_1)时,该访问组件A将该请求消息发送给该通信设备B中的访问组件B。该通信设备B中的访问组件B在收到该请求消息后,再将该请求消息发送给该SSD B_1,以使该SSD B_1执行该操作。
需要说明的是,在每个通信设备的内部的访问组件与处理器之间,以及访问组件与每个SSD之间均通过外设接口连接,以进行部件之间的通信。
可选地,该外设接口可以为PCIe接口,那么在每个通信设备内部的访问组件中均包含PCIe端点(endpoint)和PCIe根端口(root port),如图所示。其中,PCIe端点,用于连接处理器,在处理器和访问组件之间建立传输通道。PCIE根端口,用于连接通信设备内的每个SSD,在访问组件和每个SSD之间建立传输通道。
另外,在应用设备和资源设备为不同的通信设备时(如场景二中的描述),为了实现应用设备中的访问组件可以与位于资源设备中的硬件设备之间进行消息传输,通信系统中的应用设备和资源设备之间存在通信连接,即应用设备和资源设备中的访问组件之间存在通信连接。例如,如图1a中所示,通信设备A中的访问组件A与通信设备B中的访问组件B、以及与通信设备C中的访问组件C之间通过通信接口连接。
由于每个通信设备均可以作为资源设备为其他应用设备提供硬件设备,也可以作为应用设备由其他通信设备为其提供硬件设备,因此,可选地,通信系统中任意两个通信设备中的访问组件之间可以通过通信接口连接。例如,如图1a中所示,通信设备B中的访问组件B与通信设备C中的访问组件C之间通过通信接口连接。
可以理解的是,两个访问组件之间可以通过直连通信,也可以通过网络通信,本申请对此不作限定。当访问组件之间通过网络通信时,网络中可以包含各种网络转发设备(例如,交换机、路由器等)。
根据访问组件之间的连接方式的不同,二者之间在通信时采用的通信协议也不同。因此,访问组件在发送消息时,还需要按照约定的通信协议,将消息封装为报文。访问组件接收到报文后,也需要按照约定的通信协议,将报文解封装为消息。
例如,当访问组件之间通过网络通信时,二者之间可以采用以太网协议、传输控制协议/网络协议(Transmission Control Protocol/Internet Protocol,TCP/IP)等通信协议。
图5为本申请提供的一种访问组件的结构示意图,如图所示,在通信设备内部的处理器和访问组件之间,以及访问组件与硬件设备之间通过PCIe接口实现连接的情况下,通信设备中的空间访问示意图。
在PCIe结构中,访问组件和硬件设备均称为PCIe设备。其中,每个PCIe设备中均配置两类空间:配置空间和基址寄存器(base address register,BAR)空间。
PCIe设备的配置空间就是一系列寄存器的集合,这些寄存器中保存了该PCIe的设备类型、该PCIe设备其他基本信息(设备标识、厂家信息,版本号等),以及BAR空间的基址。
PCIe设备的BAR空间也是寄存器空间,寄存器包含了该PCIe设备能够管理的队列的基址,以及该队列的指针等信息。
如图5所示,访问组件是处理器的一个endpoint,处理器可以通过PCIe结构中的根复合体(root complex,RC),访问访问组件的配置空间。处理器可以通过访问组件的配置空间,配置访问组件的BAR空间的基址,并实现对访问组件的BAR空间的配置和访问。
访问组件可以自主访问硬件设备的配置空间,并将其映射到访问组件的BAR空间内,这样,访问组件可以通过对自身的BAR空间的访问,间接实现对硬件设备的配置空间的访问。在访问组件间接访问硬件设备的配置空间,可以配置硬件设备的BAR空间的基址,从而实现对硬件设备的BAR空间的配置和访问。
当通信系统中的资源管理设备为该一个通信设备(继续以通信设备A为例)分配虚拟硬件设备后,访问组件A生成一个配置空间,该配置空间中包含该虚拟硬件设备的设备类型,以及其他基本信息。这样,处理器A可以通过RC访问访问组件A的配置空间,识别虚拟硬件设备的设备类型以及其他基本信息,从而根据这些信息生成用于实现某些操作的请求消息。可选地,所述RC可以集成在处理器A内部,也可以是独立于处理器A的硬件,本申请对此不作限定。
此外,在处理器A与访问组件A进行消息传输的过程中,也均需要该RC实现。例如,当处理器A需要向访问组件A传输消息时,需要将消息存储到处理器A的内存中,然后通过RC将消息写入到访问组件A中;当访问组件A需要从访问组件A读取消息时,也需要通过RC将消息读取到处理器A的内存中,然后处理器A再从内存中读取消息。
访问组件A与通信设备A中的任一个硬件设备(以硬件设备A_1为例),进行消息传输的过程中,也需要访问组件A具有RC的功能,以及需要访问组件A的内存参与实现,具体过程与处理器A与访问组件A进行消息传输的过程类似,此处不再赘述。
另外,在消息传输中,若处理器A和访问组件A之间通过队列存储的方式传输消息(例如,请求消息、响应消息等)(即将消息保存到处理器A的内存的队列中),则需要处理器A频繁访问访问组件A的BAR空间,以使访问组件A确定处理器A的内存中的队列的基址,进而使访问组件A可以从该队列中读取消息,或者将消息写入该队列。
类似的,若访问组件A和硬件设备A_1之间通过队列存储的方式传输消息(例如,请求消息、响应消息等)(即将消息保存到处理器A的内存的队列中),则需要访问组件A频繁访问硬件设备A_1的BAR空间,以使硬件设备A确定访问组件A的内存中队列的基址,进而使硬件设备A_1可以从该队列中读取消息,或者将消息写入该队列。
本申请实施例提供了一种消息传输方法,该方法适用于如图4所示的通信系统中。本申请实施例的以下描述中,继续以通信设备A为应用服务器,通信设备A、通信设备B、通信设备C为资源服务器,以硬件设备为SSD为例进行进一步详细描述。
其中,消息是指在处理器和组成虚拟硬件设备的某个硬件设备之间传输的内容,用于实现处理器期望虚拟硬件设备执行的读写操作。具体的,消息可以包括执行操作前的请求消息、执行操作过程中的数据执行消息、操作执行完成后的响应消息等,本申请对此不作限定。当处理器需要对虚拟硬件设备执行读操作时,请求消息为:读请求消息;数据执行消息为:该硬件设备发送的携带目标数据的数据存储请求,和该处理器存储目标数据到内存后返回的数据存储响应;响应消息为:该硬件设备接收到数据存储响应确认处理器读取到目标数据后发送的读响应消息。当处理器需要对虚拟硬件设备执行写操作时,请求消息为:写请求消息;数据执行消息为:该硬件设备发送的数据读取请求,和该处理器返回的携带目标数据的数据读取响应;响应消息为:该硬件设备成功存储该目标数据后发送的写响应消息。
通过以上对访问组件的描述可知,处理器和硬件设备之间未直接相连,而是通过访问组件连接的。因此,消息的传输包括两个过程:过程一、处理器和该处理器所在的通信设备中的访问组件之间的消息传输;过程二:该处理器所在的通信设备中的访问组件与该硬件设备之间的消息传输。
可选地,在过程一中传输的消息中可以包含:指示目标数据在虚拟硬件设备中的存储位置的第一地址,和用于指示目标数据在该处理器的内存中的存储位置的第二地址。例如,当该消息为写请求消息时,该目标数据为该处理器待写入的数据。该第一地址为该目标数据写入该虚拟硬件设备的起始地址;该第二地址为该目标数据存储在该存储器的内存中的起始地址。又例如,当该消息为读请求消息时,该目标数据为该处理器待读取的数据。该第一地址为该目标数据存储在该虚拟硬件设备中的起始地址;该第二地址为该目标数据写入该处理器的内存中的起始地址。
另外,由于分配给通信设备的虚拟硬件设备为为该通信设备提供硬件资源的总和(至少一个硬件设备中每个硬件设备分别提供给该通信设备的硬件资源的总和),因此,第一地址(即该虚拟硬件设备的存储地址)的取值范围为:0—(该至少一个硬件设备中每个硬件设备分别提供的给该通信设备的硬件资源的总和-1)。
例如,通信系统中的资源管理设备为通信设备1分配硬件资源时,将硬件资源池中位于通信设备2中的硬件设备A中的2TB硬件资源,以及位于通信设备3中的硬件设备B中的6TB硬件资源分配给该通信设备1。通信设备1发送的请求消息中包含的虚拟硬件设备的存储地址的取值范围应该为0TB—(8TB-1)。
可选地,在过程二中传输的消息中可以包含:用于指示该硬件设备的的第三地址,和用于指示目标数据在该硬件设备中的存储位置的第四地址。该第三地址可以使该处理器所在的通信设备中的访问组件可以准确的将消息发送给该硬件设备。可选地,该第三地址中包含该硬件设备的指示信息。该第四地址可以使该硬件设备接收到该消息后,完成相应的操作。例如,当该消息为写请求消息时,该第四地址为目标数据写入该硬件设备的起始地址。又例如,当该消息为读请求消息时,该第四地址为目标数据存储在该硬件设备中的起始地址。需要说明的是,该第四地址(即该硬件设备的存储地址)的取值范围为:0—(该硬件设备的提供的硬件资源-1)。
通过以上描述可知,通信系统中的资源管理设备将所有通信设备中的SSD整合为SSD资源池,然后将SSD资源池中通信设备A中的SSD A_1、通信设备B中的SSD B_1,以及通信设备C中的SSD C_1中的全部硬件资源作为虚拟SSD分配给通信设备A,并将通信设备A的资源配置信息发送给通信设备A中的访问组件A。处理器A通过RC访问访问组件A的配置空间,识别该虚拟SSD的设备类型,提供的硬件资源大小等信息。
图6为本申请提供的一种资源池系统中消息传输方法的流程示意图,如图所示,该方法的操作步骤包括:
S201:通信设备A中的处理器A在需要虚拟SSD执行一操作(读操作或写操作)时,向访问组件A传输该操作对应的请求消息;访问组件A获取处理器A传输的请求消息。
该请求消息中包含第一地址和第二地址。其中,第一地址用于指示目标数据在虚拟SSD中的存储位置,换句话说,第一地址为虚拟SSD的存储地址。第二地址用于指示目标数据在处理器A的内存中的存储位置,换句话说,第二地址为处理器A的内存的存储地址。
在执行S201时,处理器A可以通过与访问组件A之间的外设接口,并按照该外设接口对应的传输方式,向访问组件A传输请求消息。请求消息的传输方式可以但不限于以下两种方式:
方式一:处理器A向访问组件A发送请求消息。
方式二:在处理器A和访问组件A之间采用PCIe接口的情况下,通过以下步骤传输请求消息:
处理器A将请求消息存储在处理器A的内存中,具体可以利用队列存储请求消息(为了便于区分,该队列后续可以称为第一命令队列);然后处理器A通知访问组件A读取请求消息;
访问组件A从处理器A获取读取请求消息的通知后,从第一命令队列中读取请求消息。
其中,通信设备A中的PCIe接口结合非易失性存储规范(non-volatile memoryexpress,NVMe)时,第一命令队列可以为存储在处理器A的内存中的提交队列(SubmissionQueue,SQ)。
可选地,在上述方式二中,处理器A可以通过以下步骤通知访问组件A读取请求消息:处理器A在将请求消息存储在第一命令队列后,更新第一命令队列的写指针位置,并将更新后的第一命令队列的写指针位置发送给访问组件A。
这样,访问组件A从处理器A接收更新后的第一命令队列的写指针位置后,可以根据更新后的第一命令队列的写指针位置,从第一命令队列中读取请求消息。
需要说明的是,在命令队列是按照消息的先后顺序存储的,且存储有消息的相邻两个位置之间不存在空闲位置。命令队列的写指针位置为该命令队列中首个空闲位置,因此,访问组件A可以通过该命令队列的写指针位置是否变化,确定该命令队列中是否存入新的消息,且还可以根据更新后的该命令队列的写指针位置,确定新存入的消息的在该命令队列中的位置,从而准确地读取到新存入该命令队列的消息。
S202:访问组件A确定第一地址指示的存储位置属于其他通信设备的目标SSD(例如,通信设备B中的SSD B_1),即当前满足场景二。
可选地,访问组件A可以通过以下方法,确定目标SSD:
访问组件A根据存储的资源配置信息和第一地址,确定请求消息的传输对象为通信设备B中的SSD B_1,资源配置信息包含至少一个SSD中每个SSD对应的存储地址范围。在本实施例中,该资源配置信息包含:组成该虚拟SSD的3个SSD中每个SSD对应的存储地址范围。其中,资源配置信息,为通信系统中的资源管理设备在为通信设备分配硬件资源时生成,并发送给该通信设备的访问组件。通信设备的资源配置信息用于表示该通信设备(的虚拟硬件设备)的硬件资源的配置情况。由于分配给该通信设备的硬件资源是由分配给其的至少一个硬件设备提供的,因此,该资源配置信息包含:该至少一个硬件设备中每个硬件设备在该虚拟硬件设备内的存储地址范围。
访问组件A在执行S202时,首先确定第一地址所在的存储地址范围,然后确定该存储地址范围所对应的SSD即为请求消息的传输对象。
例如,虚拟SSD的总存储地址范围为0TB—12TB-1,且3个SSD按照SSD A_1、SSD B_1、SSD C_1的先后顺序,为通信设备A提供硬件资源。资源配置信息如下表1所示:
表1
SSD的描述信息 | 存储地址范围 |
SSD A_1 | 0TB—4TB-1 |
SSD B_1 | 4TB—8TB-1 |
SSD C_1 | 8TB—12TB-1 |
当第一地址为5TB时,访问组件A可以确定第一地址所在的存储地址范围为4TB—8TB-1,然后访问组件A可以将存储地址范围4TB—8TB-1所对应的SSD B_1作为请求消息的传输对象。
可选地,资源配置信息中还包含组成该虚拟SSD的3个SSD中每个SSD的描述信息,例如SSD的标识、SSD所在的设备的标识、SSD的编号、SSD连接的单板的标识等。
访问组件A可以通过SSD B_1的描述信息,确定SSD B_1位于通信设备B中,这样访问组件A后续就可以将请求消息准确地发送给通信设备B中的访问组件B。
另外,访问组件A还可以根据通过SSD B_1的描述信息,生成SSD B_1的指示信息,以便后续可以添加到请求消息中。这样在通信设备B中存在多个SSD的情况下,通信设备B可以根据收到的请求消息中的SSD B_1的指示信息,将请求消息准确地传输给SSD B_1。
通过以上描述可知,SSD B_1的指示信息,用于通信设备B能够准确地确定SSD B_1。因此,SSD B_1的指示信息可以但不限于包括以下至少一项:SSD B_1的标识、SSD B_1连接的单板的标识。
S203:访问组件A根据第一映射表,将请求消息中的第二地址转换为第三地址,第三地址用于指示SSD B_1,第一映射表用于记录第二地址与第三地址之间的映射关系。
其中,第一映射表可以是访问组件A中预先存储的,或者是访问组件A在执行S203之前生成的。具体的,访问组件A可以通过以下步骤,生成第一映射表:
访问组件A确定SSD B_1的指示信息;
访问组件A将SSD B_1的指示信息添加至第二地址中,得到第三地址;
访问组件A根据第二地址和第三地址生成第一映射表。
目前,各种消息中为存储地址预留的地址字段为第一比特(bit),而一般情况下,存储地址实际所需的第二比特小于第一比特。为了避免在请求消息中添加SSD B_1的指示信息,会导致增加请求消息占用的比特长度,从而增加了传输请求消息的传输开销,且为了提高地址字段的比特资源利用率,本申请实施例提供了上述方式生成第三地址:
访问组件A将SSD B_1的指示信息,添加到第二地址所在的地址字段中的空闲的位域中,从而得到第三地址。
例如,请求消息中为存储地址预留的地址字段为64bit,而第二地址实际只占用48bit,那么地址字段中还有16bit的位域空闲。访问组件A可以占用该16bit中的全部或部分位域,放置SSD B_1的指示信息。
此外,在功能虚拟化场景中,处理器A的功能通过虚拟化可以划分多个功能包括:至少一个物理功能(physical function,PF)和至少一个虚拟功能(virtual function,VF)。请求消息可以为处理器A在使用某个功能时发送的。为了标识该处理器A发送该请求消息时使用的功能,请求消息中还可以包含该功能(虚拟功能或物理功能)的标识。同样的,为了避免增加请求消息占用的比特长度,也为了提高存储地址的地址字段的比特资源利用率,在本申请实施例中,访问组件A在得到第三地址时,还可以将功能的标识添加到第二地址所在的地址字段中的空闲的位域中,从而得到既包含SSD B_1的指示信息、又包含功能的标识的第三地址。
可选地,继续以地址字段中还有16bit的位域空闲为例进行说明,在访问组件A占用该16bit中的部分位域放置SSD B_1的指示信息的情况下,访问组件A也可以占用该16bit中剩下的部分或全部位域,放置功能的标识。
在一个示例中,访问组件A在请求消息中添加SSD B_1的指示信息和处理器A使用的功能的标识。在该情况下,在64bit的地址字段中各项信息所占的位域如表2所示,地址字段中所有信息构成第三地址。
表2
[63:60] | [59:56] | [55:48] | [47:0] |
SSD B_1连接的单板的标识 | SSD B_1的标识 | (物理或虚拟)功能的标识 | 第二地址 |
S204:访问组件A根据第一地址,确定第四地址。其中,第四地址用于指示目标数据在SSD B_1中的存储位置。第四地址又可以称为SSD B_1的存储地址。
若虚拟SSD由1个SSD(SSD B_1)组成时,虚拟SSD提供的硬件资源大小与该SSD B_1的提供的硬件资源大小相同,因此,第四地址与该第一地址相同。
但是由于在本申请实施例中,虚拟SSD由3个SSD组成,那么虚拟SSD提供的硬件资源大小与每个SSD提供的硬件资源大小不同。因此,SSD B_1有可能无法识别请求消息中的虚拟硬件设备的存储地址。例如,SSD B_1能够提供4TB的硬件资源,那么该SSD可以识别取值为0TB—4TB-1的存储地址,通过表1可知,当访问组件A确定请求消息的操作对象为SSDB_1时,请求消息中虚拟SSD的存储地址范围为4TB—8TB-1。显然,SSD B_1在获取到请求消息,可能会因为无法识别请求消息中的虚拟SSD的存储地址,导致SSD B_1无法成功执行请求消息对应的操作。
为了使SSD B_1能够成功执行请求消息对应的操作,访问组件A还需要根据请求消息中的第一地址,确定第四地址:
访问组件A根据第二映射表,将第一地址转换为第四地址,第二映射表用于描述:指示虚拟SSD的存储位置的地址与指示SSD B_1的存储位置的地址之间的映射关系。
其中,第二映射表可以是预先存储的,也可以是访问组件A在生成第四地址时生成的。需要说明的是,第二映射表是根据该资源配置信息中规定的每个SSD为通信设备A提供的硬件资源大小,以及每个SSD为通信设备A提供硬件资源的先后顺序生成的。第二映射表可以指示以下映射关系:
第四地址=第一地址-在目标SSD前为通信设备A提供硬件资源的SSD提供的硬件资源大小之和。
还需要说明的是,若目标SSD为首个SSD提供硬件资源的SSD时,通过上述映射关系可知,第四地址与第一地址相同。
例如,继续以表1为例,当第一地址为5TB时,访问组件A可以以下第二映射表:第四地址=第一地址-4TB(SSD A_1提供的硬件资源大小),从而得到第四地址为1TB。
应当理解的是,当目标SSD提供为通信设备A提供的自身的部分硬件资源时,该资源配置信息中还包含该目标SSD对应的偏移位置,那么第二映射表指示的映射关系为:第四地址=第一地址-在目标SSD前为通信设备A提供硬件资源的SSD提供的硬件资源大小之和+目标SSD对应的偏移位置。
S205:访问组件A向通信设备B的访问组件B发送第一报文,第一报文中包含第三地址和第四地址,以使访问组件B根据第三地址和第四地址执行操作指令对应的操作(读取或写入目标数据)。访问组件B接收访问组件A发送的第一报文。
在通信系统中,由于不同通信设备的访问组件之间采用约定的通信协议进行通信,因此,访问组件A向访问组件B发送包含第三地址和第四地址的请求消息时,需要按照通信协议,将请求消息进行封装为第一报文。当访问组件B接收到第一报文后,也需要按照通信协议,对第一报文进行解封装,从而得到请求消息。
在一个实现方式中,当访问组件A和访问组件B之间通过以太网协议进行通信时,访问组件A在发送请求消息之前,需要对请求消息添加以太网帧头,将请求消息封装为以太网报文,其中,以太网帧头的格式如表3所示:
表3
目的MAC地址 | 源MAC地址 | 帧类型 | 预留字段 |
其中,目的MAC地址为通信设备B的MAC地址,源MAC地址为通信设备A的MAC地址。
S206:访问组件B确定第三地址指示的SSD B_1。
由于第三地址中包含SSD B_1的指示信息,因此,访问组件B可以根据第三地址中的SSD B_1的指示信息,确定SSD B_1。
还需要说明的是,访问组件B确定SSD B_1后,可以生成包含通信设备A的标识、SSDB_1的标识,和第三地址的对应关系。这样,当访问组件在获取到SSD B_1传输的数据执行消息或响应消息后,可以SSD B_1的标识,和数据执行消息或响应消息中的第三地址,确定这些消息的传输对象为通信设备A。
其中,通信设备A的标识可以为通信设备A的MAC地址等唯一标识该通信设备A的信息。
S207:访问组件B向SSD B_1传输请求消息,以使SSD B_1根据第三地址和第四地址读取或写入目标数据。SSD B_1获取访问组件B传输的请求消息。
由于通信系统中的每个通信设备内的访问组件和SSD之间通过外设接口连接。因此访问组件在执行S207时,可以通过该外设接口,并按照该外设接口对应的传输方式,向SSD B_1传输请求消息。其中,请求消息的传输方式可以但不限于以下方式:
方式一:访问组件B向SSD B_1发送请求消息。
方式二:在访问组件B和SSD B_1之间采用PCIe接口的情况下,通过以下步骤传输请求消息:
访问组件B将请求消息存储在访问组件B的内存中,具体可以利用队列存储请求消息(为了便于区分,该队列后续可以称为第二命令队列)中,并通知SSD B_1读取操作指令;
SSD B_1从访问组件B获取读取请求消息的通知后,从第二命令队列中读取操作指令。
其中,通信设备B中的PCIe接口结合NVMe时,第二命令队列可以为存储在访问组件B的内存中的SQ。
在上述方式二中,访问组件B可以通过以下步骤通知SSD B_1读取操作指令:访问组件B从在将请求消息存储在第二命令队列后,更新第二命令队列的写指针位置,并将更新后的第二命令队列的写指针位置发送给SSD B_1。
SSD B_1从访问组件B接收更新后的第二命令队列的写指针位置后,可以根据更新后的第二命令队列的写指针位置,从第二命令队列中读取操作指令。
在S207之后,SSD B_1获取到请求消息,然后SSD B_1执行请求消息对应的操作。由于请求消息可以为读请求消息或者写请求消息,根据请求消息的种类,SSD B_1执行的操作也不同。
当请求消息为写请求消息时,通信设备A和通信设备B通过S208a-S215a实现写操作;当请求消息为写请求消息时,通过设备A和通信设备B通过S208b-S215b实现读操作。
其中,S208a-S215a中的数据读取请求、数据读取响应为实现写操作中产生的数据执行消息;S208b-S215b中的数据存储请求、数据存储响应为实现读操作中产生的数据执行消息。
S208a:SSD B_1向访问组件B发送数据读取请求,用于请求读取存储在处理器内存中的目标数据。其中,数据读取请求中包含第三地址和第四地址。
S209a:访问组件B根据通信设备A的标识、SSD B_1的标识,和第三地址的对应关系,确定数据读取请求的传输对象为通信设备A;访问组件B向访问组件A发送第二报文。
其中,第二报文是访问组件B按照通信协议对数据读取请求封装得到的,第二报文中也包含第三地址和第四地址。
访问组件A接收访问组件B发送的第二报文后,将第二报文进行解封装,得到数据读取请求。
S210a:访问组件A对数据读取请求进行地址转换:根据第一映射表,将数据读取请求中的第三地址转换为第二地址,以及根据第四地址确定第一地址。
然后,访问组件A通过步骤S211a和S212a,读取存储在第二地址指示的存储位置中的目标数据。
S211a:访问组件A将数据存储请求发送给处理器A。这样,处理器A可以根据第二地址,读取目标数据。
S212a:处理器A向访问组件A发送数据读取响应,其中,数据读取响应中包含目标数据、第一地址和第二地址。
S213a:访问组件A对数据读取响应进行地址转换:根据第一映射表,将数据读取请求中的第二地址转换为第三地址,以及根据第一地址确定第四地址。具体描述可以参见S203-S204中的描述,此处不再赘述。
S214a:访问组件A向访问组件B发送第三报文。第三报文是访问组件A按照通信协议对数据读取响应封装得到的,第三报文中包含目标数据、第三地址和第四地址。
访问组件B接收第三报文后,确定第三地址指示的SSD B_1,并通过S215a,将目标数据存储到SSD B_1中的第四地址指示的存储位置。
S215a:访问组件B向SSD B_1发送数据读取响应。
SSD B_1在收到数据读取响应后,将数据读取响应中的目标数据存储到第四地址指示的存储位置中。
通过上述S208a-S215a,SSD B_1可以将待写入的目标数据,准确地写入SSD B_1中。
S208b:SSD B_1向访问组件B发送数据存储请求,用于请求将目标数据存储到处理器内存中。其中,数据存储请求中包含目标数据、第三地址和第四地址。
SSD B_1在收到读请求消息后,从第四地址指示的存储位置中读取目标数据。
S209b:访问组件B根据通信设备A的标识、SSD B_1的标识,和第三地址的对应关系,确定数据存储请求的传输对象为通信设备A;访问组件B向访问组件A发送第四报文。
其中,第四报文是访问组件B按照通信协议对数据读取请求封装得到的,第四报文中也包含目标数据、第三地址和第四地址。
访问组件A接收访问组件B发送的第四报文后,将第四报文进行解封装,得到数据存储请求。
S210b:访问组件A对数据存储请求进行地址转换:根据第一映射表,将数据存储请求中的第三地址转换为第二地址,以及根据第四地址确定第一地址。
然后,访问组件A通过步骤S211b,将目标数据存储到第二地址指示的存储位置中。
S211b:访问组件A将数据存储请求发送给处理器A。这样,处理器A可以将目标数据存储到第二地址指示的存储位置。
S212b:处理器A向访问组件A发送数据存储响应,其中,数据存储响应用于通知目标数据成功存储到处理器A的内存中。数据存储响应中包含第一地址和第二地址。
S213b:访问组件A对数据存储响应进行地址转换:根据第一映射表,将数据读取请求中的第二地址转换为第三地址,以及根据第一地址确定第四地址。具体描述可以参见S203-S204中的描述,此处不再赘述。
S214b:访问组件A向访问组件B发送第五报文。第五报文是访问组件A按照通信协议对数据存储响应封装得到的,第五报文中包含第三地址和第四地址。
访问组件B接收第五报文后,确定第三地址指示的SSD B_1。
S215b:访问组件B向SSD B_1发送数据存储响应。
SSD B_1在收到数据存储响应后,可以确定目标数据成功存储到处理器A的内存中。
通过上述S208a-S215a,SSD B_1可以将待读取的目标数据,准确地存储到处理器A的内存中。
需要说明的是,在S208b-S215b和S208a-S215a中,在处理器A与访问组件A之间,和在访问组件B与SSD之间传输数据执行消息时,可以采用直接发送的方式,而不需要通过队列存储的方式传输。
当SSD B_1通过上述步骤执行写操作或读操作之后,还可以通过以下步骤S216-S219向通信设备A中的处理器A发送响应消息,通知处理器A读操作或写操作完成。
S216:SSD B_1向访问组件B传输响应消息,用于通知处理器A成功读取或写入目标数据。其中,响应消息中包含第三地址和第四地址。
其中,当请求消息为写请求消息时,响应消息为写响应消息;当请求消息为读请求消息时,响应消息为读响应消息。
需要注意的是,SSD B_1也需要按照外设接口对应的传输方式,向访问组件B传输响应消息。响应消息的传输方式可以但不限于以下两种方式:
方式一:SSD B_1向访问组件B发送响应消息。
方式二:在SSD B_1和访问组件B之间采用PCIe接口的情况下,SSD B_1可以通过以下步骤传输响应消息:
SSD B_1将响应消息存储在访问组件B的内存中,具体可以利用队列存储(为了便于区分,后续可以称为第一响应队列)中,并通知访问组件B读取响应消息。
其中,当通信设备B中的PCIe接口结合NVMe时,第一响应队列可以为存储在访问组件B的内存中的完成队列(completion queue,CQ)。
可选地,在上述方式二中,SSD B_1可以通过以下步骤通知访问组件B读取响应消息:SSD B_1在将响应消息存储在第一响应队列中后,向访问组件B发起中断(例如MSI-X中断)。
访问组件B可以根据该中断,从第一响应队列中读取响应消息。
S217:访问组件B根据通信设备A的标识、SSD B_1的标识,和第三地址的对应关系,确定响应消息的传输对象为通信设备A;访问组件B向访问组件A发送第六报文。
其中,第六报文是访问组件B按照通信协议对响应消息封装得到的,第六报文中也包含第三地址和第四地址。
访问组件A接收访问组件B发送的第六报文后,将第六报文进行解封装,得到响应消息。
S218:访问组件A对响应消息进行地址转换:根据第一映射表,将数据存储请求中的第三地址转换为第二地址,以及根据第四地址确定第一地址。转换后,响应消息中包含第一地址和第二地址。
S219:访问组件A将响应消息传输给处理器A。这样,处理器A可以根据响应消息,确定成功读取或写入目标数据,SSD B_1成功完成请求消息对应的操作。
与S216类似的,访问组件A也需要按照外设接口对应的传输方式,向处理器A传输响应消息。响应消息的传输方式可以但不限于以下两种方式:
方式一:访问组件A向处理器A发送响应消息。
方式二:在访问组件A和处理器A之间采用PCIe接口的情况下,访问组件A可以通过以下步骤传输响应消息:
访问组件A将响应消息存储在处理器A的内存中,具体可以利用队列存储(为了便于区分,后续可以称为第二响应队列)中,并通知处理器A读取响应消息。
其中,当通信设备A中的PCIe接口结合NVMe时,第二响应队列可以为存储在处理器A的内存中的CQ。
可选地,在上述方式二中,访问组件A可以通过以下步骤通知处理器A读取响应消息:访问组件A在将响应消息存储在第二响应队列中后,向处理器A发起中断(例如MSI-X中断)。
处理器A可以根据该中断,从第二响应队列中读取响应消息。
采用本申请实施例提供的消息传输方法,通信系统中的通信设备A中的访问组件A在确定需要向通信设备B中的SSD B_1传输消息时,可以将消息中的虚拟SSD的存储地址转换为该SSD B_1的存储地址,并将消息中的处理器的内存的存储地址转换为指示该SSD B_1的存储地址。这样,当通信设备B中的访问组件B在收到该消息后,就可以根据指示的该SSDB_1的存储地址,确定该消息的向该SSD B_1传输,从而使该SSD B_1根据该SSD B_1是存储地址、指示该SSD B_1的存储地址,完成读取或写入目标数据的操作。由于访问组件B可以不通过通信设备B中的处理器B,即可完成处理器A对SSD B_1的访问,因此,该方案可以节省通信设备B中处理器B的计算资源,也可以降低通信设备A对位于其他通信设备的SSD的访问延迟。
还需要说明的是,若所述访问组件A确定请求消息的传输对象为通信设备A本地的SSD(例如SSD A_1),即当前满足上述场景一,则所述通信设备A可以按照图7所示的消息传输方法的流程,进行消息传输。相对于图6所示的消息传输方法的流程而言,不同的是:在该流程中无需在访问组件A和访问组件B之间传输各个报文的步骤;原由访问组件B执行的步骤现由访问组件A执行;目标SSD由SSD B_1改为SSD A_1。因此,该流程中的各步骤的描述可以参见图6所示的实施例中相应步骤的描述,此处不再赘述。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
上文中结合图1至图7,详细描述了根据本申请实施例所提供的资源池的管理方法,下面将结合图8和图11,描述根据本申请实施例所提供的资源池管理的装置、资源池控制单元和服务器。
图8是本申请提供的一种资源池管理的装置400的结构示意图,如图所示,装置400包括接收单元401、划分单元402和发送单元403,其中,
所述接收单元401,用于接收任意一个通信设备中应用程序的资源申请请求,所述资源申请请求中包括所需资源的类型和资源量;所述管理装置为部署资源池控制单元的多个通信设备中任意一个通信设备中部署的资源池控制单元;所述类型用于指示所述应用程序所需硬件资源的类型,所述资源量用于指示所述应用程序所需硬件资源的大小;
所述划分单元402,用于根据接收单元401接收的所述资源申请请求,按照预置规则从资源池中划分第一资源,所述第一资源由一个或多个逻辑硬件设备组成;所述资源池由所述多个通信设备中空闲的硬件设备组成,所述资源池中包括一个或多个逻辑设备,每个逻辑设备由一个或多个硬件设备组成;
所述发送单元403,用于向所述第二资源池控制单元发送资源配置请求,以便于所述第二资源池控制单元根据所述划分单元402划分的第一资源生成的所述资源配置请求完成所述第一资源的配置,为所述应用程序提供硬件资源,所述第二资源池控制单元为所述应用程序所在通信设备中部署的资源池控制单元。
应理解的是,本申请实施例的装置400可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3所示的资源池管理方法时,管理装置400及其各个模块也可以为软件模块。
上述装置可以根据业务需求在系统的全部或部分通信设备中均部署一个资源池控制单元,再在多个资源池控制单元中选择一个资源控制单元管理资源池,当接收到应用程序的请求时,当前时刻负责管理资源池的资源池控制单元可以划分由一个或多个逻辑硬件设备组成的第一资源,分配给应用程序使用。任意时刻由部署资源池控制单元中一个资源池控制单元负责管理资源池,当当前时刻管理资源池的资源池控制单元故障时,可以由其他资源池控制单元继续承担资源池的管理工作,避免影响系统业务。另一方面,资源池控制单元的个数可以灵活配置,只要通信设备中添加资源池控制单元即可参与资源池的管理,布局方式更灵活,具体实施时,可以根据业务需求设置资源池控制单元的数量,相比于传统技术中需要利用单独的通信设备部署管理节点的方式,成本也更低。
可选地,所述装置400是按照以下规则中任意一种规则确定:
方式一:按照资源池控制单元的标识确定的任意一个资源池控制单元;
方式二:所述多个资源池控制单元中负载最轻的一个资源池控制单元;
方式三:所述系统中首个启动的资源池控制单元。
上述装置400可以在部署资源池控制单元的多个通信设备中任意选择一个资源池控制单元管理资源池,去除传统技术中资源池管理中因依赖管理节点而产生的中心化问题。而且,资源池控制单元的部署数量可以依据业务需求设置,配置更灵活。
可选地,所述装置400还包括收集单元404和创建单元405;
所述收集单元404,用于收集所述第一资源池控制单元所在通信设备中可用于组建所述资源池的第一硬件信息,所述第一硬件信息包括硬件设备的类型、资源量和位置;
所述接收单元401,还用于接收所述多个通信设备中除所述第一资源池控制单元之外的通信设备中每个通信设备的资源池控制单元发送的可用于组建所述资源池的第二硬件信息,所述第二硬件信息包括硬件设备的类型、资源量和位置;
所述创建单元405,用于根据所述第一硬件信息和所述第二硬件信息创建所述资源池;以及在所述资源池中创建一个或多个逻辑硬件设备,每个逻辑硬件设备由一个或多个硬件设备组成。
上述装置400在管理资源池过程中,尤其在初始化阶段,需要利用各个通信设备中可用于组建资源池的硬件设备创建资源池,并将硬件设备划分为一个或多逻辑硬件设备,细化资源的管理粒度,提升资源使用的效率。
可选地,所述创建单元405,还用于根据硬件设备的类型创建一个或多个资源池;以及在同一资源池中按照硬件设备的资源量将一个或多个硬件设备组成多个分组。
可选地,所述创建单元405,还用于所述第一资源池控制单元将多个硬件设备作为一个逻辑硬件设备;或者,所述第一资源池控制单元将一个硬件设备划分为多个逻辑硬件设备;或者,所述第一资源池控制单元将一个硬件设备作为一个逻辑硬件设备。
由此精细化管理硬件设备,根据不同业务需求将不同逻辑设备分配给不同应用程序,满足不同资源需求,提升资源池中硬件设备的使用效率。
可选地,所述划分单元402,还用于优先按照与所述第二资源池控制单元所在通信设备距离最近的通信设备的硬件设备所组成的逻辑硬件设备划分第一资源;所述与所述第二资源池控制单元所在通信设备距离最近的通信设备,是指与所述第二资源池控制单元数据传输距离最短的通信设备。由此减少应用程序访问硬件资源的时延,缩短数据处理时长,提升数据处理效率。
可选地,所述划分单元402,还用于预先在所述资源池中建立所述第二资源池控制单元和其他资源池控制单元绑定关系;当所述应用程序需要申请资源时,优先从与所述第二资源池控制单元确定绑定关系的资源池控制单元所在通信设备的硬件设备所组成的逻辑硬件设备划分为所述第一资源。
具体实施例,为了满足特殊或重要应用程序的业务需求,也可以按照硬件配置或逻辑硬件设备的位置和处理能力,预先建立资源池控制单元的绑定关系,保证特殊或重要应用对硬件设备的要求,提升其处理能力。
根据本申请实施例的装置400可对应于执行本申请实施例中描述的方法,并且装置400中的各个单元的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。
图9为本申请实施例提供的一种通信设备500的示意图,如图所示,通信设备500包括资源池控制单元501、处理器502、可组建资源池的硬件设备503、通信接口504、内存单元505和总线506,资源池控制单元501、处理器502、可组建资源池的硬件设备503、通信接口504和内存单元505通过总线506互联。其中,内存单元505可以是随机存取存储器(RAM)。内存单元505可以物理上集成在处理器502中,也可以在独立单元或单元中构建。
资源池控制单元501中包括处理器5011、存储介质5012和总线5013,处理器5011和存储介质5012也通过总线5013相通信。可选地,资源池控制单元501还包括通信接口5014,用于通过总线506与通信设备500中其他部件进行通信。资源池控制单元501可以通过PCIe插槽接入通信设备500中,也可以通过焊接方式继承在通信设备的印刷电路板(printcircuit board,PCB)上,上述方式中,通信接口5014为PCIe接口。当资源池控制单元501运行时,资源池控制单元501处理器5011可以执行存储介质5012中存储的程序代码,以实现如图3所示的资源池管理方法。
可组建资源池的硬件设备503为通信设备中允许构建资源池的硬件设备,包括但不限于如图2所示的CPU、AI芯片、GPU、磁盘和网卡等。
可选地,处理器502或处理器5011分别包括一个或多个中央处理器(CPU)。如图5所示的处理器502包括CPU 0和CPU 1。处理器502或处理器5011均可以是单核(单CPU)处理器,也可以是多核(多CPU)处理器,除非另有说明,否则用于执行任务的处理器或存储器等部件可以实现为临时配置的用于在给定时间执行任务的通用组件或制造用于执行任务的特定组件,如本文所使用的术语“处理器”是指一个或多个设备或电路。处理器502或处理器5011还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
可选地,处理器502中运行如图2所示的应用程序,当该应用程序需要申请资源时,则通过当前时刻管理资源池的资源池控制单元进行资源申请,再资源池控制单元501完成第一资源的配置后,则可以为应用程序提供硬件资源。
通信接口504用于通信设备500与其他通信设备之间进行通信。另外,部署资源池控制单元之间通信,是指资源池控制单元501通过其通信接口5014将消息经总线506传递至通信接口504,再通过通信接口504传输至其他通信设备。与上述过程类似,通信设备500接收其他通信设备的过程也是需要通过通信接口504传输至资源池控制单元501。
内存单元505用于存储内核和其他程序代码,包括运行应用程序的程序代码。总线506和总线5013除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线506和总线5013。
应理解,根据本申请实施例的通信设备500可对应于本申请实施例中的管理装置400,并可以对应于执行根据本申请实施例的图3所示方法中的相应主体,并且通信设备500中的各个模块的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例中还提供一种资源池控制单元,其硬件架构如图9中资源池控制单元所示,用于实现上述图3所示方法中硬资源池控制单元所执行的方法的操作步骤,为了简洁,在此不再赘述。
上述技术方案中,根据业务需求在系统的全部或部分通信设备中均部署一个资源池控制单元,再在多个资源池控制单元中选择一个资源控制单元管理资源池,当接收到应用程序的请求时,当前时刻负责管理资源池的资源池控制单元可以划分由一个或多个逻辑硬件设备组成的第一资源,分配给应用程序使用。任意时刻由部署资源池控制单元中一个资源池控制单元负责管理资源池,当当前时刻管理资源池的资源池控制单元故障时,可以由其他资源池控制单元继续承担资源池的管理工作,避免影响系统业务。另一方面,资源池控制单元的个数可以灵活配置,只要通信设备中添加资源池控制单元即可参与资源池的管理,布局方式更灵活,具体实施时,可以根据业务需求设置资源池控制单元的数量,相比于传统技术中需要利用单独的通信设备部署管理节点的方式,成本也更低。
图10为本申请实施例提供的一种访问组件400的结构示意图。其中,访问组件400应用于通信设备中,用于实现图6或图7所示的消息传输方法,具有通信设备A中的访问组件A的功能,或通信设备B中的访问组件B的功能。如图所示,访问组件400包括:通信单元401和处理单元402。
在一个实现方式中,在访问组件400具有通信设备A中的访问组件A的功能的情况下:
通信单元401,用于获取通信设备A的处理器A传输的消息;其中,消息中包含第一地址和第二地址,第一地址用于指示目标数据在虚拟硬件设备中的存储位置,第二地址用于指示目标数据在处理器的内存中的存储位置,虚拟硬件设备由至少一个硬件设备组成;
处理单元402,用于当确定第一地址指示的存储位置属于通信设备B的目标硬件设备时,根据第一映射表,将消息中的第二地址转换为第三地址,第三地址用于指示目标硬件设备,第一映射表用于记录第二地址与目标硬件设备的指示信息之间的映射关系;和根据第一地址,确定第四地址,第四地址用于指示目标数据在目标硬件设备中的存储位置;
通信单元401,还用于:向通信设备B的访问组件B发送第一报文,第一报文中包含第三地址和第四地址,以使第二访问组件根据第三地址和第四地址读取或写入目标数据。
在一个实现方式中,在访问组件400具有通信设备B中的访问组件B的功能的情况下:
通信单元401,用于接收通信设备A中的访问组件A发送的第一报文;其中,第一报文中包含第三地址和第四地址,第三地址用于指示属于第二通信设备的目标硬件设备,第四地址用于指示目标数据在目标硬件设备的中的存储位置;
处理单元402,用于确定第三地址指示的目标硬件设备;
通信单元402,还用于向目标硬件设备传输包含第三地址和第四地址的第一消息,以使目标硬件设备根据第三地址和第四地址读取或写入目标数据。
可选地,访问组件400既具有上述访问组件A的功能,又具有上述访问组件B的功能。
可选地,通信单元401可以包含通信端口和通信接口。其中,通信端口用于实现访问组件400与访问组件400所在的通信设备内部其他部件的通信。通信接口用于实现访问组件400与其他通信设备的访问组件之间的通信。
应理解的是,本申请实施例访问组件400所在的通信设备可以对应图1、图2或图4任意所示的通信系统中的任一通信设备。本申请实施例的访问组件400可以通过专用集成电路实现,或可编程逻辑器件实现,上述PLD可以是复杂程序逻辑器件,现场可编程门阵列,通用阵列逻辑,或片上系统或其任意组合。另外,访问组件400也可以通过软件实现图6或图7所示的方法,此时,访问组件400及其各个单元也可以为软件模块。
根据本申请实施例的访问组件400可对应于执行本申请实施例中描述的方法,并且该访问组件400中的各个单元的上述和其它操作和/或功能分别为了实现图6或图7中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例提供了一种访问组件,在该访问组件所在的通信设备为应用设备时,该访问组件在确定需要向在向其他资源设备中的目标硬件设备传输消息时,可以将消息中的虚拟硬件设备的存储地址转换为该目标硬件设备的存储地址,并将消息中的处理器的内存的存储地址转换为指示该目标硬件设备的存储地址。这样,当在资源设备中的访问组件收到该消息后,就可以不通过该资源设备内的处理器进行操作,而是直接根据指示该目标硬件设备的存储地址,向该目标硬件设备传输该消息,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示的该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该访问组件可以节省资源设备中的处理器的计算资源,也可以降低应用设备对位于其他通信设备的硬件设备的访问延迟。
在该访问组件所在的通信设备为资源设备时,该访问组件在接收到其他访问组件传输的消息后,直接根据指示目标硬件设备的存储地址,确定该消息的向该目标硬件设备传输,从而使该目标硬件设备可以根据该目标硬件设备的存储地址、指示该硬件设备的存储地址,完成读取或写入目标数据的操作。显然,该访问组件可以节省资源设备中的处理器的计算资源,也可以降低应用设备对位于其他通信设备的硬件设备的访问延迟。
本申请还提供了一种通信设备,该通信设备可以对应图1、图2和图4任意系统架构中所示的通信系统中的任一通信设备,参阅图11所示,该通信设备500中包含:处理器501、访问组件502、至少一个硬件设备503,以及总线504。其中,处理器501、访问组件502,以及至少一个硬件设备503通过总线504连接。访问组件502用于实现图6或图7所示的消息传输方法,具有通信设备A中的访问组件A的功能,和/或,通信设备B中的访问组件B的功能。所述访问组件502中包含通信接口,用于实现与其他通信设备的通信。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (38)
1.一种资源池的管理方法,其特征在于,所述方法包括:
第一资源池控制单元接收资源池管理系统中任意一个通信设备中应用程序的资源申请请求,所述资源池管理系统包括多个部署所述资源池控制单元的通信设备,所述第一资源池控制单元为任意一个通信设备中部署的资源池控制单元,所述资源申请请求中包括所需资源的类型和资源量;所述第一资源池控制单元为部署资源池控制单元的多个通信设备中任意一个通信设备中部署的资源池控制单元;所述类型用于指示所述应用程序所需硬件资源的类型,所述资源量用于指示所述应用程序所需硬件资源的大小;
所述第一资源池控制单元按照预置规则,从资源池中将满足所述类型和所述资源量要求的逻辑硬件设备划分为第一资源,所述第一资源由一个或多个逻辑硬件设备组成;所述资源池中的逻辑硬件设备的资源由所述多个通信设备中空闲的硬件设备提供,每个逻辑设备对应一个或多个硬件设备;
所述第一资源池控制单元向第二资源池控制单元发送资源配置请求,指示所述第二资源池控制单元根据所述资源配置请求完成所述第一资源的配置,为所述应用程序提供所需资源,所述第二资源池控制单元为所述应用程序所在通信设备中部署的资源池控制单元。
2.根据权利要求1所述方法,其特征在于,所述第一资源池控制单元为按照以下规则中任意一种规则从所述多个通信设备部署的多个资源池控制单元中确定的一个资源池控制单元,包括:
所述第一资源池控制单元为按照资源池控制单元的标识确定的任意一个资源池控制单元;
所述第一资源池控制单元为所述多个资源池控制单元中负载最轻的一个资源池控制单元;
所述第一资源池控制单元为所述系统中首个启动的资源池控制单元。
3.根据权利要求1或2所述方法,其特征在于,在所述第一资源池控制单元接收任意一个通信设备中应用程序的资源申请请求之前,所述方法还包括:
所述第一资源池控制单元收集所述第一资源池控制单元所在通信设备中可用于组建所述资源池的第一硬件信息,所述第一硬件信息包括硬件设备的类型、资源量和位置;
所述第一资源池控制单元接收所述多个通信设备中除所述第一资源池控制单元所在通信设备之外的其他通信设备中每个通信设备部署的资源池控制单元发送的可用于组建所述资源池的第二硬件信息,所述第二硬件信息包括硬件设备的类型、资源量和位置;
所述第一资源池控制单元根据所述第一硬件信息和所述第二硬件信息创建所述资源池;
所述第一资源池控制单元在所述资源池中创建一个或多个逻辑硬件设备。
4.根据权利要求3所述方法,其特征在于,所述第一资源池控制单元根据所述第一硬件信息和所述第二硬件信息创建所述资源池,包括:
所述第一资源池控制单元根据硬件设备的类型创建一个或多个资源池;
所述第一资源池控制单元在同一资源池中按照硬件设备的资源量将一个或多个硬件设备组成多个分组。
5.根据权利要求3所述方法,其特征在于,所述第一资源池控制单元在所述资源池中创建一个或多个逻辑硬件设备,包括以下方式中任意一种或多种:
所述第一资源池控制单元将多个硬件设备在逻辑上划分为一个逻辑硬件设备;
所述第一资源池控制单元将一个硬件设备在逻辑上划分为多个逻辑硬件设备;
所述第一资源池控制单元将一个硬件设备在逻辑上划分为一个逻辑硬件设备。
6.根据权利要求1、2、4或5所述方法,其特征在于,所述第一资源池控制单元按照预置规则从资源池中划分第一资源,包括:
所述第一资源池控制单元优先将与所述第二资源池控制单元所在通信设备距离最近的通信设备的硬件设备的资源所组成的逻辑硬件设备划分第一资源;所述与所述第二资源池控制单元所在通信设备距离最近的通信设备,是指与所述第二资源池控制单元数据传输距离最短的通信设备。
7.根据权利要求1、2、4或5所述方法,其特征在于,所述第一资源池控制单元按照预置规则从资源池中划分第一资源,包括:
所述第一资源池控制单元预先在所述资源池中建立所述第二资源池控制单元和其他资源池控制单元绑定关系;
当所述应用程序需要申请资源时,所述第一资源池控制单元优先从与所述第二资源池控制单元确定绑定关系的资源池控制单元所在通信设备的硬件设备的资源所组成的逻辑硬件设备划分为所述第一资源。
8.一种资源池的管理装置,其特征在于,所述装置包括接收单元、划分单元和发送单元;
所述接收单元,用于接收任意一个通信设备中应用程序的资源申请请求,所述资源申请请求中包括所需资源的类型和资源量;所述管理装置为部署资源池控制单元的多个通信设备中任意一个通信设备中部署的资源池控制单元;所述类型用于指示所述应用程序所需硬件资源的类型,所述资源量用于指示所述应用程序所需硬件资源的大小;
所述划分单元,用于按照预置规则,从资源池中将满足所述类型和所述资源量要求的逻辑硬件设备划分为第一资源,所述第一资源由一个或多个逻辑硬件设备组成;所述资源池中的逻辑硬件设备的资源由所述多个通信设备中空闲的硬件设备提供,每个逻辑设备对应一个或多个硬件设备;
所述发送单元,用于向第二资源池控制单元发送资源配置请求,指示所述第二资源池控制单元根据所述资源配置请求完成所述第一资源的配置,为所述应用程序提供所需资源,所述第二资源池控制单元为所述应用程序所在通信设备中部署的资源池控制单元。
9.根据权利要求8所述的管理装置,其特征在于,所述管理装置为按照以下规则中任意一种规则从所述多个通信设备中部署的多个资源池控制单元中确定的一个资源池控制单元,包括:
所述管理装置为按照资源池控制单元的标识确定的任意一个资源池控制单元;
所述管理装置为所述多个资源池控制单元中负载最轻的一个资源池控制单元;
所述管理装置为系统中首个启动的资源池控制单元。
10.根据权利要求8或9所述的管理装置,其特征在于,所述管理装置还包括收集单元和创建单元;
所述收集单元,用于收集所述第一资源池控制单元所在通信设备中可用于组建所述资源池的第一硬件信息,所述第一硬件信息包括硬件设备的类型、资源量和位置;
所述接收单元,还用于接收所述多个通信设备中除所述第一资源池控制单元之外的通信设备中每个通信设备的资源池控制单元发送的可用于组建所述资源池的第二硬件信息,所述第二硬件信息包括硬件设备的类型、资源量和位置;
所述创建单元,用于根据所述第一硬件信息和所述第二硬件信息创建所述资源池;以及在所述资源池中创建一个或多个逻辑硬件设备。
11.根据权利要求10所述的管理装置,其特征在于,
所述创建单元,还用于根据硬件设备的类型创建一个或多个资源池;以及在同一资源池中按照硬件设备的资源量将一个或多个硬件设备组成多个分组。
12.根据权利要求8或9所述的管理装置,其特征在于,所述管理装置还包括创建单元;
所述创建单元,还用于所述第一资源池控制单元将多个硬件设备在逻辑上划分为一个逻辑硬件设备;或者,所述第一资源池控制单元将一个硬件设备在逻辑上划分为多个逻辑硬件设备;或者,所述第一资源池控制单元将一个硬件设备在逻辑上划分为一个逻辑硬件设备。
13.根据权利要求8、9或11所述的管理装置,其特征在于,
所述划分单元,还用于优先将与所述第二资源池控制单元所在通信设备距离最近的通信设备的硬件设备的资源所组成的逻辑硬件设备划分第一资源;所述与所述第二资源池控制单元所在通信设备距离最近的通信设备,是指与所述第二资源池控制单元数据传输距离最短的通信设备。
14.根据权利要求8、9或11所述的管理装置,其特征在于,
所述划分单元,还用于预先在所述资源池中建立所述第二资源池控制单元和其他资源池控制单元绑定关系;当所述应用程序需要申请资源时,优先从与所述第二资源池控制单元确定绑定关系的资源池控制单元所在通信设备的硬件设备的资源所组成的逻辑硬件设备划分为所述第一资源。
15.一种资源池控制单元,其特征在于,所述资源池控制单元包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述资源池控制单元运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述资源池控制单元中的硬件资源执行权利要求1至7中任一所述方法的操作步骤。
16.一种通信设备,其特征在于,所述通信设备包括资源池控制单元、可组建资源池的硬件设备和总线,所述资源池控制单元和可组建资源池的硬件设备之间通过总线连接并完成相互间的通信,所述资源池控制单元包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述通信设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述通信设备中的硬件资源执行权利要求1至7中任一所述方法的操作步骤。
17.一种消息传输方法,其特征在于,所述方法包括:
第一通信设备的第一访问组件获取所述第一通信设备的处理器传输的消息;其中,所述第一通信设备为通信系统中任意一个通信设备,所述通信系统中包括多个通信设备,每个通信设备包含处理器、访问组件和硬件设备,所述消息中包含第一地址和第二地址,所述第一地址用于指示目标数据在虚拟硬件设备中的存储位置,所述第二地址用于指示所述目标数据在所述第一通信设备的处理器的内存中的存储位置,所述虚拟硬件设备的资源由至少一个物理硬件设备提供;所述虚拟硬件设备为第一资源池控制单元从资源池中选择并配置给所述第一通信设备的资源,所述第一资源池控制单元为资源池管理系统中任意一个通信设备中部署的资源池控制单元,所述资源池管理系统包括多个部署所述资源池控制单元的通信设备;
当所述第一访问组件确定所述第一地址指示的存储位置属于第二通信设备时,将所述消息中的所述第二地址转换为第三地址,所述第三地址用于指示目标硬件设备的地址;
所述第一访问组件根据所述第一地址,确定第四地址,所述第四地址用于指示所述目标数据在所述目标硬件设备中的存储位置;
所述第一访问组件向所述第二通信设备的第二访问组件发送第一报文,所述第一报文中包含所述第三地址和所述第四地址,以使所述第二访问组件根据所述第三地址和所述第四地址读取或写入所述目标数据。
18.根据权利要求17所述的方法,其特征在于,所述第一访问组件确定所述第一地址指示的存储位置属于所述第二通信设备的所述目标硬件设备,包括:
所述第一访问组件根据存储的资源配置信息和所述第一地址,确定所述消息的传输对象为所述第二通信设备的所述目标硬件设备,所述资源配置信息包含所述至少一个硬件设备中每个硬件设备对应的存储地址范围。
19.根据权利要求17或18所述方法,其特征在于,所述第一通信设备的所述第一访问组件和所述第二通信设备的所述第二访问组件通过网络通信,所述第一报文为网络报文。
20.根据权利要求17或18所述方法,其特征在于,所述第一访问组件将所述第二地址转换为第三地址之前,还包括:
所述第一访问组件确定所述目标硬件设备的指示信息;
所述第一访问组件将所述目标硬件设备的指示信息添加至所述第二地址中,得到所述第三地址;
所述第一访问组件根据所述第二地址和所述第三地址生成第一映射表;
则所述第一访问组件将所述第二地址转换为第三地址,包括:
根据所述第一映射表将所述第二地址转换为所述第三地址。
21.根据权利要求17或18所述方法,其特征在于,所述目标硬件设备的指示信息包括:所述目标硬件设备的标识,和/或,所述第二通信设备中所述目标硬件设备所连接的单板的标识。
22.根据权利要求17或18所述方法,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
23.根据权利要求17或18所述方法,其特征在于,当所述至少一个硬件设备的数量为一个时,所述第四地址与所述第一地址相同;
当所述至少一个硬件设备的数量为多个时,所述第一访问组件根据所述第一地址,确定所述第四地址,包括:
所述第一访问组件根据第二映射表,将所述第一地址转换为所述第四地址,所述第二映射表用于描述:指示所述虚拟硬件设备的存储位置的存储地址与指示所述目标硬件设备的存储位置的存储地址之间的映射关系。
24.一种消息传输方法,用于通信系统中的第二通信设备向第三通信设备发送消息,其中,所述通信系统中的每个通信设备均包括处理器、访问组件和硬件设备,其特征在于,所述方法包括:
第二通信设备的第二访问组件接收第一通信设备中的第一访问组件发送的第一报文;所述第一报文中包含第三地址和第四地址,所述第三地址用于指示属于所述通信系统中第二通信设备的目标硬件设备,所述第四地址用于指示目标数据在目标硬件设备的中的存储位置;
所述第二访问组件确定所述第三地址指示的所述目标硬件设备;所述目标硬件设备为第一资源池控制单元从资源池中选择并配置给所述第一通信设备的资源,所述第一资源池控制单元为资源池管理系统中任意一个通信设备中部署的资源池控制单元,所述资源池管理系统包括多个部署所述资源池控制单元的通信设备;
所述第二访问组件向所述目标硬件设备传输包含第三地址和所述第四地址的第一消息,以使所述目标硬件设备根据所述第三地址和所述第四地址读取或写入所述目标数据。
25.根据权利要求24所述方法,其特征在于,所述第二通信设备的所述第二访问组件和所述第一通信设备的所述第一访问组件通过网络通信,所述第一报文为网络报文。
26.根据权利要求24或25所述方法,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
27.一种第一访问组件,其特征在于,所述第一访问组件应用于第一通信设备,所述第一通信设备为通信系统中任意一个通信设备,所述通信系统中包括多个通信设备,每个通信设备包含处理器、访问组件和硬件设备,所述第一访问组件包括:
通信单元,用于获取所述第一通信设备的处理器传输的消息;其中,所述消息中包含第一地址和第二地址,所述第一地址用于指示目标数据在虚拟硬件设备中的存储位置,所述第二地址用于指示所述目标数据在所述第一通信设备的处理器的内存中的存储位置,所述虚拟硬件设备的资源由至少一个硬件设备提供;所述虚拟硬件设备为第一资源池控制单元从资源池中选择并配置给所述第一通信设备的资源,所述第一资源池控制单元为资源池管理系统中任意一个通信设备中部署的资源池控制单元,所述资源池管理系统包括多个部署所述资源池控制单元的通信设备;
处理单元,用于当确定第一地址指示的存储位置属于第二通信设备的目标硬件设备时,将所述消息中的所述第二地址转换为第三地址,所述第三地址用于指示所述目标硬件设备的地址;和根据所述第一地址,确定第四地址,所述第四地址用于指示所述目标数据在所述目标硬件设备中的存储位置;
所述通信单元,还用于:向所述第二通信设备的第二访问组件发送第一报文,所述第一报文中包含所述第三地址和所述第四地址,以使所述第二访问组件根据所述第三地址和所述第四地址读取或写入所述目标数据。
28.根据权利要求27所述的第一访问组件,其特征在于,所述处理单元,在确定所述第一地址指示的存储位置属于所述第二通信设备的所述目标硬件设备时,具体用于:
根据存储的资源配置信息和所述第一地址确定所述消息的传输对象为所述第二通信设备的所述目标硬件设备,所述资源配置信息包含所述至少一个硬件设备中每个硬件设备对应的存储地址范围。
29.根据权利要求27或28所述第一访问组件,其特征在于,所述第一通信设备的所述第一访问组件和所述第二通信设备的所述第二访问组件通过网络通信,所述第一报文为网络报文。
30.根据权利要求27或28所述第一访问组件,其特征在于,所述处理单元,还用于:在将所述第二地址转换为第三地址之前,确定所述目标硬件设备的指示信息;
将所述目标硬件设备的指示信息添加至所述第二地址中,得到所述第三地址;
根据所述第二地址和所述第三地址生成第一映射表;
则所述处理单元将所述消息中的所述第二地址转换为第三地址,包括:
根据所述第一映射表将所述第二地址转换为第三地址。
31.根据权利要求27或28所述第一访问组件,其特征在于,所述目标硬件设备的指示信息包括:所述目标硬件设备的标识,和/或,所述第二通信设备中所述目标硬件设备所连接的单板的标识。
32.根据权利要求27或28所述第一访问组件,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
33.根据权利要求27或28所述第一访问组件,其特征在于,当所述至少一个硬件设备的数量为一个时,所述第四地址与所述第一地址相同;
当所述至少一个硬件设备的数量为多个时,所述处理单元,在根据所述第一地址,确定所述第四地址时,具体用于:
根据第二映射表,将所述第一地址转换为所述第四地址,所述第二映射表用于描述:指示所述虚拟硬件设备的存储位置的存储地址与指示所述目标硬件设备的存储位置的存储地址之间的映射关系。
34.一种第二访问组件,其特征在于,所述第二访问组件应用于第二通信设备,所述第二通信设备为通信系统中任意一个通信设备,所述通信系统中包括多个通信设备,每个通信设备包括处理器、访问组件和硬件设备,所述第二访问组件包括:
通信单元,用于接收第一通信设备中的第一访问组件发送的第一报文;其中,所述第一报文中包含第三地址和第四地址,所述第三地址用于指示属于所述第二通信设备的目标硬件设备,所述第四地址用于指示目标数据在目标硬件设备的中的存储位置;所述目标硬件设备为第一资源池控制单元从资源池中选择并配置给所述第一通信设备的资源,所述第一资源池控制单元为资源池管理系统中任意一个通信设备中部署的资源池控制单元,所述资源池管理系统包括多个部署所述资源池控制单元的通信设备;
处理单元,用于确定所述第三地址指示的所述目标硬件设备;
所述通信单元,还用于向所述目标硬件设备传输包含第三地址和所述第四地址的第一消息,以使所述目标硬件设备根据所述第三地址和所述第四地址读取或写入所述目标数据。
35.根据权利要求34所述第二访问组件,其特征在于,所述第二通信设备的所述第二访问组件和所述第一通信设备的所述第二访问组件通过网络通信,所述第一报文为网络报文。
36.根据权利要求34或35所述第二访问组件,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
37.一种通信设备,其特征在于,所述通信设备包括处理器、访问组件和硬件设备,其中,所述访问组件用于实现17至23中任一所述方法。
38.一种通信设备,其特征在于,所述通信设备包括处理器、访问组件和硬件设备,其中,所述访问组件用于实现24至26中任一所述方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810576339.4A CN108984465B (zh) | 2018-06-06 | 2018-06-06 | 一种消息传输方法及设备 |
CN2018105763394 | 2018-06-06 | ||
PCT/CN2019/088918 WO2019233322A1 (zh) | 2018-06-06 | 2019-05-29 | 资源池的管理方法、装置、资源池控制单元和通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110809760A CN110809760A (zh) | 2020-02-18 |
CN110809760B true CN110809760B (zh) | 2022-09-02 |
Family
ID=64540858
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810576339.4A Active CN108984465B (zh) | 2018-06-06 | 2018-06-06 | 一种消息传输方法及设备 |
CN201980000758.6A Active CN110809760B (zh) | 2018-06-06 | 2019-05-29 | 资源池的管理方法、装置、资源池控制单元和通信设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810576339.4A Active CN108984465B (zh) | 2018-06-06 | 2018-06-06 | 一种消息传输方法及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11507426B2 (zh) |
CN (2) | CN108984465B (zh) |
WO (1) | WO2019233322A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984465B (zh) | 2018-06-06 | 2021-08-20 | 华为技术有限公司 | 一种消息传输方法及设备 |
CN110022356B (zh) * | 2019-03-08 | 2021-11-30 | 北京三快在线科技有限公司 | 分布式系统和具有该分布式系统的无人驾驶设备 |
US11200193B2 (en) * | 2019-03-14 | 2021-12-14 | Marvell Asia Pte, Ltd. | Transferring data between solid state drives (SSDs) via a connection between the SSDs |
CN111464357A (zh) * | 2020-04-01 | 2020-07-28 | 武汉虹旭信息技术有限责任公司 | 资源配置方法及装置 |
CN111506432A (zh) * | 2020-04-30 | 2020-08-07 | 中科院计算所西部高等技术研究院 | 具有ooda多分区io资源池机制的服务器主机 |
CN112465371B (zh) * | 2020-12-07 | 2024-01-05 | 中国工商银行股份有限公司 | 一种资源数据分配方法、装置及设备 |
CN113010470B (zh) * | 2021-03-30 | 2023-06-20 | 上海西井信息科技有限公司 | 边缘节点远程控制系统、方法、设备及存储介质 |
EP4335212A1 (en) * | 2021-05-06 | 2024-03-13 | Nokia Technologies Oy | Apparatus, method, and computer program |
CN113485789B (zh) * | 2021-06-30 | 2023-03-21 | 海光信息技术股份有限公司 | 资源配置方法、装置及计算机架构 |
US20230229751A1 (en) * | 2022-01-18 | 2023-07-20 | Dell Products, L.P. | Method and Apparatus for Establishing Trusted PCIe Resource Sharing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651729A (zh) * | 2011-02-23 | 2012-08-29 | 中国移动通信集团公司 | 一种资源配置方法和装置 |
CN105511810A (zh) * | 2015-12-07 | 2016-04-20 | 中国建设银行股份有限公司 | 一种虚拟化资源池的控制方法和装置 |
CN105518611A (zh) * | 2014-12-27 | 2016-04-20 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和系统 |
CN105917688A (zh) * | 2014-01-21 | 2016-08-31 | 高通股份有限公司 | 用于无线电资源分配的设备到设备发现信令 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4899643B2 (ja) * | 2006-05-31 | 2012-03-21 | 富士通株式会社 | ネットワーク構成装置 |
US20100174841A1 (en) * | 2008-12-31 | 2010-07-08 | Zohar Bogin | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
CN104580338B (zh) * | 2013-10-29 | 2018-09-07 | 华为技术有限公司 | 一种业务处理方法、系统及设备 |
US9883513B2 (en) | 2014-03-19 | 2018-01-30 | Qualcomm Incorporated | Scheduling of device-to-device scheduling assignment for mode1 |
KR20150124298A (ko) * | 2014-04-28 | 2015-11-05 | 삼성전자주식회사 | 무선 통신 시스템에서 무선 자원 제어 연결을 관리하는 장치 및 방법 |
KR101977726B1 (ko) * | 2015-11-17 | 2019-05-14 | 한국전자통신연구원 | 가상 데스크탑 서비스 방법 및 장치 |
US10262390B1 (en) * | 2017-04-14 | 2019-04-16 | EMC IP Holding Company LLC | Managing access to a resource pool of graphics processing units under fine grain control |
CN108984465B (zh) | 2018-06-06 | 2021-08-20 | 华为技术有限公司 | 一种消息传输方法及设备 |
-
2018
- 2018-06-06 CN CN201810576339.4A patent/CN108984465B/zh active Active
-
2019
- 2019-05-29 CN CN201980000758.6A patent/CN110809760B/zh active Active
- 2019-05-29 WO PCT/CN2019/088918 patent/WO2019233322A1/zh active Application Filing
-
2020
- 2020-11-12 US US17/096,573 patent/US11507426B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651729A (zh) * | 2011-02-23 | 2012-08-29 | 中国移动通信集团公司 | 一种资源配置方法和装置 |
CN105917688A (zh) * | 2014-01-21 | 2016-08-31 | 高通股份有限公司 | 用于无线电资源分配的设备到设备发现信令 |
CN105518611A (zh) * | 2014-12-27 | 2016-04-20 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和系统 |
CN105511810A (zh) * | 2015-12-07 | 2016-04-20 | 中国建设银行股份有限公司 | 一种虚拟化资源池的控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210064438A1 (en) | 2021-03-04 |
US11507426B2 (en) | 2022-11-22 |
CN108984465B (zh) | 2021-08-20 |
CN110809760A (zh) | 2020-02-18 |
CN108984465A (zh) | 2018-12-11 |
WO2019233322A1 (zh) | 2019-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110809760B (zh) | 资源池的管理方法、装置、资源池控制单元和通信设备 | |
US20210232528A1 (en) | Configurable device interface | |
US11218364B2 (en) | Network-accessible computing service for micro virtual machines | |
US9792240B2 (en) | Method for dynamic configuration of a PCIE slot device for single or multi root ability | |
US7991839B2 (en) | Communication between host systems using a socket connection and shared memories | |
US11960430B2 (en) | Remote mapping method, apparatus and device for computing resources, and storage medium | |
US8271604B2 (en) | Initializing shared memories for sharing endpoints across a plurality of root complexes | |
US8458390B2 (en) | Methods and systems for handling inter-process and inter-module communications in servers and server clusters | |
US8103810B2 (en) | Native and non-native I/O virtualization in a single adapter | |
US20190042329A1 (en) | System with programmable multi-context accelerator circuitry | |
US9858102B2 (en) | Data path failover method for SR-IOV capable ethernet controller | |
US8918568B2 (en) | PCI express SR-IOV/MR-IOV virtual function clusters | |
CN103501242B (zh) | 资源管理方法和多节点集群设备 | |
US20080147937A1 (en) | System and method for hot-plug/remove of a new component in a running pcie fabric | |
US10404800B2 (en) | Caching network fabric for high performance computing | |
US11829309B2 (en) | Data forwarding chip and server | |
CN114510321A (zh) | 资源调度方法、相关装置和介质 | |
US11132215B2 (en) | Techniques to facilitate out of band management in a virtualization environment | |
US11138146B2 (en) | Hyperscale architecture | |
US20210311767A1 (en) | Storage system, storage device therefor, and operating method thereof | |
CN115934624B (zh) | 多主机远程直接内存访问网络管理的方法、设备及介质 | |
US11860783B2 (en) | Direct swap caching with noisy neighbor mitigation and dynamic address range assignment | |
WO2023198128A1 (zh) | 一种分布式资源共享方法及相关装置 | |
US20220321434A1 (en) | Method and apparatus to store and process telemetry data in a network device in a data center | |
CN117667827A (zh) | 任务处理方法及异构计算系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |