WO2019233322A1 - 资源池的管理方法、装置、资源池控制单元和通信设备 - Google Patents

资源池的管理方法、装置、资源池控制单元和通信设备 Download PDF

Info

Publication number
WO2019233322A1
WO2019233322A1 PCT/CN2019/088918 CN2019088918W WO2019233322A1 WO 2019233322 A1 WO2019233322 A1 WO 2019233322A1 CN 2019088918 W CN2019088918 W CN 2019088918W WO 2019233322 A1 WO2019233322 A1 WO 2019233322A1
Authority
WO
WIPO (PCT)
Prior art keywords
resource pool
address
control unit
hardware
resource
Prior art date
Application number
PCT/CN2019/088918
Other languages
English (en)
French (fr)
Inventor
周畅
殷换锋
罗新法
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201980000758.6A priority Critical patent/CN110809760B/zh
Publication of WO2019233322A1 publication Critical patent/WO2019233322A1/zh
Priority to US17/096,573 priority patent/US11507426B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2035Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3442Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Definitions

  • the present application relates to the field of computers, and in particular, to a method, an apparatus, a resource pool control unit, and a communication device for managing a resource pool in a data center.
  • the management node is usually deployed in a data center with a separate server.
  • the management node can identify hardware devices.
  • the management node will store storage devices (for example, disks), network devices (for example, network cards, switches), and computing devices (for example, central Processor (central processing unit, CPU) and other hardware resources constitute a resource pool, and the complete resources of one or more hardware devices are allocated to the application program.
  • storage devices for example, disks
  • network devices for example, network cards, switches
  • computing devices for example, central Processor (central processing unit, CPU) and other hardware resources constitute a resource pool, and the complete resources of one or more hardware devices are allocated to the application program.
  • the management node can divide and specify 2 CPUs (such as CPU1 and CPU2) in the resource pool to provide hardware resources for the application 1.
  • the above CPU1 and CPU2 only supply Use with program 1.
  • the application provides a method, an apparatus, a resource pool control unit, and a communication device for managing a resource pool, which can remove a management node in the resource pool, and provides a method for resource pool management that does not depend on the management node.
  • a method for managing a resource pool is provided.
  • the method is applied to a management system for a resource pool.
  • the system includes a plurality of communication devices, and a resource pool control unit is deployed in each communication device in some or all servers. Devices communicate through the resource pool control unit.
  • the first resource pool control node receives a resource application request from an application in any communication device, and the resource application request includes the type and amount of resources required, wherein the first resource pool control unit is responsible for managing the resource pool at the current moment.
  • the first resource pool control unit divides, from the resource pool, one or more logical hardware devices that meet the type and resource requirements into a first resource according to a preset rule; and the logical hardware devices in the resource pool
  • the resources are provided by idle hardware devices among multiple communication devices, and each logical device corresponds to one or more hardware devices.
  • the first resource pool control unit sends a resource configuration request to the second resource pool control unit deployed by the communication device where the application program is located, instructing the second resource pool control unit to complete the first resource according to the resource configuration request. Configuration to provide the required resources for the application.
  • a resource pool control unit is deployed in all or part of the communication equipment of the system according to business requirements, and then one resource control unit is selected from multiple resource pool control units to manage the resource pool.
  • the resource pool control unit responsible for managing the resource pool at the current moment may divide the first resource composed of one or more logical hardware devices and allocate it to the application program for use.
  • One resource pool control unit in the resource pool control unit is responsible for managing the resource pool at any time.
  • the resource pool control unit that manages the resource pool fails at the current time, other resource pool control units can continue to assume the management of the resource pool to avoid impact. System business.
  • the number of resource pool control units can be flexibly configured.
  • the resource pool control unit can participate in the management of the resource pool, and the layout is more flexible.
  • the resource pool control unit can be set according to business needs. Compared with the traditional technology, which requires a separate communication device to deploy the management node, the cost is also lower.
  • the first resource pool control unit is a resource pool control unit determined from a plurality of resource pool control units according to any one of the following rules, and includes:
  • the first resource pool control unit is any one of the resource pool control units determined according to the identifier of the resource pool control unit;
  • the first resource pool control unit is a resource pool control unit with the lightest load among the plurality of resource pool control units;
  • the first resource pool control unit is the first activated resource pool control unit in the system.
  • one resource pool control unit can be arbitrarily selected among multiple communication devices in which the resource pool control unit is deployed to manage the resource pool, and the centralization problem caused by the dependency on the management node in the resource pool management in the conventional technology is eliminated. Moreover, the number of resource pool control unit deployments can be set according to business needs, and the configuration is more flexible.
  • the first resource pool control unit is also responsible for collecting first hardware information in the communication device where the first resource pool control unit is located for use in forming the resource pool, and receiving The second hardware information sent by the resource pool control unit deployed by each communication device among the communication devices other than the communication device where the first resource pool control unit is located among the plurality of communication devices, which can be used to form the resource pool;
  • the first hardware information and the second hardware information respectively include a type, a resource amount, and a location of a hardware device in a communication device where the hardware device can be used to form a resource pool.
  • the first resource pool control unit creates the resource pool according to the first hardware information and the second hardware information.
  • One or more logical hardware devices are created in each resource pool, and the resources of each logical hardware device are provided by one or more hardware devices.
  • the first resource pool control unit needs to create a resource pool by using resources provided by the hardware devices in each communication device that can be used to form the resource pool, and use the above hardware devices.
  • the resources provided are divided into one or more logical hardware devices to refine the granularity of resource management and improve the efficiency of resource use.
  • the first resource pool control unit specifically creates one or more resource pools according to the type of the hardware device; then, in the same resource pool, one or more resource pools are allocated according to the amount of resources provided by the hardware device. Multiple hardware devices make up multiple groups.
  • the method for creating a logical device by the first resource pool control unit includes one or more of the following:
  • Method 1 logically divide multiple hardware devices into one logical hardware device
  • Method 2 logically divide a hardware device into multiple logical hardware devices
  • Method 3 a hardware device is logically divided into a logical hardware device.
  • the logical hardware composed of resources of a hardware device of a communication device closest to the communication device where the second resource pool control unit is located is preferentially used.
  • the device divides the first resource; the communication device closest to the communication device where the control unit of the second resource pool is located refers to the communication device with the shortest data transmission distance to the control unit of the second resource pool. This reduces the latency of applications accessing hardware resources, shortens the length of data processing, and improves data processing efficiency.
  • the first resource pool control unit may also establish a binding relationship between the second resource pool control unit and other resource pool control units in the same resource pool in advance. ;
  • the first resource pool control unit preferentially determines the communication device where the resource pool control unit with the second resource pool control unit determines the binding relationship.
  • a logical hardware device composed of hardware devices is divided into the first resource.
  • the binding relationship of resource pool control units can also be established in advance according to the hardware configuration or the location and processing capabilities of logical hardware devices to ensure that special or important applications affect hardware devices. Requirements to improve their processing capabilities.
  • the present application provides a device for managing a resource pool, where the device includes various modules for executing the resource pool management method in the first aspect or any possible implementation manner of the first aspect.
  • the present application provides a resource pool control unit.
  • the resource pool control unit includes a processor and a memory.
  • the memory is used to store computer execution instructions.
  • the processor executes the computer in the memory.
  • the instructions are executed to use the hardware resources in the resource pool control unit to perform the operation steps of the resource pool management method in the first aspect or any possible implementation manner of the first aspect.
  • the present application provides a communication device including the resource pool control unit described in the third aspect and any one of the possible implementation manners of the third aspect, a hardware device and a bus that can form a resource pool, and the resource.
  • the pool control unit and the hardware devices that can form a resource pool are connected through a bus and complete communication with each other.
  • the resource pool control unit includes a processor and a memory, where the memory is used to store computer execution instructions, and the communication device When running, the processor executes computer execution instructions in the memory to use the hardware resources in the communication device to perform the operation steps of the resource pool management method in the first aspect or any possible implementation manner of the first aspect. .
  • the present application provides a computer-readable storage medium having instructions stored in the computer-readable storage medium, which when executed on a computer, causes the computer to execute the methods described in the above aspects.
  • the present application provides a computer program product containing instructions that, when run on a computer, causes the computer to perform the methods described in the above aspects.
  • the present application also provides a message transmission method and device, which are used to save computing resources of a processor in a communication device where the hardware device is located when one communication device accesses a hardware device located in another communication device, and reduce Access delays for hardware devices in communication devices.
  • the present application provides a message transmission method, which is applicable to a communication system including multiple communication devices, where each communication device includes a processor, an access component, and at least one hardware device.
  • the first communication device involved in the method is any communication device of a communication system.
  • the virtual hardware device of the first communication device is composed of at least one hardware device. The method includes the following steps:
  • the first access component of the first communication device After the first access component of the first communication device obtains the message transmitted by the processor of the first communication device, it determines the transmission object of the message; when the first access component determines that the transmission object is the target hardware device in the second communication device , Converting the storage address of the processor's memory contained in the message to a storage address indicating the target hardware device, and converting the storage address of the virtual hardware device contained in the message into the storage address of the target hardware device; then, the first The access component sends the message to a second access component in the second communication device.
  • the second access component when the second access component receives the message, it can directly transmit the target hardware device according to the storage address of the target hardware device without operating through the processor in the second communication device. Message, so that the target hardware device can complete the operation of reading or writing the target data according to the storage address of the target hardware device and the indicated storage address of the hardware device. Obviously, this method can save the computing resources of the processor in the second communication device, and can also reduce the access delay of the first communication device to hardware devices located in other communication devices.
  • the first access component and the second access component communicate through the network; in this case, the first access component may send the message to the second access component in the form of a network message, that is, the first access component
  • the access component encapsulates the message in a first message and sends it to the second access component. In this way, the first access component can successfully send a message to the second access component through the network.
  • the expression form of the first access component and the second access component are the same, and they may be any one of FPGA, CPLD, ASIC, and SOC or a combination of multiple expressions. In this way, the flexibility of the representation form of the access component in the communication device can be improved in this way.
  • the first access component may determine the transmission object of the message as the target hardware device in the following manner:
  • the first access component obtains stored resource configuration information, where the resource configuration information includes a storage address range corresponding to each hardware device constituting the virtual hardware device; the first access component determines the storage address of the virtual hardware device included in the message Storage address range, and then determine in the resource configuration information that the hardware device corresponding to the storage address range is the target hardware device.
  • the first access component can accurately determine the transmission object of the message.
  • the first access component may generate a first mapping table that records a memory address of a processor's memory and a storage address of the target hardware device, and then includes the message in the message through the first mapping table.
  • the storage address of the processor's memory is converted to indicate the storage address of the target hardware device.
  • This method can improve the conversion efficiency of the storage address of the memory of the first access component processor.
  • the subsequent first access component may continue to use the first mapping table to convert the storage address indicating the target hardware device into storage of the processor's memory. Address, thereby also improving the conversion efficiency of the first access component to the storage address indicating the target hardware device.
  • the first access component may generate the first mapping table through the following steps:
  • the first access component determines indication information of the target hardware device. For example, in a case where the resource configuration information includes description information of each hardware device and a corresponding storage address range, the first access component may determine the description information of the target hardware device when determining a transmission object of the message, and then An access component determines instruction information of the target hardware device according to the description information of the target hardware device.
  • the first access component adds the instruction information of the target hardware device to the storage address of the processor's memory to obtain the storage address indicating the target hardware device; finally, the first mapping table is generated.
  • the first access component can accurately obtain the storage address indicating the target hardware device, and generate a first mapping table.
  • the indication information of the target hardware device includes: an identifier of the target hardware device, and / or, an identifier of a board connected to the target hardware device in the second communication device.
  • the indication information of the target hardware device may occupy all or part of the free bit field. This method can avoid increasing the transmission overhead of the message and improve the bit resource utilization of the address field.
  • the first access component may transmit the message when the processor generates a storage address indicating the target hardware device.
  • the identity of the function used when added to the memory address of the processor's memory In this way, the first access component can also add the identity of the function used by the processor to the message.
  • the offset position corresponding to the target hardware device is: the initial storage location of the hardware resource provided by the target hardware device for the first communication device, and the offset position corresponding to the target hardware device can be obtained from the resource configuration information.
  • the first access component can accurately determine the storage address of the target hardware device according to the actual configuration of the hardware resources in the virtual hardware device.
  • the first access component may convert a storage address of the virtual hardware device into a storage address of the target hardware device according to a second mapping table.
  • the second mapping table is used to describe the mapping relationship between the storage address of the virtual hardware device and the storage address of the target hardware device.
  • the second mapping table is generated according to the hardware resource size provided by each hardware device for the first communication device specified in the resource configuration information, and the sequence in which each hardware device provides hardware resources for the first communication device.
  • the first access component can accurately determine the storage address of the target hardware device according to the actual configuration of the hardware resources in the virtual hardware device.
  • the message is a write request message.
  • the method further includes the following steps:
  • the first access component receives the second message sent by the second access component; and then, according to the first mapping table, converts the storage address indicating the target hardware device in the second packet into the storage address of the processor's memory, and reads Fetch the target data in the storage location indicated by the storage address of the processor's memory; and finally send a third message to the second access component, the third message containing the target data, the storage address indicating the target hardware device, and the target hardware device Storage address.
  • the first access component can send the target data to be written to the second access component, so as to write to the target hardware device and implement the write operation.
  • the message is a read request message.
  • the method further includes the following steps:
  • the first access component receives the fourth message sent by the second access component; then, according to the first mapping table, converts the storage address indicated by the target hardware device in the third packet into the storage address of the processor's memory;
  • the target data carried in the four messages is stored in the storage location indicated by the storage address of the processor's memory.
  • the first access component can write the target data read from the target hardware device into the memory of the processor to implement a read operation.
  • the present application provides a message transmission method, which is applicable to a communication system including multiple communication devices, where each communication device includes a processor, an access component, and at least one hardware device.
  • the second communication device involved in the method is any communication device of the communication system. The method includes the following steps:
  • the second access component of the second communication device After receiving the message sent by the first access component in the first communication device, the second access component of the second communication device determines the target hardware device according to the storage address of the target hardware device indicated in the message; then, the second access component sends the The target hardware device transmits a first message including a storage address of the target hardware device and a storage address of the target hardware device, so that the target hardware device can read or write the target data according to the two storage addresses in the first message. .
  • the second access component receives the message and can directly transmit the message to the target hardware device according to the storage address of the target hardware device without operating through the processor in the second communication device.
  • the target hardware device may complete the operation of reading or writing the target data according to the storage address of the target hardware device and the storage address of the hardware device indicated.
  • this method can save the computing resources of the processor in the second communication device, and can also reduce the access delay of the first communication device to hardware devices located in other communication devices.
  • the second access component and the first access component communicate through the network; in this case, the first access component may send the message to the second access component in the form of a network message, that is, the first The access component encapsulates the message in a first message and sends it to the second access component, and the second access component obtains the message in the first message through decapsulation. In this way, the first access component can successfully send a message to the second access component through the network.
  • the expression form of the first access component and the second access component are the same, and they may be any one of FPGA, CPLD, ASIC, and SOC or a combination of multiple expressions. In this way, the flexibility of the representation form of the access component in the communication device can be improved in this way.
  • the first message is a write request message; after the second access component sends the first message to the target hardware device, the method further includes the following steps:
  • the second access component receives the second message sent by the target hardware device, and then encapsulates the second message into a second message and sends it to the first access component.
  • the second message is used to request to read and store the first communication device.
  • the target data in the processor's memory includes the storage address indicating the target hardware device and the storage address of the target hardware device; then, the second access component receives a third message sent by the first access component, and the third message contains The target data, and a storage address indicating the target hardware device and a storage address of the target hardware device;
  • the second access component determines the target hardware device according to the storage address of the target hardware device indicated in the third message, and stores the target data in the storage location indicated by the storage address of the target hardware device.
  • the second access component can store the target data to be written to the target hardware device to implement a write operation.
  • the first message is a read request message; after the second access component sends the first message to the target hardware device, the method further includes the following steps:
  • the second access component receives the third message sent by the target hardware device, and then encapsulates the third message into a fourth message and sends it to the first access component; wherein the third message is used to request that the target data be stored in the processor memory
  • the third message includes the target data and a storage address indicating the target hardware device, where the target data is read from the storage location indicated by the storage address of the target hardware device;
  • the first access component can convert the storage address indicating the target hardware device into the storage address of the processor's memory, and then store the target data in the processor's memory to implement reading. operating.
  • the present application further provides a first access component, which is applied to a first communication device.
  • the first communication device is any communication device in a communication system, and the communication system includes multiple communication devices.
  • Each communication device contains a processor, an access component, and a hardware device.
  • the first access component includes each module that executes the message transmission method in the seventh aspect or any one of the possible implementation manners of the seventh aspect.
  • the present application also provides a second access component, which is applied to a second communication device.
  • the second communication device is any communication device in a communication system, and the communication system includes multiple communication devices.
  • Each communication device includes a processor, an access component, and a hardware device.
  • the second access component includes various modules for executing the message transmission method in the eighth aspect or any one of the possible implementation manners of the eighth aspect.
  • the present application further provides a communication device.
  • the communication device includes a processor, an access component, and a hardware device.
  • the access component is used to implement the methods provided in various aspects.
  • the present application provides a computer-readable storage medium, where the computer-readable storage medium stores instructions, and when the computer-readable storage medium runs on the computer, causes the computer to execute each of the seventh to eleventh aspects Aspect of the method.
  • FIG. 1 is a schematic structural diagram of a resource pool management system provided by this application.
  • FIG. 2 is a schematic architecture diagram of another resource pool management system provided by the present application.
  • FIG. 3 is a schematic flowchart of a resource pool management method provided by the present application.
  • FIG. 4 is an architecture diagram of another resource pool management system provided by the present application.
  • FIG. 5 is a schematic structural diagram of an access component provided by the present application.
  • FIG. 6 is a schematic flowchart of a message transmission method in a resource pool system provided by the present application.
  • FIG. 7 is a schematic flowchart of a message transmission method in another resource pool system provided by the present application.
  • FIG. 8 is a schematic structural diagram of a resource pool management device provided by the present application.
  • FIG. 9 is a schematic structural diagram of a server 100 provided in this application.
  • FIG. 10 is a schematic structural diagram of an access component 400 provided by the present application.
  • FIG. 11 is a schematic structural diagram of a communication device provided by the present application.
  • FIG. 1 is a schematic diagram of a system architecture of a resource pool according to an embodiment of the present application.
  • the system includes multiple communication devices, and each communication device can be specifically divided into application devices and resource devices.
  • each communication device can be specifically divided into application devices and resource devices.
  • it can be either an application device or a resource device.
  • the application device is used to run a user's application program, and may specifically be the server 100 or the terminal 101, and the terminal includes a smart phone, a portable computer, a tablet computer, or the like.
  • the resource devices include a server 201, a large computing device 202, a switch 203, and a firewall 204. Multiple resource devices collectively constitute one or more resource pools 200.
  • the application device and the resource device in the resource pool communicate through the network 300, and the application device can use the hardware resources in the resource pool 200 through the network 300.
  • the network 300 may use an Ethernet (Ethernet) or a remote direct data access (RDMA) network.
  • the RDMA network includes an IB (InfiniBand) network and the like.
  • FIG. 2 is a schematic diagram of a system architecture of another resource pool according to an embodiment of the present application.
  • the system includes an application server 100 and a resource server 201.
  • the application server 100 includes a resource pool control unit (PCU) 101, a processor 102, and a virtual hardware device 103.
  • the virtual hardware device 103 comes from a resource pool composed of multiple resource servers 201, and the resource pool control unit 101 The processor 102 and the virtual hardware device 103 are connected.
  • PCU resource pool control unit
  • the resource pool control unit 101 and the processor 102 are connected through a Peripheral Component Interconnect Express (PCIe) or a Super Path Interconnect (UPI).
  • PCIe Peripheral Component Interconnect Express
  • UPI Super Path Interconnect
  • the processor 102 of the application server 100 the existence of the resource pool is not perceived, and the application server only accesses various hardware resources in the resource server through the resource pool control unit 101.
  • the processor 102 runs a plurality of application programs, such as an application program 1021 and an application program 1022.
  • Each application server 100 accesses the resource server 201 through the network 300.
  • the resource server 201 includes a resource pool control unit 2011, a processor 2012, and a hardware resource 2013.
  • the resource pool control unit 2011 and the processor 2012 are also connected through PCIe or UPI.
  • the hardware resource 2013 includes computing resources, storage resources, and network resources.
  • Computing resources such as central processing unit (CPU), artificial intelligence chips, and graphics processing unit (GPU); storage resources include disk 20134, which can be mechanical hard disks, such as serially connected small Computer system interface (Serial Attached Small Computer System Interface, SAS) disks, Serial Advanced Technology Attachment (SATA) disks, or solid state disks (SSDs); network resources can be network cards 20135.
  • CPU central processing unit
  • artificial intelligence chips and graphics processing unit
  • storage resources include disk 20134, which can be mechanical hard disks, such as serially connected small Computer system interface (Serial Attached Small Computer System Interface, SAS) disks, Serial Advanced Technology Attachment (SATA) disks, or solid state disks (SSDs); network resources can be network cards 20135.
  • SAS Serial Attached Small Computer System Interface
  • SATA Serial Advanced Technology Attachment
  • SSDs solid state disks
  • the resource pool control unit 101 in the application server 100 and the resource pool control unit 2011 in the resource server 201 shown in FIG. 2 may be implemented by hardware.
  • the resource pool control unit may use a CPU and a field-programmable gate array. array (FPGA), application-specific integrated circuit (ASIC), system-on-chip (SOC), or programmable logic device (PLD) implementation, the above PLD can be a complex program A logic device (complex, programmable logical device, CPLD), general array logic (GAL), or any combination thereof.
  • the resource pool control unit 101 in the application server 100 and the resource pool control unit 2011 in the resource server 201 may also be implemented by software, and may specifically be a computer program stored in a storage medium (not shown in the figure) of the application server.
  • the code is executed by the processor 102 in the application server 100 to implement the function of the resource pool control unit 101.
  • the resource pool control unit 101 in the application server 100 and the resource pool control unit 2011 in the resource server 201 shown in FIG. 2 may also be referred to as an access component.
  • the access component is within a communication device. Dedicated hardware components for hardware resource access within and between communication devices. Because the access component can implement hardware resource access between communication devices, the access component has the function of network communication.
  • the access component may be connected with the access component and the hardware device in other communication devices through various peripheral interfaces, respectively.
  • the peripheral interface may be a Peripheral Component Interconnect (PCI) interface, or a Peripheral Component Interconnect Express (PCIe) interface, or another interface that can be used to communicate with other communication devices.
  • PCI Peripheral Component Interconnect
  • PCIe Peripheral Component Interconnect Express
  • the peripheral interface is not limited in this application.
  • the access component can realize the transparent transmission of messages between the processor and the hardware device through the peripheral interface. Transparent transmission of messages, that is, during the transmission of a message, the access component only converts the storage address contained in the message, and does not change other contents of the message (such as other data contained in the message, the type of the message, etc.); in other words The difference between the message generated by the processor and the message finally received by the hardware device, and the difference between the message generated by the hardware device and the message finally received by the processor are only the different storage addresses included.
  • the hardware resources of the application server in FIG. 2 can also be added to the resource pool to provide hardware resources for all application server hardware.
  • a separate server is usually used as the management node.
  • the management process of the resource pool requires the participation of the management node.
  • the applications running in the application server cannot use the hardware resources in the resource pool.
  • the user's business is interrupted or data is lost.
  • an embodiment of the present application provides a technical solution for removing a management node.
  • a resource pool is composed of multiple hardwares of the same resource server or multiple hardwares of different resource servers, and the pool is deployed in both the application server and the resource server.
  • Management unit each resource pool control unit communicates through the network, provides hardware resources for the application server, and the resource pool control unit jointly assumes the task of resource pool management, thereby improving the reliability of the resource pool system.
  • FIG. 3 is a method for managing a resource pool according to an embodiment of the present application. As shown in the figure, the method includes:
  • the first resource pool control unit collects hardware resource information that can be used to form a resource pool in a first server where the first resource pool control unit is located.
  • a resource pool control unit is deployed in each server, and multiple resource pool control units communicate through a network.
  • multiple resource pool control units can preferentially select any one of the resource pool control units to manage the resource pool. For example, they are responsible for creating resource pools and logical hardware devices, allocating resources, and releasing resources.
  • each resource pool control unit is configured with a unique identifier, and the system may designate any one of the resource pool control units responsible for managing the resource pool according to the identifier of the resource pool control unit.
  • each server deploys a resource pool control unit, and the identifiers are resource pool control unit 1, resource pool control unit 2, resource pool control unit 3, and resource pool control unit 4, in order.
  • the resource pool control unit 1 is responsible for creating a resource pool and a logical hardware device. After any resource pool control unit determines that it is responsible for managing the resource pool, it will send a notification message to the other resource pool control units to notify the resource pool control unit that it is responsible for managing the resource pool, so as to facilitate subsequent types of resource pool control units. Message processing.
  • the first activated resource pool control unit may also be responsible for managing the resource pool.
  • the first activated resource pool control unit refers to the first resource pool control unit that runs the resource pool control unit process among all resource pool control units.
  • another resource pool control unit may be selected to manage the resource pool according to the identifier of the resource pool control unit.
  • the resource pool control unit with the lowest load is selected to manage the resource pool.
  • the resource pool control unit that manages resource pools in the same system can be changed.
  • the resource pool control unit that manages the resource pool at the current moment is the first resource pool control unit.
  • each resource pool control unit collects hardware resource information of a server (for example, the first server) that can be used to form a resource pool.
  • the hardware resource information includes the type, amount, quantity, and location of hardware.
  • Type used to identify the type of the hardware, for example, computing, storage, network
  • the amount of resources refers to the processing or storage capacity of the hardware, for example, if the hardware is a CPU, the amount of resources of the CPU can use the processor core Parameters, such as number, frequency, speed, etc .
  • quantity refers to the number of the hardware
  • location refers to the identity or location of the server where the hardware is located.
  • the first resource pool control unit receives hardware resource information in a second server where the second resource pool control unit is located, which can be used to form a resource pool.
  • each resource pool control unit collects hardware information in a server where the resource pool can be used to form a resource pool.
  • the second resource pool control unit is configured to instruct any resource pool control unit other than the first resource pool control unit.
  • the first resource pool control unit creates a resource pool and creates a logical hardware device according to the hardware resource information of the resource pool that can be formed in each server.
  • the first resource pool control unit collects hardware resource information that can be used to form a resource pool sent by each resource pool control unit, it can be classified into one or more resource pools according to the type of hardware. For example, all CPUs are grouped into a resource pool, all GPUs are grouped into another resource pool, and all disks are grouped into a resource pool.
  • the same resource pool it can be further divided into unused groups according to different attributes.
  • a CPU resource pool a CPU with 4 processor cores in the same CPU is divided into one group, and a CPU with 8 processor cores in the same CPU is divided into another group.
  • the first resource pool control unit may divide the hardware devices in the same resource pool into multiple logical hardware devices in any one or more of the following ways:
  • Method 1 Divide the same hardware device into multiple logical hardware devices.
  • the same disk hardware device can be divided into multiple logical disks for use by applications of multiple application servers.
  • Method 2 Group multiple hardware devices into one logical hardware device.
  • multiple artificial intelligence chips can be combined into a logical artificial intelligence chip, which is used to jointly complete a data processing process, improve processing efficiency, and reduce processing time.
  • multiple disks are combined into a logical disk for use by the application.
  • the hardware devices may belong to the same server, or may belong to different servers.
  • Method 3 Use the same hardware device as a logical hardware device.
  • the same hardware device can be provided to multiple applications in a shared manner, allowing multiple applications to use the hardware device at the same time. You can also provide the same hardware device to only one application in an exclusive manner, and only allow the application to use the hardware device.
  • the first resource pool control unit receives a resource application request from an application in the second server.
  • the resource application request received by the first resource pool control unit is specifically a resource application request of an application in the second server sent by the second resource pool control unit.
  • the resource application request includes the identification of the application, the type of resource required, and the amount of resource.
  • the application identifier is used to uniquely identify an application; the type of required resource is used to identify the type of hardware resources required by the application, such as computing resources, network resources, or storage resources; the amount of resources required , Used to identify the specific requirements of the resources required by the application. Specifically, when computing resources are required, the amount of resources is used to indicate the computing power of the required computing resources.
  • the resource application request may further include an identifier of an application server where the application is located.
  • the first resource pool control unit divides one or more logical hardware devices into a first resource according to a preset rule.
  • the first resource pool control unit may divide one or more logical hardware devices in the resource pool as the first resource according to a preset rule to ensure that the first resource can meet the requirements of the resource application request.
  • the preset rules include any one or more of the following rules:
  • Rule 1 The logical hardware device composed of the resources of the hardware device closer to the server where the application is located is preferentially selected to form the first resource.
  • the resource pool is composed of the resources of multiple hardware devices that each server can use to form the resource pool.
  • the logical hardware device constituted by the provided hardware devices serves as the first resource.
  • the specific distance can be distinguished by the location of different servers. For example, the resources provided by the same server are preferred. If the resources provided by the same server cannot meet the requirements of the resource application request, The resources provided by servers in the same cabinet are preferred.
  • the hardware device of the application server when the hardware device of the application server is also used to form a resource pool, a logical hardware device composed of hardware devices provided by the server where the application program is located may be preferred as the first resource.
  • the resource pool control unit adopts the PCIe protocol. Compared with accessing hardware resources of other servers through the network 300, accessing hardware resources is faster because the data transmission path is shortened, which can improve the efficiency of data processing.
  • the resource pool control unit in the application server can establish a binding relationship with the specified resource pool control unit in one or more resource servers.
  • the first resource pool The control unit provides hardware resources to the application server only from the logical hard disk composed of the hardware devices of the specified resource server according to the above binding relationship.
  • the resource pool control unit in the application server establishes an association relationship with one or more resource pool control units in the resource server in advance.
  • the hardware resources are divided in the resource server where the resource pool control unit to which the pool control unit is bound.
  • a fixed resource server or resources can be designated to provide hardware resources for them to ensure the application requirements of the application.
  • resources can also be divided in the manner described above to meet the resource requirements of important applications in priority and improve the service quality of the entire data center or public cloud.
  • the status of one or more logical hardware devices constituting the first resource is updated to busy, which is used to indicate that the logical hardware device has been used by other applications.
  • the first resource pool control unit sends a resource configuration request to the second resource pool control unit according to the first resource.
  • the first resource pool control unit determines the first resource, it sends a resource configuration request to the second resource pool control unit, where the resource configuration request carries the identifier of the logical hardware device and the identifier of the server that provides the hardware resource, so as to facilitate the application.
  • the second resource pool control unit can access the hardware device according to the identity of the server.
  • the server can be identified by using a Media Access Control (MAC) address or an Internet Protocol (IP) address.
  • the resource configuration request may also carry the identifier of the resource pool control unit.
  • the second resource pool control unit completes the configuration of the first resource according to the resource configuration request for use by an application in the second server.
  • the second resource pool control unit After receiving the resource configuration request, the second resource pool control unit records the identifier of the logical hardware device and the identifier of the server providing the hardware resource. Because the application server is connected to the virtual hardware device by the resource pool control unit, when the application needs to access hardware resources, the resource pool control unit first determines the logical hardware device corresponding to the access request, and then determines the server where the logical hardware device is located , And then send an access request to the server according to the server's identity, and then the server's processor completes the read or write operation.
  • the first resource pool control unit also sends a resource configuration request to the resource pool control unit that provides hardware resources, so that the resource pool control unit records the hardware devices to be provided and for which resource pool control unit Provide the above hardware equipment.
  • the first resource pool control unit receives a resource release request of an application program of the second server.
  • the application of the second server When the application of the second server completes the resource use, the application of the second server sends a resource release request to the first resource pool control unit through the second resource pool control unit, and the resource release request may carry the used logical hardware device. logo.
  • the first resource pool control unit indicates that the resource pool control unit of the server providing the first resource has completed the use of the first resource.
  • the first resource pool control unit is responsible for releasing the resources in the resource pool.
  • the application program finishes using the hardware resources that it has applied for, it will notify the first resource pool control unit to release the hardware resources.
  • the first resource pool control unit is in the application.
  • the program completes the use of the first resource, it will notify the resource pool control unit of the server providing the hardware resource that resource use has been completed. Accordingly, the resource pool control unit of the server providing the hardware resource will update its recorded hardware resource binding relationship. So that it can be reused for other applications.
  • the first resource pool control unit updates a state of the logical hardware device.
  • the first resource pool control unit When the first resource pool control unit manages the resource pool, it needs to record the status of each logical hardware device. When the application has completed the use of the logical hardware device, it can update the status of the logical hardware device to idle, which is used to identify the logical hardware. The device is not currently assigned to an application program, and the first resource pool control unit may reassign the logical hardware device to another application program.
  • any processor may be selected in the system shown in FIG. 2 to implement resource pool management.
  • the processor with the lowest load in the system at the moment is selected to be responsible for managing the resource pool.
  • all resource pool control units will send the hardware resource information of the server where the resource pool control unit is located that can be used to form the resource pool.
  • this processor is responsible for creating resource pools and logical hardware devices, as well as resource application and resource release. That is, the processor executes the operation steps of the first resource pool control unit in FIG. 3, and the selected processor receives and summarizes the first resource pool control unit and the second resource pool control unit in the server where the processor is located.
  • Hardware resource information that can be used to form a resource pool; create a resource pool and create logical hardware devices based on the hardware resource information that can form a resource pool in the server; when a resource request for an application program is received from any resource pool control unit When requested, one or more logical hardware devices are allocated to the resource pool control unit according to preset rules, the resource pool control unit completes resource configuration, and the application program uses the required resources. After the application completes data processing, the resource pool control unit sends a resource release request to the processor, and the processor updates the state of the logical hardware device to achieve resource sharing in the resource pool.
  • multiple resource pool control units may re-select a new resource pool control unit load management Resource pools, for example, multiple resource pool control units select the one with the lowest load as the resource pool control unit for the load management resource pool at the current moment according to the current load situation.
  • a resource pool control unit load management resource pool may also be selected according to the identifier of the resource pool control unit.
  • the resource pool control unit is only used to implement the process of creating a resource pool, creating a logical hard disk, allocating resources, and releasing resources.
  • an application program does not require a resource pool control unit to use a hardware resource process. Participation, that is, the resource pool control unit responsible for managing the resource pool at the current moment need only record the composition of the resource pool, the composition and status of the logical hardware devices. When the resource pool control unit responsible for managing the resource pool fails or is upgraded at the current moment, the new resource pool control unit responsible for managing the resource pool only needs to obtain the composition of the resource pool and the composition and status of the logical hardware device to continue to manage the resource pool.
  • each resource pool control unit responsible for managing the resource pool can use a database or a specified file or other form to record the composition of the resource pool, the composition and status of the logical hardware devices, and the resource pool control unit responsible for managing the resource pool at the current moment.
  • the above-mentioned database content or specified file can be sent to any resource pool control unit before the downtime.
  • the resource pool control unit that stores the above-mentioned database content or specified file is then used. Send to the new resource pool control unit to implement the management of the resource pool by the new resource pool control unit.
  • each server has a resource pool control unit.
  • Each resource pool control unit communicates through the network and is controlled by each resource pool.
  • the units jointly manage the resource pool.
  • other resource pool control units can re-select a new resource pool control unit responsible for management through preset rules, undertake the tasks of the original resource pool control unit, and continue to manage the resource pool. Effectively improved the reliability of the entire system.
  • the resource pool control unit can be implemented by FPGA or ASCI circuit, which reduces the system deployment cost compared to the way in which a management node is deployed by an independent server.
  • the number of resource pool control units can be flexibly configured. As long as a resource pool control unit is added to the server, it can participate in the management of the resource pool, and the layout is more flexible.
  • the resource pool control unit can be set according to business needs. Compared with the traditional technology, which requires a separate server to deploy the management node, the deployment mode is more flexible and the cost is lower.
  • a more fine-grained management method is used to divide the hardware resources into different forms of logical hardware device supply applications for use, allowing the resources of the same physical device to be divided into multiple logical hardware devices, or The resources of multiple physical devices together form a logical physical device, or the resources of a physical device are used as a logical physical device.
  • the forms of resource use are diversified. In the data center or public cloud area, it can be allocated to different applications according to user needs. This improves the resource utilization of the real system.
  • the above content introduces the structure and management method of the resource pool system provided by the present application.
  • the access component in the device accelerates the method of accessing the hardware devices of other hardware devices in the resource pool, and reduces the access delay of the communication device to the hardware access in the resource pool located in other communication devices.
  • FIG. 4 is an architecture diagram of another resource pool management system provided in this application.
  • a communication system a plurality of communication devices (such as communication device A, communication device B, and communication device shown in the figure) are included. C), and resource management equipment.
  • Each communication device includes a processor, an access component, and at least one hardware device.
  • the hardware device may include at least one of an SSD, a central processing unit, a GPU, and a NIC.
  • At least one available hardware device of the same type in the system can be combined into a virtual logic device, and the virtual logic device can be allocated to a communication device. It can also be used to form one or more logical hardware devices. Then, each logical hardware device is divided into multiple sub-logical hardware devices according to preset rules, and each sub-logical hardware device can be called a virtual hardware device.
  • the available SSD devices are SSD 1 of communication device 1, SSD 1 of communication device 2 and SSD 1 of communication device 3. The three SSDs are combined into a logical SSD, and then the logical SSD is set according to preset rules. It is divided into two sub-logical SSDs. Each sub-logical SSD is called a virtual SSD and can be allocated to a communication device.
  • the virtual hardware device in FIG. 4 is a hardware resource pool composed of at least one available hardware device of the same type in the system shown in FIG. 4.
  • the hardware resource pool includes one or more virtual hardware devices.
  • Each virtual hardware device is composed of at least A hardware device composition is described as an example.
  • the resource management device in the communication system composes the SSD 1 of the communication device 1 and the SSD 1 of the communication device 2 into a virtual SSD disk, and allocates the virtual SSD disk to the communication device 1 for use.
  • the resource amount is the sum of the resources of the two SSD disks.
  • the resource management device in the communication system can perform resource integration of hardware devices (ie, hardware resources) of the same device type in each communication device in the communication system to generate hardware.
  • Resource pool For example, the resource management device may integrate solid state disk (SSD) resources in all communication devices into one SSD resource pool, or integrate NIC resources in all communication devices into one NIC resource pool.
  • SSD solid state disk
  • the resource management device When a communication device requests the allocation of hardware resources, the resource management device splits hardware resources in the hardware resource pool that meet the hardware resource requirements of the communication device, and allocates the separated hardware resources to a virtual hardware device.
  • the communication device After the resource management device allocates the virtual hardware device to the communication device, it also sends resource configuration information of the communication device to the communication device.
  • the resource management device may be any one of a plurality of communication devices, or may be another device independent of the communication device with a control and management function in the communication system. Specifically, the resource management device may be any resource pool control unit for managing a resource pool at a current time in FIG. 1 or FIG. 2.
  • the hardware resources allocated by the resource management device to a target communication device may be composed of some or all hardware resources in at least one hardware device.
  • the at least one hardware device may be located in the same communication device or may be located in different communication devices, which is not limited in this application.
  • the at least one hardware device may include a hardware device located in the target communication device, or may not include a hardware device located in the target communication device, which is not limited in this application.
  • communication device A is used as an application server
  • communication device A, communication device B, and communication device C are used as resource servers
  • hardware devices are used as SSDs as examples for further detailed description.
  • the resource management device allocates hardware resources for communication device A
  • all hardware resources in SSDA_1 in communication device A, SSDB_1 in communication device B, and SSDC_1 in communication device C are allocated to the communication as virtual SSDs.
  • Device A when the resource management device allocates hardware resources for communication device A, all hardware resources in SSDA_1 in communication device A, SSDB_1 in communication device B, and SSDC_1 in communication device C are allocated to the communication as virtual SSDs. Device A.
  • the resource management device After the resource management device allocates hardware resources for the communication device A, it generates resource configuration information for the communication device A, and sends the resource configuration information for the communication device A to the communication device A.
  • the access component A in the communication device A saves the resource Configuration information.
  • the access component A may send a notification to the processor A according to the resource configuration information, so that the processor A determines information such as a device type (SSD) of the virtual hardware device that the resource management device has allocated for the communication device A, and a size of the provided hardware resource.
  • SSD device type
  • Processor A will receive a request message sent by a running business application.
  • the request message may be a read request message or a write request message.
  • the processor A transmits the request message to the access component A, and the access component A can determine, according to the resource configuration information, which transmission object of the request message belongs to which SSD in the virtual SSD. It includes the following scenarios:
  • Scenario 1 When the transmission object of the request message received by the access component A is located on the same communication device as the processor A (for example, the transmission object of the request message is SSD A_1), the access component A can directly send the request message to the SSDA_1 To cause the SSDA_1 to perform the operation.
  • Scenario 2 When the transmission object of the request message received by the access component A and the processor A are located on different communication devices (for example, the transmission object of the request message is SSDB_1 in the communication device B), the access component A sends the request message The access component B in the communication device B is given. After receiving the request message, the access component B in the communication device B sends the request message to the SSD B_1, so that the SSD B_1 performs the operation.
  • a peripheral interface is connected to perform communication between components.
  • the peripheral interface may be a PCIe interface
  • the access component inside each communication device includes a PCIe endpoint and a PCIe root port, as shown in the figure.
  • the PCIe endpoint is used to connect the processor and establish a transmission channel between the processor and the access component.
  • the PCIE root port is used to connect each SSD in the communication device, and establish a transmission channel between the access component and each SSD.
  • the application device and the resource device are different communication devices (as described in scenario 2)
  • the communication system There is a communication connection between the application device and the resource device, that is, there is a communication connection between the application device and the access component in the resource device.
  • the access component A in the communication device A and the access component B in the communication device B and the access component C in the communication device C are connected through a communication interface.
  • each communication device can serve as a resource device to provide hardware devices for other application devices, and it can also be used as an application device to provide hardware devices for other communication devices. Therefore, optionally, access from any two communication devices in the communication system Components can be connected through communication interfaces. For example, as shown in FIG. 1 a, the access component B in the communication device B and the access component C in the communication device C are connected through a communication interface.
  • the two access components can communicate through direct connection or through a network, which is not limited in this application.
  • the network may include various network forwarding devices (for example, switches, routers, etc.).
  • the communication protocols used for communication between the two are also different. Therefore, when the access component sends a message, it also needs to encapsulate the message into a message according to the agreed communication protocol. After receiving the message, the access component also needs to decapsulate the message into a message according to the agreed communication protocol.
  • communication protocols such as Ethernet protocol, Transmission Control Protocol / Network Protocol (Transmission Control Protocol / Internet Protocol, TCP / IP) can be used between the two.
  • FIG. 5 is a schematic structural diagram of an access component provided in the present application. As shown in the figure, in a case where a processor and an access component inside a communication device, and an access component and a hardware device are connected through a PCIe interface, Illustration of space access in communication equipment.
  • PCIe devices access components and hardware devices are called PCIe devices.
  • two types of space are configured in each PCIe device: a configuration space and a base address register (BAR) space.
  • BAR base address register
  • the configuration space of a PCIe device is a set of registers. These registers hold the type of the PCIe device, other basic information of the PCIe device (device identification, manufacturer information, version number, etc.), and the base address of the BAR space.
  • the BAR space of a PCIe device is also a register space.
  • the register contains the base address of the queue that the PCIe device can manage, and information about the queue pointer.
  • the access component is an endpoint of the processor, and the processor can access the configuration space of the access component through the root complex (RC) in the PCIe structure.
  • the processor can access the configuration space of the component, configure the base address of the BAR space of the access component, and implement the configuration and access of the BAR space of the access component.
  • the access component can autonomously access the configuration space of the hardware device and map it to the BAR space of the access component. In this way, the access component can indirectly access the configuration space of the hardware device by accessing its own BAR space.
  • the access component indirectly accesses the configuration space of the hardware device, the base address of the BAR space of the hardware device can be configured, thereby realizing the configuration and access to the BAR space of the hardware device.
  • the access component A After the resource management device in the communication system allocates a virtual hardware device to the one communication device (continuing the communication device A as an example), the access component A generates a configuration space that includes the device type of the virtual hardware device, and Other basic information. In this way, the processor A can access the configuration space of the component A through the RC access, identify the device type of the virtual hardware device, and other basic information, and thereby generate a request message for implementing certain operations according to the information.
  • the RC may be integrated inside the processor A, or may be hardware independent of the processor A, which is not limited in this application.
  • the RC implementation is also required.
  • processor A needs to transmit a message to access component A, it needs to store the message in the memory of processor A, and then write the message to access component A through RC; when access component A needs to read from access component A
  • fetching a message it is also necessary to read the message into the memory of processor A through RC, and then processor A reads the message from memory.
  • Access to any of the hardware devices of component A and communication device A in the process of message transmission, access to component A also needs to have the RC function, and access to the memory of component A to participate in the implementation, The process is similar to the process in which the processor A and the access component A perform message transmission, and details are not described herein again.
  • the processor A and the access component A transmit a message (for example, a request message, a response message, etc.) through a queue storage method (that is, save the message to a queue in the memory of the processor A), then Processor A is required to frequently access the BAR space of access component A, so that access component A determines the base address of the queue in processor A's memory, so that access component A can read messages from the queue, or write messages to The queue.
  • a message for example, a request message, a response message, etc.
  • a queue storage method that is, save the message to a queue in the memory of the processor A
  • the component A needs to be accessed Frequently access the BAR space of hardware device A_1, so that hardware device A determines the base address of the queue in the memory of component A, so that hardware device A_1 can read messages from the queue, or write messages to the queue.
  • a message for example, a request message, a response message, etc.
  • An embodiment of the present application provides a message transmission method, which is applicable to a communication system as shown in FIG. 4.
  • communication device A is used as an application server
  • communication device A, communication device B, and communication device C are used as resource servers
  • hardware devices are used as examples of SSDs for further detailed description.
  • the message refers to the content transmitted between the processor and a certain hardware device constituting the virtual hardware device, and is used to implement the read and write operations that the processor expects the virtual hardware device to perform.
  • the message may include a request message before the operation is performed, a data execution message during the execution of the operation, and a response message after the execution of the operation is completed, which are not limited in this application.
  • the request message is: a read request message
  • the data execution message is: a data storage request sent by the hardware device carrying the target data, and the processor stores the target data in memory and returns Data storage response
  • the response message is: a read response message sent by the hardware device after receiving the data storage response confirmation processor to read the target data.
  • the request message is: a write request message
  • the data execution message is: a data read request sent by the hardware device, and a data read response returned by the processor carrying the target data
  • the response message is: a write response message sent after the hardware device successfully stores the target data.
  • the transmission of a message includes two processes: process one, message transmission between a processor and an access component in a communication device where the processor is located; process two: an access component in the communication device where the processor is located and the hardware Message transmission between devices.
  • the message transmitted in the process one may include a first address indicating a storage location of the target data in the virtual hardware device, and a second address indicating a storage location of the target data in the memory of the processor. address.
  • the target data is data to be written by the processor.
  • the first address is a start address where the target data is written into the virtual hardware device;
  • the second address is a start address where the target data is stored in a memory of the memory.
  • the target data is data to be read by the processor.
  • the first address is a start address where the target data is stored in the virtual hardware device;
  • the second address is a start address where the target data is written into a memory of the processor.
  • the virtual hardware device allocated to the communication device is the total of the hardware resources provided for the communication device (the total of the hardware resources provided by each hardware device in the at least one hardware device to the communication device)
  • the first address ( That is, the storage address of the virtual hardware device) ranges from 0 to (the sum of the hardware resources provided by the hardware device to the communication device by each of the at least one hardware device -1).
  • the resource management device in the communication system allocates hardware resources for the communication device 1
  • the 2TB hardware resources in hardware device A located in communication device 2 in the hardware resource pool and hardware device B in communication device 3 are allocated.
  • 6TB hardware resources are allocated to the communication device 1.
  • the value range of the storage address of the virtual hardware device included in the request message sent by the communication device 1 should be 0TB— (8TB-1).
  • the message transmitted in the second process may include: a third address used to indicate the hardware device, and a fourth address used to indicate a storage location of the target data in the hardware device.
  • the third address may enable an access component in the communication device where the processor is located to accurately send a message to the hardware device.
  • the third address includes instruction information of the hardware device.
  • the fourth address may enable the hardware device to complete a corresponding operation after receiving the message. For example, when the message is a write request message, the fourth address is a start address where the target data is written to the hardware device. As another example, when the message is a read request message, the fourth address is a start address where target data is stored in the hardware device.
  • the value range of the fourth address (that is, the storage address of the hardware device) is: 0— (the hardware resource provided by the hardware device-1).
  • the resource management device in the communication system integrates the SSDs in all communication devices into an SSD resource pool, and then combines SSDA_1 in communication device A, SSDB_1 in communication device B, and communication devices in the SSD resource pool. All the hardware resources in the SSD in C and C_1 are allocated to the communication device A as virtual SSDs, and the resource configuration information of the communication device A is sent to the access component A in the communication device A.
  • Processor A accesses the configuration space of component A through RC access, identifies the device type of the virtual SSD, and provides information such as the size of hardware resources.
  • FIG. 6 is a schematic flowchart of a message transmission method in a resource pool system provided by the present application. As shown in the figure, the operation steps of the method include:
  • the request message includes a first address and a second address.
  • the first address is used to indicate a storage location of the target data in the virtual SSD. In other words, the first address is a storage address of the virtual SSD.
  • the second address is used to indicate a storage location of the target data in the memory of the processor A. In other words, the second address is a storage address of the memory of the processor A.
  • the processor A may transmit a request message to the access component A through the peripheral interface with the access component A and according to the transmission mode corresponding to the peripheral interface.
  • the transmission mode of the request message can be, but not limited to, the following two modes:
  • Method 1 The processor A sends a request message to the access component A.
  • Method 2 In the case where a PCIe interface is used between the processor A and the access component A, the request message is transmitted through the following steps:
  • the processor A stores the request message in the memory of the processor A.
  • the queue can be used to store the request message (for ease of differentiation, this queue may be referred to as the first command queue later); then the processor A notifies the access component A to read the request.
  • the access component A After the access component A obtains the notification of the read request message from the processor A, it reads the request message from the first command queue.
  • the first command queue may be a submission queue (SQ) stored in the memory of the processor A .
  • the processor A may notify the access component A to read the request message through the following steps: after storing the request message in the first command queue, the processor A updates the write pointer position of the first command queue And sends the write pointer position of the updated first command queue to the access component A.
  • the access component A can read the request message from the first command queue according to the updated write pointer position of the first command queue.
  • the command queue is stored in the order of the messages, and there is no idle position between two adjacent locations where the messages are stored.
  • the write pointer position of the command queue is the first free position in the command queue. Therefore, the access component A can determine whether a new message is stored in the command queue based on whether the write pointer position of the command queue has changed, and can also be updated according to the update.
  • the write pointer position of the subsequent command queue determines the position of the newly stored message in the command queue, thereby accurately reading the newly stored message in the command queue.
  • the access component A determines that the storage location indicated by the first address belongs to a target SSD of another communication device (for example, SSD B_1 in the communication device B), that is, scenario 2 is currently satisfied.
  • the access component A can determine the target SSD through the following methods:
  • the access component A determines that the transmission object of the request message is the SSD B_1 in the communication device B according to the stored resource configuration information and the first address, and the resource configuration information includes a storage address range corresponding to each SSD in at least one SSD.
  • the resource configuration information includes a storage address range corresponding to each of the three SSDs constituting the virtual SSD.
  • the resource configuration information is generated when a resource management device in the communication system allocates hardware resources to the communication device and sends it to an access component of the communication device.
  • the resource configuration information of the communication device is used to indicate the configuration of hardware resources of the communication device (virtual hardware device). Because the hardware resource allocated to the communication device is provided by at least one hardware device allocated to it, the resource configuration information includes: a storage address range of each hardware device in the at least one hardware device in the virtual hardware device .
  • the access component A executes S202, it first determines the storage address range where the first address is located, and then determines that the SSD corresponding to the storage address range is the transmission object of the request message.
  • the total storage address range of a virtual SSD is 0TB-12TB-1, and the three SSDs provide hardware resources for communication device A in the order of SSDA_1, SSDB_1, and SSDC_1.
  • the resource configuration information is shown in Table 1 below:
  • the access component A can determine that the storage address range of the first address is 4TB-8TB-1, and then the access component A can use the SSD corresponding to the storage address range 4TB-8TB-1 as the request message. Transfer object.
  • the resource configuration information also includes description information of each of the three SSDs constituting the virtual SSD, such as the identification of the SSD, the identification of the device where the SSD is located, the number of the SSD, and the identification of the board connected to the SSD. .
  • the access component A can determine that SSD B_1 is located in the communication device B through the description information of the SSD B_1, so that the access component A can subsequently send the request message to the access component B in the communication device B accurately.
  • the access component A can also generate the instruction information of the SSD B_1 according to the description information of the SSD B_1, so that it can be added to the request message later.
  • the communication device B can accurately transmit the request message to the SSD B_1 according to the indication information of the SSD B_1 in the received request message.
  • the indication information of the SSD B_1 is used for the communication device B to accurately determine the SSD B_1. Therefore, the indication information of the SSD B_1 may include, but is not limited to, at least one of the following: the identity of the SSD B_1, and the identity of the board connected to the SSD B_1.
  • the access component A converts the second address in the request message into a third address according to the first mapping table.
  • the third address is used to indicate the SSD B_1, and the first mapping table is used to record between the second address and the third address. Mapping relationship.
  • the first mapping table may be stored in the access component A in advance, or generated by the access component A before executing S203. Specifically, the access component A may generate the first mapping table through the following steps:
  • Access component A determines the instruction information of SSD B_1;
  • the access component A adds the instruction information of the SSD B_1 to the second address to obtain a third address
  • the access component A generates a first mapping table according to the second address and the third address.
  • an address field reserved for a storage address in various messages is a first bit, and generally, a second bit actually required for a storage address is smaller than the first bit.
  • a second bit actually required for a storage address is smaller than the first bit.
  • the access component A adds the indication information of the SSD B_1 to a free bit field in the address field where the second address is located, thereby obtaining a third address.
  • the 16-bit bit field in the address field is free.
  • the access component A can occupy all or part of the 16-bit bit field and place the instruction information of the SSD B_1.
  • the functions of the processor A can be divided into multiple functions through virtualization, including at least one physical function (PF) and at least one virtual function (VF).
  • the request message may be sent by the processor A when using a certain function.
  • the request message may further include an identification of the function (virtual function or physical function).
  • the function identifier may also be identified. Add it to the free bit field in the address field where the second address is located, so as to obtain a third address that contains both the indication information of the SSD B_1 and the function identifier.
  • the access component A can also occupy the Some or all of the remaining bit fields in the 16 bit place the function identifier.
  • the access component A adds the instruction information of the SSD B_1 and the identifier of the function used by the processor A in the request message.
  • the bit fields occupied by each piece of information in the 64-bit address field are shown in Table 2, and all the information in the address field constitutes the third address.
  • the access component A determines a fourth address according to the first address.
  • the fourth address is used to indicate a storage location of the target data in the SSD B_1.
  • the fourth address can also be referred to as the storage address of SSD_B_1.
  • the size of the hardware resources provided by the virtual SSD is the same as the size of the hardware resources provided by the SSD B_1. Therefore, the fourth address is the same as the first address.
  • the virtual SSD is composed of three SSDs, so the size of the hardware resources provided by the virtual SSD is different from the size of the hardware resources provided by each SSD. Therefore, SSD B_1 may not be able to identify the storage address of the virtual hardware device in the request message. For example, SSD B_1 can provide 4TB of hardware resources, then the SSD can identify a storage address with a value of 0TB-4TB-1. According to Table 1, when the access component A determines that the operation object of the request message is SSD B_1, the request message The storage address range of the virtual SSD is 4TB-8TB-1. Obviously, when SSD_B_1 obtains the request message, it may fail to recognize the storage address of the virtual SSD in the request message, resulting in that SSD_B_1 cannot successfully perform the operation corresponding to the request message.
  • access component A In order for SSD B_1 to successfully perform the operation corresponding to the request message, access component A also needs to determine the fourth address according to the first address in the request message:
  • the access component A converts the first address into the fourth address according to the second mapping table, and the second mapping table is used to describe the mapping relationship between the address indicating the storage location of the virtual SSD and the address indicating the storage location of SSD B_1.
  • the second mapping table may be stored in advance, or may be generated by the access component A when generating the fourth address. It should be noted that the second mapping table is generated according to the hardware resource size provided by each SSD to the communication device A specified in the resource configuration information, and the sequence in which each SSD provides the hardware resource to the communication device A.
  • the second mapping table may indicate the following mapping relationships:
  • the fourth address the first address-the sum of the size of the hardware resources provided by the SSD that provided the communication device A with the hardware resources before the target SSD.
  • the target SSD is an SSD that provides hardware resources to the first SSD, it can be known from the above mapping relationship that the fourth address is the same as the first address.
  • the resource configuration information also includes the offset position corresponding to the target SSD
  • the mapping relationship indicated by the second mapping table is:
  • Four addresses first address-the sum of the size of the hardware resources provided by the SSD that provided the communication device A with the hardware resources before the target SSD + the offset position corresponding to the target SSD.
  • the access component A sends a first message to the access component B of the communication device B, and the first message includes a third address and a fourth address, so that the access component B performs an operation instruction corresponding to the third address and the fourth address Operation (read or write target data).
  • the access component B receives the first message sent by the access component A.
  • the access components of different communication devices communicate using an agreed communication protocol
  • the access component A sends a request message including the third address and the fourth address to the access component B
  • the access component B receives the first message, it also needs to decapsulate the first message according to the communication protocol to obtain the request message.
  • the access component A and the access component B communicate through the Ethernet protocol, before the access component A sends a request message, it needs to add an Ethernet frame header to the request message and encapsulate the request message as Ethernet.
  • the message in which the format of the Ethernet frame header is shown in Table 3:
  • the destination MAC address is the MAC address of communication device B
  • the source MAC address is the MAC address of communication device A.
  • the access component B determines the SSD indicated by the third address B_1.
  • the access component B may determine the SSD B_1 according to the indication information of SSD B_1 in the third address.
  • the access component B determines the SSD B_1, it can generate the correspondence between the identification of the communication device A, the ID of the SSD B_1, and the third address. In this way, after the access component obtains the data execution message or response message transmitted by SSD_1, it can determine the transmission target of these messages as communication device A by identifying the SSD_1_1 and the third address in the data execution message or response message.
  • the identifier of the communication device A may be information that uniquely identifies the communication device A, such as a MAC address of the communication device A.
  • the access component B transmits a request message to the SSD B_1, so that the SSD B_1 reads or writes target data according to the third address and the fourth address. SSD B_1 obtains the request message transmitted by access component B.
  • the transmission mode of the request message may be, but is not limited to, the following modes:
  • Method 1 The access component B sends a request message to the SSD B_1.
  • the access component B stores the request message in the memory of the access component B.
  • the request message can be stored in a queue (for ease of differentiation, the queue may be referred to as a second command queue in the future), and the SSD is notified of the B_1 read operation instruction;
  • SSD_B_1 obtains the notification of the read request message from the access component B, and then reads the operation instruction from the second command queue.
  • the second command queue may be the SQ stored in the memory of the access component B.
  • the access component B can notify the SSD of the read operation instruction B_1 through the following steps: After storing the request message in the second command queue, the access component B updates the write pointer position of the second command queue and updates the write pointer position. The write pointer position of the second command queue is sent to SSD B_1.
  • SSD B_1 After receiving the updated write pointer position of the second command queue from the access component B, SSD B_1 can read the operation instruction from the second command queue according to the updated write command position of the second command queue.
  • SSD B_1 obtains the request message, and then SSD B_1 performs the operation corresponding to the request message. Since the request message can be a read request message or a write request message, depending on the type of the request message, the operations performed by SSD_B_1 are also different.
  • communication device A and communication device B When the request message is a write request message, communication device A and communication device B perform write operations through S208a-S215a; when the request message is a write request message, read operation is performed through device A and communication device B through S208b-S215b.
  • the data read request and data read response in S208a-S215a are data execution messages generated during the write operation; the data storage request and data store response in S208b-S215b are data execution messages generated during the read operation.
  • the SSD B_1 sends a data read request to the access component B for requesting to read the target data stored in the processor memory.
  • the data read request includes a third address and a fourth address.
  • the access component B determines that the transmission target of the data reading request is the communication device A according to the correspondence between the identification of the communication device A, the identification of the SSD B_1, and the third address; the access component B sends a second message to the access component A .
  • the second message is obtained by the access component B encapsulating the data read request according to the communication protocol, and the second message also includes a third address and a fourth address.
  • the access component A After the access component A receives the second message sent by the access component B, it decapsulates the second message to obtain a data read request.
  • the access component A performs address conversion on the data read request: according to the first mapping table, converts the third address in the data read request to the second address, and determines the first address according to the fourth address.
  • the access component A reads the target data stored in the storage location indicated by the second address through steps S211a and S212a.
  • the access component A sends a data storage request to the processor A. In this way, the processor A can read the target data according to the second address.
  • S212a The processor A sends a data read response to the access component A, where the data read response includes the target data, the first address, and the second address.
  • the access component A performs address conversion on the data read response: according to the first mapping table, converts the second address in the data read request into a third address, and determines a fourth address according to the first address.
  • the access component A performs address conversion on the data read response: according to the first mapping table, converts the second address in the data read request into a third address, and determines a fourth address according to the first address.
  • the access component A sends a third message to the access component B.
  • the third message is obtained by the access component A encapsulating the data read response according to the communication protocol, and the third message includes the target data, the third address, and the fourth address.
  • the access component B After receiving the third message, the access component B determines the SSD B_1 indicated by the third address, and stores the target data to the storage location indicated by the fourth address in the SSD B_1 through S215a.
  • S215a The access component B sends a data read response to the SSD B_1.
  • SSD B_1 stores the target data in the data read response to the storage location indicated by the fourth address after receiving the data read response.
  • the SSD B_1 can accurately write the target data to be written into the SSD B_1.
  • SSD B_1 sends a data storage request to access component B, which is used to request that the target data be stored in the processor memory.
  • the data storage request includes target data, a third address, and a fourth address.
  • SSD_B_1 reads the target data from the storage location indicated by the fourth address after receiving the read request message.
  • the access component B determines that the transmission object of the data storage request is the communication device A according to the correspondence between the identification of the communication device A, the identification of the SSD B_1, and the third address; the access component B sends a fourth message to the access component A.
  • the fourth message is obtained by the access component B encapsulating the data read request according to the communication protocol, and the fourth message also includes the target data, the third address, and the fourth address.
  • the access component A After the access component A receives the fourth message sent by the access component B, it decapsulates the fourth message to obtain a data storage request.
  • the access component A performs address conversion on the data storage request: according to the first mapping table, converts the third address in the data storage request to the second address, and determines the first address according to the fourth address.
  • the access component A stores the target data into the storage location indicated by the second address through step S211b.
  • S211b The access component A sends a data storage request to the processor A. In this way, the processor A can store the target data to the storage location indicated by the second address.
  • the processor A sends a data storage response to the access component A, where the data storage response is used to notify the target data that the data is successfully stored in the memory of the processor A.
  • the data storage response includes a first address and a second address.
  • S213b The access component A performs address conversion on the data storage response: according to the first mapping table, converts the second address in the data read request into a third address, and determines a fourth address according to the first address.
  • the access component A performs address conversion on the data storage response: according to the first mapping table, converts the second address in the data read request into a third address, and determines a fourth address according to the first address.
  • the access component A sends a fifth message to the access component B.
  • the fifth message is obtained by the access component A encapsulating the data storage response according to the communication protocol, and the fifth message includes a third address and a fourth address.
  • the access component B After receiving the fifth message, the access component B determines the SSD B_1 indicated by the third address.
  • S215b The access component B sends a data storage response to the SSD B_1.
  • SSD B_1 After receiving the data storage response, SSD B_1 can determine that the target data was successfully stored in the memory of processor A.
  • the SSD B_1 can accurately store the target data to be read into the memory of the processor A.
  • the SSD B_1 After the SSD B_1 performs the write operation or the read operation through the above steps, it may also send a response message to the processor A in the communication device A through the following steps S216-S219 to notify the processor A that the read operation or the write operation is completed.
  • SSD B_1 transmits a response message to access component B, which is used to notify processor A that the target data is successfully read or written.
  • the response message includes a third address and a fourth address.
  • the response message when the request message is a write request message, the response message is a write response message; when the request message is a read request message, the response message is a read response message.
  • SSD B_1 also needs to transmit a response message to access component B according to the corresponding transmission mode of the peripheral interface.
  • the transmission mode of the response message can be, but not limited to, the following two modes:
  • Method 1 The SSD B_1 sends a response message to the access component B.
  • Method 2 In the case where a PCIe interface is used between the SSD B_1 and the access component B, the SSD B_1 can transmit a response message through the following steps:
  • SSD_B_1 stores the response message in the memory of the access component B. Specifically, it can use queue storage (for ease of distinction, it may be referred to as the first response queue in the following), and inform the access component B to read the response message.
  • the first response queue may be a completion queue (CQ) stored in the memory of the access component B.
  • CQ completion queue
  • the SSDB_1 may notify the access component B to read the response message through the following steps: After storing the response message in the first response queue, the SSDB_1 initiates an interrupt to the access component B (for example, MSI- X breaks).
  • the access component B can read the response message from the first response queue according to the interrupt.
  • the access component B determines that the transmission object of the response message is the communication device A according to the correspondence between the identification of the communication device A, the identification of the SSD B_1, and the third address; the access component B sends a sixth message to the access component A.
  • the sixth message is obtained by the access component B encapsulating the response message according to the communication protocol, and the sixth message also includes the third address and the fourth address.
  • the access component A After the access component A receives the sixth message sent by the access component B, it decapsulates the sixth message to obtain a response message.
  • the access component A performs address conversion on the response message: according to the first mapping table, converts the third address in the data storage request to the second address, and determines the first address according to the fourth address. After the conversion, the response message includes the first address and the second address.
  • the access component A transmits a response message to the processor A.
  • the processor A can determine that the target data is successfully read or written according to the response message, and the SSD B_1 successfully completes the operation corresponding to the request message.
  • the access component A also needs to transmit a response message to the processor A according to the corresponding transmission mode of the peripheral interface.
  • the transmission mode of the response message can be, but not limited to, the following two modes:
  • Method 1 The access component A sends a response message to the processor A.
  • Method 2 In the case where a PCIe interface is used between the access component A and the processor A, the access component A can transmit a response message through the following steps:
  • the access component A stores the response message in the memory of the processor A.
  • the access component A may use a queue storage (for ease of distinguishing, it may be referred to as a second response queue in the following), and notify the processor A to read the response message.
  • the second response queue may be CQ stored in the memory of the processor A.
  • the access component A may notify the processor A to read the response message through the following steps: after storing the response message in the second response queue, the access component A initiates an interrupt to the processor A (for example, MSI-X interrupt).
  • an interrupt for example, MSI-X interrupt.
  • Processor A may read a response message from the second response queue according to the interrupt.
  • the storage address of the virtual SSD in the message can be converted into The storage address of the SSD B_1, and converts the storage address of the processor's memory in the message to the storage address indicating the SSD B_1.
  • the access component B in the communication device B receives the message, it can determine the transmission of the message to the SSD B_1 according to the indicated storage address of the SSD B_1, so that the SSD B_1 is based on the SSD B_1.
  • Storage address, indicating the storage address of the SSD B_1, completes the operation of reading or writing the target data.
  • the access component B can complete the access of the processor A to the SSD B_1 without going through the processor B in the communication device B, the solution can save the computing resources of the processor B in the communication device B and can also reduce the communication device A. Access latency to SSDs located on other communication devices.
  • the access component A determines that the transmission object of the request message is the local SSD of the communication device A (for example, SSD_A_1), that is, currently meets the above scenario 1, the communication device A may follow FIG. 7
  • the flow of the message transmission method is used for message transmission.
  • the steps of transmitting each message between the access component A and the access component B are not required; the steps originally performed by the access component B are now performed by Access component A executes; the target SSD is changed from SSD B_1 to SSD A_1. Therefore, for the description of each step in the process, reference may be made to the description of the corresponding step in the embodiment shown in FIG. 6, and details are not described herein again.
  • the resource pool management method provided by the embodiment of the present application is described in detail above with reference to FIGS. 1 to 7.
  • the device, the resource pool management device, and the resource pool management provided by the embodiment of the application will be described below with reference to FIGS. 8 and 11.
  • Resource pool control unit and server
  • FIG. 8 is a schematic structural diagram of an apparatus 400 for managing a resource pool provided in the present application.
  • the apparatus 400 includes a receiving unit 401, a dividing unit 402, and a sending unit 403. Among them,
  • the receiving unit 401 is configured to receive a resource application request from an application in any communication device, where the resource application request includes a type and amount of a required resource; and the management device is a plurality of resource resource control unit deployment units.
  • a resource pool control unit deployed in any communication device in the communication device the type is used to indicate a type of hardware resource required by the application program, and the resource amount is used to indicate the size of the hardware resource required by the application program;
  • the dividing unit 402 is configured to divide a first resource from a resource pool according to a preset rule according to the resource application request received by the receiving unit 401, where the first resource is composed of one or more logical hardware devices;
  • the resource pool is composed of idle hardware devices among the multiple communication devices, and the resource pool includes one or more logical devices, and each logical device is composed of one or more hardware devices;
  • the sending unit 403 is configured to send a resource configuration request to the second resource pool control unit, so that the resource configuration request generated by the second resource pool control unit according to the first resource divided by the dividing unit 402 is used.
  • the configuration of the first resource is completed to provide hardware resources for the application, and the second resource pool control unit is a resource pool control unit deployed in a communication device where the application is located.
  • the device 400 in the embodiment of the present application may be implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • the PLD may be a complex program logic device (complex programmable device, CPLD), field-programmable gate array (FPGA), general array logic (GAL), or any combination thereof.
  • the management device 400 and its various modules may also be software modules.
  • the above device may deploy a resource pool control unit in all or part of the communication equipment of the system according to business requirements, and then select a resource control unit to manage the resource pool among multiple resource pool control units.
  • the resource pool control unit responsible for managing the resource pool at the current moment may divide a first resource composed of one or more logical hardware devices and allocate it to an application program for use.
  • One resource pool control unit in the resource pool control unit is responsible for managing the resource pool at any time.
  • the resource pool control unit that manages the resource pool fails at the current time, other resource pool control units can continue to assume the management of the resource pool to avoid impact. System business.
  • the number of resource pool control units can be flexibly configured.
  • the resource pool control unit can participate in the management of the resource pool, and the layout is more flexible.
  • the resource pool control unit can be set according to business needs. Compared with the traditional technology, which requires a separate communication device to deploy the management node, the cost is also lower.
  • the apparatus 400 is determined according to any one of the following rules:
  • Method 1 any resource pool control unit determined according to the identifier of the resource pool control unit;
  • Manner 2 The lightest-loaded resource pool control unit among the multiple resource pool control units
  • Manner 3 The first activated resource pool control unit in the system.
  • the above apparatus 400 may arbitrarily select a resource pool control unit to manage the resource pool among a plurality of communication devices in which the resource pool control unit is deployed, thereby eliminating the centralization problem caused by the dependence on the management node in the resource pool management in the conventional technology. Moreover, the number of resource pool control unit deployments can be set according to business needs, and the configuration is more flexible.
  • the apparatus 400 further includes a collecting unit 404 and a creating unit 405;
  • the collecting unit 404 is configured to collect first hardware information that can be used to form the resource pool in a communication device where the first resource pool control unit is located, where the first hardware information includes a hardware device type, a resource amount, and a location. ;
  • the receiving unit 401 is further configured to receive a resource pool control unit sent by a resource pool control unit of each communication device of the communication devices other than the first resource pool control unit among the multiple communication devices, and may be used to form the resource pool.
  • Second hardware information includes a type, a resource amount, and a location of a hardware device;
  • the creating unit 405 is configured to create the resource pool according to the first hardware information and the second hardware information; and create one or more logical hardware devices in the resource pool. One or more hardware devices.
  • the creating unit 405 is further configured to create one or more resource pools according to the type of the hardware device; and group the one or more hardware devices into multiple groups according to the resource amount of the hardware device in the same resource pool.
  • the creating unit 405 is further configured for the first resource pool control unit to treat multiple hardware devices as one logical hardware device; or the first resource pool control unit divides one hardware device into multiple Logical hardware device; or, the first resource pool control unit uses a hardware device as a logical hardware device.
  • the dividing unit 402 is further configured to preferentially divide the first resource according to a logical hardware device composed of a hardware device of a communication device closest to the communication device where the second resource pool control unit is located;
  • the communication device closest to the communication device where the second resource pool control unit is located refers to the communication device with the shortest data transmission distance from the second resource pool control unit. This reduces the latency of applications accessing hardware resources, shortens the length of data processing, and improves data processing efficiency.
  • the dividing unit 402 is further configured to establish a binding relationship between the second resource pool control unit and other resource pool control units in the resource pool in advance; when the application needs to apply for resources, it has priority
  • a logical hardware device composed of a hardware device of a communication device where the resource pool control unit where the binding relationship is determined with the second resource pool control unit is divided into the first resource.
  • the binding relationship of resource pool control units can also be established in advance according to the hardware configuration or the location and processing capabilities of logical hardware devices to ensure that special or important applications affect hardware devices. Requirements to improve their processing capabilities.
  • the device 400 may correspond to executing the method described in the embodiment of the present application, and the above and other operations and / or functions of each unit in the device 400 are respectively to implement the corresponding processes of the methods in FIG. 3, For brevity, I will not repeat them here.
  • FIG. 9 is a schematic diagram of a communication device 500 according to an embodiment of the present application.
  • the communication device 500 includes a resource pool control unit 501, a processor 502, a hardware device 503 that can form a resource pool, a communication interface 504, and a memory.
  • the unit 505 and the bus 506, the resource pool control unit 501, the processor 502, the hardware device 503 that can form a resource pool, the communication interface 504, and the memory unit 505 are interconnected through a bus 506.
  • the memory unit 505 may be a random access memory (RAM).
  • the memory unit 505 may be physically integrated in the processor 502, or may be constructed in an independent unit or a unit.
  • the resource pool control unit 501 includes a processor 5011, a storage medium 5012, and a bus 5013.
  • the processor 5011 and the storage medium 5012 also communicate through the bus 5013.
  • the resource pool control unit 501 further includes a communication interface 5014 for communicating with other components in the communication device 500 through the bus 506.
  • the resource pool control unit 501 can be connected to the communication device 500 through a PCIe slot, or it can be inherited on a printed circuit board (PCB) of the communication device by soldering.
  • the communication interface 5014 is a PCIe interface.
  • the processor 5011 of the resource pool control unit 501 may execute the program code stored in the storage medium 5012 to implement the resource pool management method shown in FIG. 3.
  • the hardware device 503 that can form a resource pool is a hardware device in the communication device that allows the resource pool to be constructed, including, but not limited to, a CPU, an AI chip, a GPU, a disk, and a network card as shown in FIG. 2.
  • the processor 502 or the processor 5011 includes one or more central processing units (CPUs), respectively.
  • the processor 502 shown in FIG. 5 includes a CPU 0 and a CPU 1.
  • the processor 502 or the processor 5011 may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor.
  • components such as a processor or a memory for performing tasks may be implemented as A general-purpose component temporarily configured to perform a task at a given time or a specific component manufactured to perform a task, as used herein, the term "processor" refers to one or more devices or circuits.
  • the processor 502 or the processor 5011 may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gates, or transistor logic Devices, discrete hardware components, etc.
  • DSPs digital signal processors
  • ASICs application-specific integrated circuits
  • FPGAs field-programmable gate arrays
  • a general-purpose processor may be a microprocessor or any conventional processor.
  • an application shown in FIG. 2 is run in the processor 502.
  • the resource application is performed by the resource pool control unit that manages the resource pool at the current moment, and the resource pool control unit 501 completes After the first resource is configured, hardware resources can be provided for the application.
  • the communication interface 504 is used for communication between the communication device 500 and other communication devices.
  • the deployment of communication between the resource pool control units means that the resource pool control unit 501 transmits a message to the communication interface 504 via the bus 506 via its communication interface 5014, and then transmits the communication interface 504 to other communication devices. Similar to the above process, the process that the communication device 500 receives other communication devices also needs to be transmitted to the resource pool control unit 501 through the communication interface 504.
  • the memory unit 505 is configured to store a kernel and other program code, including program code for running an application program.
  • the bus 506 and the bus 5013 may also include a power bus, a control bus, and a status signal bus.
  • the various buses are labeled as bus 506 and bus 5013 in the figure.
  • the communication device 500 may correspond to the management device 400 in the embodiment of the present application, and may correspond to the corresponding subject executing the method shown in FIG. 3 according to the embodiment of the present application, and the communication device 500
  • the foregoing and other operations and / or functions of each module in the method are respectively to implement the corresponding processes of the methods in FIG. 3, and for the sake of brevity, they are not repeated here.
  • An embodiment of the present application further provides a resource pool control unit.
  • the hardware architecture is shown in the resource pool control unit in FIG. 9 and is used to implement the operation steps of the method performed by the hard resource pool control unit in the method shown in FIG. 3. For the sake of brevity, I won't repeat them here.
  • a resource pool control unit is deployed in all or part of the communication equipment of the system according to business requirements, and then one resource control unit is selected from multiple resource pool control units to manage the resource pool.
  • the resource pool control unit responsible for managing the resource pool at the current moment may divide the first resource composed of one or more logical hardware devices and allocate it to the application program for use.
  • One resource pool control unit in the resource pool control unit is responsible for managing the resource pool at any time.
  • the resource pool control unit that manages the resource pool fails at the current time, other resource pool control units can continue to assume the management of the resource pool to avoid impact. System business.
  • the number of resource pool control units can be flexibly configured.
  • the resource pool control unit can participate in the management of the resource pool, and the layout is more flexible.
  • the resource pool control unit can be set according to business needs. Compared with the traditional technology, which requires a separate communication device to deploy the management node, the cost is also lower.
  • FIG. 10 is a schematic structural diagram of an access component 400 according to an embodiment of the present application.
  • the access component 400 is used in a communication device to implement the message transmission method shown in FIG. 6 or FIG. 7, and has the function of the access component A in the communication device A or the function of the access component B in the communication device B.
  • the access component 400 includes a communication unit 401 and a processing unit 402.
  • the access component 400 has the function of the access component A in the communication device A:
  • the communication unit 401 is configured to obtain a message transmitted by the processor A of the communication device A.
  • the message includes a first address and a second address.
  • the first address is used to indicate a storage location of the target data in the virtual hardware device.
  • the address is used to indicate the storage location of the target data in the processor's memory, and the virtual hardware device is composed of at least one hardware device;
  • a processing unit 402 configured to, when it is determined that the storage location indicated by the first address belongs to the target hardware device of the communication device B, convert the second address in the message into a third address according to the first mapping table, and the third address is used to indicate The target hardware device, the first mapping table is used to record the mapping relationship between the second address and the instruction information of the target hardware device; and the fourth address is determined according to the first address, and the fourth address is used to indicate the target data in the target hardware device Storage location in
  • the communication unit 401 is further configured to: send a first message to the access component B of the communication device B, where the first message includes a third address and a fourth address, so that the second access component according to the third address and the fourth address Read or write target data.
  • the access component 400 has the function of the access component B in the communication device B:
  • the communication unit 401 is configured to receive a first message sent by the access component A in the communication device A.
  • the first message includes a third address and a fourth address, and the third address is used to indicate that the message belongs to the second communication device.
  • the target hardware device, and the fourth address is used to indicate a storage location of the target data in the target hardware device;
  • a processing unit 402 configured to determine a target hardware device indicated by a third address
  • the communication unit 402 is further configured to transmit a first message including a third address and a fourth address to the target hardware device, so that the target hardware device reads or writes target data according to the third address and the fourth address.
  • the access component 400 has both the function of the access component A and the function of the access component B described above.
  • the communication unit 401 may include a communication port and a communication interface.
  • the communication port is used to implement communication between the access component 400 and other components inside the communication device where the access component 400 is located.
  • the communication interface is used to implement communication between the access component 400 and access components of other communication devices.
  • the communication device where the access component 400 is located in the embodiment of the present application may correspond to any communication device in the communication system shown in FIG. 1, FIG. 2, or FIG. 4.
  • the access component 400 in the embodiment of the present application may be implemented by an application-specific integrated circuit or a programmable logic device.
  • the PLD may be a complex program logic device, a field programmable gate array, a general-purpose array logic, or a system-on-chip or any combination thereof.
  • the access component 400 may also implement the method shown in FIG. 6 or FIG. 7 by software. At this time, the access component 400 and each unit thereof may also be software modules.
  • the access component 400 may correspond to performing the method described in the embodiment of the present application, and the above and other operations and / or functions of each unit in the access component 400 are respectively to implement the operations in FIG. 6 or FIG. 7.
  • the corresponding process of each method is not repeated here for brevity.
  • An embodiment of the present application provides an access component.
  • the access component may The storage address of the virtual hardware device is converted to the storage address of the target hardware device, and the storage address of the processor's memory in the message is converted to the storage address indicating the target hardware device.
  • the access component in the resource device receives the message, it can not operate through the processor in the resource device, but directly transmit the target hardware device to the target hardware device according to the storage address of the target hardware device.
  • the access component can save the computing resources of the processor in the resource device, and can also reduce the access delay of the application device to the hardware devices located in other communication devices.
  • the access component When the communication device where the access component is located is a resource device, the access component directly determines the transmission of the message to the target hardware device according to the storage address of the target hardware device after receiving the message transmitted by the other access component, so that The target hardware device may complete the operation of reading or writing the target data according to the storage address of the target hardware device and indicating the storage address of the hardware device.
  • the access component can save the computing resources of the processor in the resource device, and can also reduce the access delay of the application device to the hardware devices located in other communication devices.
  • the communication device 500 It includes: a processor 501, an access component 502, at least one hardware device 503, and a bus 504.
  • the processor 501, the access component 502, and at least one hardware device 503 are connected through a bus 504.
  • the access component 502 is used to implement the message transmission method shown in FIG. 6 or FIG. 7, and has the function of the access component A in the communication device A, and / or the function of the access component B in the communication device B.
  • the access component 502 includes a communication interface for implementing communication with other communication devices.
  • the above embodiments may be implemented in whole or in part by software, hardware, firmware, or any other combination.
  • the above embodiments may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, a computer, a server, or a data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server, a data center, and the like, including one or more sets of available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium.
  • the semiconductor medium may be a solid state drive (SSD).
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the unit is only a logical function division.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, which may be electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objective of the solution of this embodiment.

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中包括资源池控制单元(pool controller unit,PCU)101、处理器102和虚拟硬件设备103,虚拟硬件设备103来自由多个资源服务器201组成的资源池,资源池控制单元101连接处理器102和虚拟硬件设备103。其中,资源池控制单元101和处理器102通过快捷外围部件互连标准(Peripheral Component Interconnect 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 system interface,SAS)磁盘、串行高级技术附件(Serial Advanced Technology Attachment,SATA)磁盘,也可以是固态硬盘(solid state disk,SSD);网络资源可以是网卡20135。
图2所示的应用服务器100中资源池控制单元101和资源服务器201中资源池控制单元2011可以利用硬件实现,例如,上述资源池控制单元可以利用CPU、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)、片上系统(System on a chip,SOC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable 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的SSD 1,将上述三个SSD组成一个逻辑SSD,然后,按照预置规则将该逻辑SSD切分为2个子逻辑SSD,每个子逻辑SSD称为一个虚拟SSD,可以分配给一个通信设备使用。
图4中虚拟硬件设备是以将图4所示系统中至少一个同种类型的可用硬件设备组成硬件资源池,该硬件资源池中包括一个或多个虚拟硬件设备,每个虚拟硬件设备由至少一个硬件设备组成为例进行描述。示例地,通信系统中的资源管理设备将通信设备1的SSD 1和通信设备2的SSD 1组成一个虚拟SSD盘,并将该虚拟SSD盘分配给通信设备1使用,其中,该虚拟SSD盘的资源量为两个SSD盘资源量之和。
由于该通信系统采用了资源整合方式,因此,该通信系统中的资源管理设备可以将该通信系统中的各个通信设备中的具有同一设备类型的硬件设备(即硬件资源)进行资源整合,生成硬件资源池。例如,资源管理设备可以将所有通信设备中的固态硬盘(solid state 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 memory express,NVMe)时,第一命令队列可以为存储在处理器A的内存中的提交队列(Submission Queue,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
Figure PCTCN2019088918-appb-000001
Figure PCTCN2019088918-appb-000002
当第一地址为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
Figure PCTCN2019088918-appb-000003
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确定请求消息的操作对象为SSD B_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的标识、SSD B_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在收到该消息后,就可以根据指示的该SSD B_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 logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,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中,也可以通过焊接方式继承在通信设备的印刷电路板(print circuit 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或4所述方法,其特征在于,所述第一资源池控制单元在所述资源池中创建一个或多个逻辑硬件设备,包括以下方式中任意一种或多种:
    所述第一资源池控制单元将多个硬件设备在逻辑上划分为一个逻辑硬件设备;
    所述第一资源池控制单元将一个硬件设备在逻辑上划分为多个逻辑硬件设备;
    所述第一资源池控制单元将一个硬件设备在逻辑上划分为一个逻辑硬件设备。
  6. 根据权利要求1至5中任一所述方法,其特征在于,所述第一资源池控制单元按照预置规则从资源池中划分第一资源,包括:
    所述第一资源池控制单元优先将与所述第二资源池控制单元所在通信设备距离最近的通信设备的硬件设备的资源所组成的逻辑硬件设备划分第一资源;所述与所述第二资源池控制单元所在通信设备距离最近的通信设备,是指与所述第二资源池控制单元数据传输距离最短的通信设备。
  7. 根据权利要求1至5所述方法,其特征在于,所述第一资源池控制单元按照预置规则从资源池中划分第一资源,包括:
    所述第一资源池控制单元预先在所述资源池中建立所述第二资源池控制单元和其他资源池控制单元绑定关系;
    当所述应用程序需要申请资源时,所述第一资源池控制单元优先从与所述第二资源池控制单元确定绑定关系的资源池控制单元所在通信设备的硬件设备的资源所组成的逻辑硬件设备划分为所述第一资源。
  8. 一种资源池的管理装置,其特征在于,所述装置包括接收单元、划分单元和发送单元;
    所述接收单元,用于接收任意一个通信设备中应用程序的资源申请请求,所述资源申请请求中包括所需资源的类型和资源量;所述管理装置为部署资源池控制单元的多个通信设备中任意一个通信设备中部署的资源池控制单元;所述类型用于指示所述应用程序所需硬件资源的类型,所述资源量用于指示所述应用程序所需硬件资源的大小;
    所述划分单元,用于按照预置规则,从资源池中将满足所述类型和所述资源量要求的逻辑硬件设备划分为第一资源,所述第一资源由一个或多个逻辑硬件设备组成;所述资源池中的逻辑硬件设备的资源由所述多个通信设备中空闲的硬件设备提供,每个逻辑设备对应一个或多个硬件设备;
    所述发送单元,用于向所述第二资源池控制单元发送资源配置请求,指示所述第二资源池控制单元根据所述资源配置请求完成所述第一资源的配置,为所述应用程序提供所需资源,所述第二资源池控制单元为所述应用程序所在通信设备中部署的资源池控制单元。
  9. 根据权利要求8所述的管理装置,其特征在于,所述管理装置为按照以下规则中任意一种规则从所述多个通信设备中部署的多个资源池控制单元中确定的一个资源池控制单元,包括:
    所述管理装置为按照资源池控制单元的标识确定的任意一个资源池控制单元;
    所述管理装置为所述多个资源池控制单元中负载最轻的一个资源池控制单元;
    所述管理装置为所述系统中首个启动的资源池控制单元。
  10. 根据权了要求8或9所述的管理装置,其特征在于,所述管理装置还包括收集单元和创建单元;
    所述收集单元,用于收集所述第一资源池控制单元所在通信设备中可用于组建所述资源池的第一硬件信息,所述第一硬件信息包括硬件设备的类型、资源量和位置;
    所述接收单元,还用于接收所述多个通信设备中除所述第一资源池控制单元之外的通信设备中每个通信设备的资源池控制单元发送的可用于组建所述资源池的第二硬件信息,所述第二硬件信息包括硬件设备的类型、资源量和位置;
    所述创建单元,用于根据所述第一硬件信息和所述第二硬件信息创建所述资源池;以及在所述资源池中创建一个或多个逻辑硬件设备。
  11. 根据权利要求10所述的管理装置,其特征在于,
    所述创建单元,还用于根据硬件设备的类型创建一个或多个资源池;以及在同一资源池中按照硬件设备的资源量将一个或多个硬件设备组成多个分组。
  12. 根据权利要求8或9所述的管理装置,其特征在于,
    所述创建单元,还用于所述第一资源池控制单元将多个硬件设备在逻辑上划分为一个逻辑硬件设备;或者,所述第一资源池控制单元将一个硬件设备在逻辑上划分为多个逻辑硬件设备;或者,所述第一资源池控制单元将一个硬件设备在逻辑上划分为一个逻辑硬件设备。
  13. 根据权利要求8至12任一所述的管理装置,其特征在于,
    所述划分单元,还用于优先将与所述第二资源池控制单元所在通信设备距离最近的通信设备的硬件设备的资源所组成的逻辑硬件设备划分第一资源;所述与所述第二资源池控制单元所在通信设备距离最近的通信设备,是指与所述第二资源池控制单元数据传输距离最短的通信设备。
  14. 根据权利要求8至12任一所述的管理装置,其特征在于,
    所述划分单元,还用于预先在所述资源池中建立所述第二资源池控制单元和其他资源池控制单元绑定关系;当所述应用程序需要申请资源时,优先从与所述第二资源池控制单元确定绑定关系的资源池控制单元所在通信设备的硬件设备的资源所组成的逻辑硬件设备划分为所述第一资源。
  15. 一种资源池控制单元,其特征在于,所述资源池控制单元包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述资源池控制单元运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述资源池控制单元中的硬件资源执行权利要求1至7中任一所述方法的操作步骤。
  16. 一种通信设备,其特征在于,所述通信设备包括资源池控制单元、可组建资源池的硬件设备和总线,所述资源池控制单元和可组建资源池的硬件设备之间通过总线连接并完成相互间的通信,所述资源池控制单元包括处理器和存储器,所述存储器中用于存储计算机执行指令,所述通信设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述通信设备中的硬件资源执行权利要求1至7中任一所述方 法的操作步骤。
  17. 一种消息传输方法,其特征在于,所述方法包括:
    第一通信设备的第一访问组件获取所述第一通信设备的处理器传输的消息;其中,所述第一通信设备为通信系统中任意一个通信设备,所述通信系统中包括多个通信设备,每个通信设备包含处理器、访问组件和硬件设备,所述消息中包含第一地址和第二地址,所述第一地址用于指示目标数据在虚拟硬件设备中的存储位置,所述第二地址用于指示所述目标数据在所述第一通信设备的处理器的内存中的存储位置,所述虚拟硬件设备的资源由至少一个物理硬件设备提供;
    当所述第一访问组件确定所述第一地址指示的存储位置属于第二通信设备时,将所述消息中的所述第二地址转换为第三地址,所述第三地址用于指示所述目标硬件设备的地址;
    所述第一访问组件根据所述第一地址,确定第四地址,所述第四地址用于指示所述目标数据在所述目标硬件设备中的存储位置;
    所述第一访问组件向所述第二通信设备的第二访问组件发送第一报文,所述第一报文中包含所述第三地址和所述第四地址,以使所述第二访问组件根据所述第三地址和所述第四地址读取或写入所述目标数据。
  18. 根据利要求17所述的方法,其特征在于,所述第一访问组件确定所述第一地址指示的存储位置属于所述第二通信设备的所述目标硬件设备,包括:
    所述第一访问组件根据存储的资源配置信息和所述第一地址,确定所述消息的传输对象为所述第二通信设备的所述目标硬件设备,所述资源配置信息包含所述至少一个硬件设备中每个硬件设备对应的存储地址范围。
  19. 根据权利要求17或18所述方法,其特征在于,所述第一通信设备的所述第一访问组件和所述第二通信设备的所述第二访问组件通过网络通信,所述第一报文为网络报文。
  20. 根据权利要求17至19中任一所述方法,其特征在于,所述第一访问组件将所述第二地址转换为第三地址之前,还包括:
    所述第一访问组件确定所述目标硬件设备的指示信息;
    所述第一访问组件将所述目标硬件设备的指示信息添加至所述第二地址中,得到所述第三地址;
    所述第一访问组件根据所述第二地址和所述第三地址生成第一映射表;
    则所述第一访问组件将所述第二地址转换为第三地址,包括:
    根据所述第一映射表将所述第二地址转换为所述第三地址。。
  21. 根据权利要求17至20中任一所述方法,其特征在于,所述目标硬件设备的指示信息包括:所述目标硬件设备的标识,和/或,所述第二通信设备中所述目标硬件设备所连接的单板的标识。
  22. 根据权利要求17至21中任一所述方法,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
  23. 根据权利要求17至22中任一所述方法,其特征在于,当所述至少一个硬件设备的数量为一个时,所述第四地址与所述第一地址相同;
    当所述至少一个硬件设备的数量为多个时,所述第一访问组件根据所述第一地址,确定所述第四地址,包括:
    所述第一访问组件根据第二映射表,将所述第一地址转换为所述第四地址,所述第二映射表用于描述:指示所述虚拟硬件设备的存储位置的存储地址与指示所述目标硬件设备的存储位置的存储地址之间的映射关系。
  24. 一种消息传输方法,用于通信系统中的第二通信设备向第三通信设备发送消息,其中,所述通信系统中的每个通信设备均包括处理器、访问组件和硬件设备,其特征在于,所述方法包括:
    第二通信设备的第二访问组件接收第一通信设备中的第一访问组件发送的第一报文;所述第一报文中包含第三地址和第四地址,所述第三地址用于指示属于所述通信系统中第二通信设备的目标硬件设备,所述第四地址用于指示目标数据在目标硬件设备的中的存储位置;
    所述第二访问组件确定所述第三地址指示的所述目标硬件设备;
    所述第二访问组件向所述目标硬件设备传输包含第三地址和所述第四地址的第一消息,以使所述目标硬件设备根据所述第三地址和所述第四地址读取或写入所述目标数据。
  25. 根据权利要求24所述方法,其特征在于,所述第二通信设备的所述第二访问组件和所述第一通信设备的所述第一访问组件通过网络通信,所述第一报文为网络报文。
  26. 根据权利要求24或25所述方法,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
  27. 一种第一访问组件,其特征在于,所述第一访问组件应用于第一通信设备,所述第一通信设备为通信系统中任意一个通信设备,所述通信系统中包括多个通信设备,每个通信设备包含处理器、访问组件和硬件设备,所述第一访问组件包括:
    通信单元,用于获取所述第一通信设备的处理器传输的消息;其中,所述消息中包含第一地址和第二地址,所述第一地址用于指示目标数据在虚拟硬件设备中的存储位置,所述第二地址用于指示所述目标数据在所述第一通信设备的处理器的内存中的存储位置,所述虚拟硬件设备的资源由至少一个硬件设备提供;
    处理单元,用于当确定第一地址指示的存储位置属于第二通信设备的目标硬件设备时,将所述消息中的所述第二地址转换为第三地址,所述第三地址用于指示所述目标硬件设备的地址;和根据所述第一地址,确定第四地址,所述第四地址用于指示所述目标数据在所述目标硬件设备中的存储位置;
    所述通信单元,还用于:向所述第二通信设备的第二访问组件发送第一报文,所述第一报文中包含所述第三地址和所述第四地址,以使所述第二访问组件根据所述第三地址和所述第四地址读取或写入所述目标数据。
  28. 根据利要求27所述的第一访问组件,其特征在于,所述处理单元,在确定所述第一地址指示的存储位置属于所述第二通信设备的所述目标硬件设备时,具体用于:
    根据存储的资源配置信息和所述第一地址确定所述消息的传输对象为所述第二通信设备的所述目标硬件设备,所述资源配置信息包含所述至少一个硬件设备中每个硬 件设备对应的存储地址范围。
  29. 根据权利要求27或28所述第一访问组件,其特征在于,所述第一通信设备的所述第一访问组件和所述第二通信设备的所述第二访问组件通过网络通信,所述第一报文为网络报文。
  30. 根据权利要求27至29中任一所述第一访问组件,其特征在于,所述处理单元,还用于:在将所述第二地址转换为第三地址之前,确定所述目标硬件设备的指示信息;
    将所述目标硬件设备的指示信息添加至所述第二地址中,得到所述第三地址;
    根据所述第二地址和所述第三地址生成第一映射表;
    则所述处理单元将所述消息中的所述第二地址转换为第三地址,包括:
    根据所述第一映射表将所述第二地址转换为第三地址。
  31. 根据权利要求27至30中任一所述第一访问组件,其特征在于,所述目标硬件设备的指示信息包括:所述目标硬件设备的标识,和/或,所述第二通信设备中所述目标硬件设备所连接的单板的标识。
  32. 根据权利要求27至30中任一所述第一访问组件,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
  33. 根据权利要求27至32中任一所述第一访问组件,其特征在于,当所述至少一个硬件设备的数量为一个时,所述第四地址与所述第一地址相同;
    当所述至少一个硬件设备的数量为多个时,所述处理单元,在根据所述第一地址,确定所述第四地址时,具体用于:
    根据第二映射表,将所述第一地址转换为所述第四地址,所述第二映射表用于描述:指示所述虚拟硬件设备的存储位置的存储地址与指示所述目标硬件设备的存储位置的存储地址之间的映射关系。
  34. 一种第二访问组件,其特征在于,所述第二访问组件应用于第二通信设备,所述第二通信设备为通信系统中任意一个通信设备,所述通信系统中包括多个通信设备,每个通信设备包括处理器、访问组件和硬件设备,所述第二访问组件包括:
    通信单元,用于接收第一通信设备中的第一访问组件发送的第一报文;其中,所述第一报文中包含第三地址和第四地址,所述第三地址用于指示属于所述第二通信设备的目标硬件设备,所述第四地址用于指示目标数据在目标硬件设备的中的存储位置;
    处理单元,用于确定所述第三地址指示的所述目标硬件设备;
    所述通信单元,还用于向所述目标硬件设备传输包含第三地址和所述第四地址的第一消息,以使所述目标硬件设备根据所述第三地址和所述第四地址读取或写入所述目标数据。
  35. 根据权利要求34所述第二访问组件,其特征在于,所述第二通信设备的所述第二访问组件和所述第一通信设备的所述第二访问组件通过网络通信,所述第一报文为网络报文。
  36. 根据权利要求34或35所述第二访问组件,其特征在于,所述第一访问组件为现场可编程门阵列FPGA,所述第二访问组件为FPGA。
  37. 一种通信设备,其特征在于,所述通信设备包括处理器、访问组件和硬件设 备,其中,所述访问组件用于实现17至23中任一所述方法。
  38. 一种通信设备,其特征在于,所述通信设备包括处理器、访问组件和硬件设备,其中,所述访问组件用于实现24至26中任一所述方法。
PCT/CN2019/088918 2018-06-06 2019-05-29 资源池的管理方法、装置、资源池控制单元和通信设备 WO2019233322A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980000758.6A CN110809760B (zh) 2018-06-06 2019-05-29 资源池的管理方法、装置、资源池控制单元和通信设备
US17/096,573 US11507426B2 (en) 2018-06-06 2020-11-12 Resource pool management method and apparatus, resource pool control unit, and communications device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810576339.4A CN108984465B (zh) 2018-06-06 2018-06-06 一种消息传输方法及设备
CN201810576339.4 2018-06-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/096,573 Continuation US11507426B2 (en) 2018-06-06 2020-11-12 Resource pool management method and apparatus, resource pool control unit, and communications device

Publications (1)

Publication Number Publication Date
WO2019233322A1 true WO2019233322A1 (zh) 2019-12-12

Family

ID=64540858

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/088918 WO2019233322A1 (zh) 2018-06-06 2019-05-29 资源池的管理方法、装置、资源池控制单元和通信设备

Country Status (3)

Country Link
US (1) US11507426B2 (zh)
CN (2) CN108984465B (zh)
WO (1) WO2019233322A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112465371A (zh) * 2020-12-07 2021-03-09 中国工商银行股份有限公司 一种资源数据分配方法、装置及设备

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984465B (zh) 2018-06-06 2021-08-20 华为技术有限公司 一种消息传输方法及设备
CN110022356B (zh) * 2019-03-08 2021-11-30 北京三快在线科技有限公司 分布式系统和具有该分布式系统的无人驾驶设备
CN113924766A (zh) * 2019-03-14 2022-01-11 马维尔亚洲私人有限公司 经由固态驱动器(ssd)之间的连接在ssd之间传输数据
CN111464357A (zh) * 2020-04-01 2020-07-28 武汉虹旭信息技术有限责任公司 资源配置方法及装置
CN111506432A (zh) * 2020-04-30 2020-08-07 中科院计算所西部高等技术研究院 具有ooda多分区io资源池机制的服务器主机
CN113010470B (zh) * 2021-03-30 2023-06-20 上海西井信息科技有限公司 边缘节点远程控制系统、方法、设备及存储介质
CN117296421A (zh) * 2021-05-06 2023-12-26 上海诺基亚贝尔股份有限公司 装置、方法和计算机程序
CN113485789B (zh) * 2021-06-30 2023-03-21 海光信息技术股份有限公司 资源配置方法、装置及计算机架构

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150312960A1 (en) * 2014-04-28 2015-10-29 Samsung Electronics Co., Ltd. Apparatus and method for managing radio resource control connection in wireless communication system supporting device to device scheme
CN105917688A (zh) * 2014-01-21 2016-08-31 高通股份有限公司 用于无线电资源分配的设备到设备发现信令
CN106105367A (zh) * 2014-03-19 2016-11-09 高通股份有限公司 设备到设备通信的调度
CN108984465A (zh) * 2018-06-06 2018-12-11 华为技术有限公司 一种消息传输方法及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
CN102651729A (zh) * 2011-02-23 2012-08-29 中国移动通信集团公司 一种资源配置方法和装置
CN104580338B (zh) * 2013-10-29 2018-09-07 华为技术有限公司 一种业务处理方法、系统及设备
WO2016101288A1 (zh) * 2014-12-27 2016-06-30 华为技术有限公司 一种远程直接数据存取方法、设备和系统
KR101977726B1 (ko) * 2015-11-17 2019-05-14 한국전자통신연구원 가상 데스크탑 서비스 방법 및 장치
CN105511810A (zh) * 2015-12-07 2016-04-20 中国建设银行股份有限公司 一种虚拟化资源池的控制方法和装置
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105917688A (zh) * 2014-01-21 2016-08-31 高通股份有限公司 用于无线电资源分配的设备到设备发现信令
CN106105367A (zh) * 2014-03-19 2016-11-09 高通股份有限公司 设备到设备通信的调度
US20150312960A1 (en) * 2014-04-28 2015-10-29 Samsung Electronics Co., Ltd. Apparatus and method for managing radio resource control connection in wireless communication system supporting device to device scheme
CN108984465A (zh) * 2018-06-06 2018-12-11 华为技术有限公司 一种消息传输方法及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112465371A (zh) * 2020-12-07 2021-03-09 中国工商银行股份有限公司 一种资源数据分配方法、装置及设备
CN112465371B (zh) * 2020-12-07 2024-01-05 中国工商银行股份有限公司 一种资源数据分配方法、装置及设备

Also Published As

Publication number Publication date
CN108984465B (zh) 2021-08-20
CN110809760B (zh) 2022-09-02
CN110809760A (zh) 2020-02-18
CN108984465A (zh) 2018-12-11
US11507426B2 (en) 2022-11-22
US20210064438A1 (en) 2021-03-04

Similar Documents

Publication Publication Date Title
WO2019233322A1 (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
EP3754511A1 (en) Multi-protocol support for transactions
US9645956B2 (en) Delivering interrupts through non-transparent bridges in a PCI-express network
US10348830B1 (en) Virtual non-volatile memory express drive
US9936024B2 (en) Storage sever with hot plug and unplug capabilities
US8095701B2 (en) Computer system and I/O bridge
US9858102B2 (en) Data path failover method for SR-IOV capable ethernet controller
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
US11829309B2 (en) Data forwarding chip and server
WO2023093418A1 (zh) 数据迁移方法、装置及电子设备
AU2015402888A1 (en) Computer device and method for reading/writing data by computer device
US20240061802A1 (en) Data Transmission Method, Data Processing Method, and Related Product
US11132215B2 (en) Techniques to facilitate out of band management in a virtualization environment
WO2020259269A1 (zh) 转发报文的方法、中间设备和计算机设备
US11929926B2 (en) Traffic service threads for large pools of network addresses
WO2023051248A1 (zh) 一种数据访问系统、方法及相关设备
US20220321434A1 (en) Method and apparatus to store and process telemetry data in a network device in a data center
WO2023051504A1 (zh) 应用升级方法、装置、网卡和设备
US20240020174A1 (en) Memory disaggregation in a multi-node environment
US20180181440A1 (en) Resource allocation system, apparatus allocation controller and apparatus recognizing method
CN117971135A (zh) 存储设备的访问方法、装置、存储介质和电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19814679

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19814679

Country of ref document: EP

Kind code of ref document: A1