WO2024093958A1 - Access method and apparatus for storage pool - Google Patents

Access method and apparatus for storage pool Download PDF

Info

Publication number
WO2024093958A1
WO2024093958A1 PCT/CN2023/128077 CN2023128077W WO2024093958A1 WO 2024093958 A1 WO2024093958 A1 WO 2024093958A1 CN 2023128077 W CN2023128077 W CN 2023128077W WO 2024093958 A1 WO2024093958 A1 WO 2024093958A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
storage pool
data
device cluster
application program
Prior art date
Application number
PCT/CN2023/128077
Other languages
French (fr)
Chinese (zh)
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
Priority claimed from CN202310330666.2A external-priority patent/CN118034579A/en
Application filed by 华为云计算技术有限公司 filed Critical 华为云计算技术有限公司
Publication of WO2024093958A1 publication Critical patent/WO2024093958A1/en

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode

Definitions

  • Embodiments of the present application relate to the computer field, and in particular, to a method and device for accessing a storage pool.
  • the engine layer of some computing device clusters can be deployed based on virtual machines
  • the computing device cluster accesses the storage resources of the storage pool through cloud disks.
  • the expansion of the computing device cluster requires the simultaneous addition of cloud disks, and different computing nodes can only access their corresponding cloud disks, resulting in insufficient flexibility in the computing device cluster's access to the storage pool and poor expansion elasticity.
  • Embodiments of the present application provide a method and device for accessing a storage pool, which are used to improve the flexibility of accessing a storage pool.
  • the first aspect of the embodiment of the present application is a method for accessing a storage pool.
  • the method can be executed by a computing device, or by a component of a computing device cluster, such as a processor, chip or chip system of a computing device cluster, or by a logic module or software that can realize all or part of the functions of a computing device cluster.
  • the method provided in the first aspect includes the following steps: the computing device cluster provides an application program interface, the application program interface is used for computing nodes in the computing device cluster to access the storage pool through the application program interface, and the software toolkit SDK of the application program interface is deployed on a virtual machine or container of the computing device cluster.
  • the computing device cluster sends a storage pool access request to a data forwarding proxy module by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster.
  • the computing device cluster sends a storage pool access request to the storage node in the storage pool through the data forwarding proxy module.
  • the virtual machine or container of the computing node in the computing device cluster can deploy a software toolkit of the application program interface, so that the virtual machine or container of the computing node can access any storage node in the storage pool based on the application program interface.
  • the virtual machine or container of the computing node can access any storage node in the storage pool based on the application program interface.
  • the computing device cluster calls the application program interface and sends a storage pool access request to the data forwarding agent module of the data processing unit through a direct memory access DMA controller, without the participation of the central processing unit of the computing node, thereby realizing direct transmission of the storage pool access request.
  • the computing nodes of the computing device cluster can send storage pool access requests to the data forwarding proxy module through direct memory access (DMA), thereby improving the communication efficiency between the computing nodes and the data processing unit and improving the input and output (IO) performance of the computing device cluster.
  • DMA direct memory access
  • the computing device cluster when the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface, the computing device cluster sends a log data write request to the data forwarding proxy module by calling an application program interface.
  • the log data write request carries a log identifier (log ID), and the log identifier is used to indicate the data write location in the storage pool of the data forwarding proxy module.
  • the virtual machine of the computing device can send a log data write request to the data forwarding proxy module through the application program interface, thereby improving the flexibility of the computing device cluster in writing log data in the storage pool and improving the log data of the computing device cluster in the storage pool. Data writing efficiency.
  • the computing device cluster in a process in which a computing device cluster sends a storage pool access request to a data forwarding proxy module by calling an application program interface, sends a log data read request to the data forwarding proxy module by calling an application program interface, and the log data read request carries a log identifier, which is used to indicate the data reading position of the data forwarding proxy module in the storage pool.
  • the virtual machine of the computing device in the embodiment of the present application can send a log data read request to the data forwarding proxy module through the application program interface, thereby improving the flexibility of the computing device cluster in reading log data from the storage pool and improving the reading efficiency of the computing device cluster in reading log data from the storage pool.
  • the computing device cluster determines the partition identifier (pt ID) based on the log identifier.
  • the computing device cluster queries the routing table according to the partition identifier to determine one or more storage node identifiers corresponding to the partition identifier.
  • the computing device cluster determines the partition identifier based on the log identifier and the number of partitions, queries the routing table based on the partition identifier, and determines one or more storage node identifiers (disk ID) corresponding to the partition identifier.
  • the computing device can determine the storage node identifier that the computing device cluster wants to access based on the log identifier carried in the storage pool access request, thereby enabling the computing node to accurately determine the location of the storage node to be accessed, thereby improving the feasibility of the computing device cluster accessing the storage nodes in the storage pool.
  • the data forwarding proxy module is deployed in the data processing unit DPU chip.
  • the computing node can offload the data forwarding process to the data forwarding proxy module of the data processing unit, and the data forwarding proxy module in the data processing unit implements the forwarding of the storage pool access message.
  • the computing node can offload the data forwarding process to the data forwarding proxy module of the data processing unit for execution, thereby improving the processing efficiency of the computing device cluster for computing tasks and also improving the input and output IO performance of the computing device cluster.
  • the application program interface includes a log interface
  • the virtual machine or container of the computing node can call the log interface to write log data to the storage pool, or the virtual machine of the computing node can call the log interface to read log data from the storage node of the storage pool.
  • the application program interface can be multiple types of application program interfaces, wherein the application program interface includes a log interface.
  • the virtual machine or container of the computing node can call the log interface to read log data in the storage node of the storage pool, thereby improving the reading and writing efficiency of the computing device cluster for log data.
  • the second aspect of the embodiment of the present application provides a storage pool access device, the device includes a transceiver unit and a processing unit.
  • the processing unit is used to provide an application program interface
  • the application program interface is used for computing nodes in a computing device cluster to access the storage pool through the application program interface
  • the software toolkit SDK of the application program interface is deployed on a virtual machine or container of the computing device cluster.
  • the transceiver unit is used to send a storage pool access request to a data forwarding proxy module by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster.
  • the transceiver unit is also used to send a storage pool access request to a storage node in the storage pool through the data forwarding proxy module.
  • the transceiver unit is specifically configured to call an application program interface and send a storage pool access request to the forwarding agent module through a direct memory access DMA controller.
  • the transceiver unit is specifically used to send a data write request to the data forwarding proxy module by calling an application program interface, and the data write request carries a log identifier, which is used to indicate the data write location of the data forwarding proxy module in the storage pool.
  • the transceiver unit is specifically used to call an application program interface to send a data read request to the data forwarding proxy module, the data read request carries a log identifier, and the log identifier is used to indicate a data reading position of the data forwarding proxy module in the storage pool.
  • the processing unit is further configured to determine a partition identifier based on the log identifier, query a routing table according to the disk table identifier, and determine one or more storage node identifiers corresponding to the partition identifier.
  • the data forwarding proxy module is deployed on a data processing unit DPU chip.
  • a third aspect of an embodiment of the present application provides a computing device cluster, which includes one or more computing devices, and the computing device includes a processor, which is coupled to a memory, and the processor is used to store instructions.
  • the cloud server executes the method described in the first aspect or any possible implementation method of the first aspect.
  • a fourth aspect of an embodiment of the present application provides a computer-readable storage medium having instructions stored thereon. When the instructions are executed, the computer executes the method described in the first aspect or any possible implementation of the first aspect.
  • a fifth aspect of an embodiment of the present application provides a computer program product, which includes instructions. When the instructions are executed, the computer implements the method described in the first aspect or any possible implementation method of the first aspect.
  • beneficial effects that can be achieved by any of the computing device clusters, computer-readable media, or computer program products provided above can refer to the beneficial effects in the corresponding methods, and will not be repeated here.
  • FIG1 is a schematic diagram of a system architecture of a storage pool access system provided in an embodiment of the present application.
  • FIG2 is a schematic diagram of a flow chart of a storage pool access method provided in an embodiment of the present application.
  • FIG3 is a schematic diagram of a storage pool access method provided in an embodiment of the present application.
  • FIG4 is a schematic diagram of another storage pool access method provided in an embodiment of the present application.
  • FIG5 is a schematic diagram of another storage pool access method provided in an embodiment of the present application.
  • FIG6 is a schematic diagram of a storage pool access device provided in an embodiment of the present application.
  • FIG7 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application.
  • FIG8 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application.
  • FIG. 9 is a schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application.
  • Embodiments of the present application provide a method and apparatus for accessing a storage pool, which are used to improve the flexibility of a computing device cluster in accessing a storage pool.
  • words such as “exemplary” or “for example” are used to indicate examples, illustrations or descriptions. Any embodiment or design described as “exemplary” or “for example” in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as “exemplary” or “for example” is intended to present related concepts in a specific way.
  • a virtual machine is a complete computer system that is simulated by software and has complete hardware system functions and runs in a completely isolated environment. Any work that can be done in a server can be done in a virtual machine.
  • part of the hard disk and memory capacity of the physical machine is used as the hard disk and memory capacity of the virtual machine.
  • Each virtual machine has an independent hard disk and operating system, and the user of the virtual machine can operate the virtual machine just like using a server.
  • Remote dictionary server is an open source high-performance key-value database developed in C language. Redis can store data in memory and is often used as a distributed cache to improve the performance of reading or writing data.
  • a data processing unit is a dedicated processor built around data. It supports a variety of infrastructure layer services, such as storage, security, and quality of service. DPU enhances the computing device's processing capabilities for network security and network protocols as well as distributed storage.
  • the storage pool access system 100 includes a computing device cluster 101 and a storage pool 102, wherein the computing device cluster 101 includes a computing node 1011 and a data processing unit 1012, and the computing node 1011 in the computing device cluster 101 can be one or more computing nodes, each computing node corresponds to a data processing unit 1012, and the storage pool 102 includes one or more storage nodes 1021.
  • the specific functions of each part of the storage pool access system 100 provided by the implementation of the present application are introduced below.
  • the computing device cluster 101 is used to process the computing tasks of the user and to transmit data to the storage nodes in the storage pool 101.
  • the computing device cluster 101 includes one or more computing nodes 1011.
  • the computing nodes 1011 can be computing devices that constitute the computing device cluster 101.
  • the computing nodes 1011 are, for example, physical servers or desktop computers.
  • the computing nodes 1011 are provided with processors and memory.
  • the computing nodes 1011 are running applications and clients.
  • the client is used to receive data access requests triggered by the application.
  • the data processing unit 1012 interacts with the storage node 102 and sends a data access request to the storage node 102.
  • One or more virtual machines or containers may also be deployed on the computing node 1011.
  • This application takes the virtual machine as an example. Users can process computing tasks based on the virtual machine and persist the data generated by executing the computing tasks to the storage pool 102.
  • the virtual machine can also provide users with a variety of data services, such as remote dictionary service (remote dictionary server, Redis).
  • the virtual machine can call the application interface to send the data generated by the Redis service to the data processing unit 1012, which is forwarded to the storage pool 102 for data persistence.
  • the virtual machine can also call the application interface to store the data of the storage pool 102 in the memory of the computing node 1011.
  • the data processing unit 1012 is used to process the interaction process between the computing node 101 and the storage pool 102.
  • the data processing unit 1012 includes a data forwarding agent module, which can forward the storage pool access request sent by the virtual machine in the computing node 101 to the storage node of the storage pool 102.
  • the data processing unit 1012 can be integrated into the computing device as a chip, or it can be an independent device, which is not specifically limited.
  • the storage pool 102 is used to store data sent by the computing device cluster 101.
  • the storage pool 102 includes one or more storage nodes 1021, such as servers, desktop computers and hard disks.
  • the storage node 1021 includes one or more controllers and one or more hard disks.
  • the hard disk is used to store data, and the hard disk can be a magnetic disk or other types of storage media, such as a solid-state drive.
  • the controller is used to write data to the hard disk or read data from the hard disk according to the data access request sent by the computing node 1011. In the process of reading and writing data, the controller needs to convert the address carried in the storage pool access request into an address that the hard disk can recognize.
  • Figure 2 is a flow chart of a storage pool access method provided by an embodiment of the present application.
  • the storage pool access method provided by an embodiment of the present application includes the following steps:
  • the computing device cluster provides an application program interface, and the application program interface is used for computing nodes in the computing device cluster to access the storage pool through the application program interface.
  • the computing device cluster provides an application program interface, which is used for computing nodes in the computing device cluster to access the storage pool through the application program interface.
  • the software toolkit SDK of the application program interface is deployed on the virtual machine or container of the computing node in the computing device cluster, and the virtual machine of the computing node can call the application program interface to communicate with the data processing unit in the computing device cluster.
  • the data service in the embodiment of the present application includes a Redis service, which can cache data in the storage pool.
  • the Redis service can call an application program interface in the virtual machine to read the data in the storage pool into the memory, or the Redis service can call an application program interface in the virtual machine to write the data in the memory to the storage pool to achieve data persistence.
  • the application program interface in the embodiment of the present application includes a log interface, an application program interface for transmitting log data, and the virtual machine of the computing node can call the log interface to write the log data to the storage pool.
  • the log data is record oriented and append-only data.
  • the log data is not stored in the form of a single byte, but is recorded in the form of an indivisible data block, and the log data can only be appended and cannot be modified.
  • Figure 3 is a schematic diagram of calling an application program interface in an embodiment of the present application.
  • a software toolkit of a log interface is installed in the virtual machine of a computing node in a computing device cluster, and the software tool can provide a log interface, and the virtual machine accesses the storage pool by calling the log interface.
  • the virtual machine VM1 appends the log data generated by the Redis service to the storage pool by calling the log interface.
  • the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface.
  • the computing device cluster sends a storage pool access request to the data forwarding proxy module of the data processing unit by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster.
  • the virtual machine of the computing node in the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling the log interface.
  • the storage pool access request is used to request to write or read log data in the storage pool, and the data forwarding proxy module can process the forwarding process of the log data.
  • the data forwarding proxy module is deployed in a data processing unit DPU chip, that is, the computing node can offload the data forwarding process to the data processing unit, and the data processing unit implements the forwarding of the storage pool access request.
  • the data processing unit DPU chip can be embedded in the network card of the computing device cluster, without specific limitation.
  • the computing node can offload the data forwarding process to the data forwarding proxy module of the data processing unit for execution, thereby improving the processing efficiency of the computing device cluster for computing tasks, improving the data transmission efficiency of the data processing unit, and improving the IO performance of the computing device cluster.
  • the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface.
  • the virtual machine of the computing node in the computing device cluster calls the application program interface and sends a storage pool access request to the data forwarding agent module through the direct memory access DMA controller.
  • the virtual machine of the computing node calls the log interface and sends the log data from the memory of the computing node directly to the data forwarding agent module of the data processing unit through the direct memory access DMA controller, without the participation of the central processing unit of the computing node, thereby realizing direct transmission of log data.
  • the virtual machine of the computing node in the computing device cluster sends a storage pool access request to the forwarding proxy module of the data processing unit by calling the log interface, and the storage pool access request includes a log data write request and a log data read request.
  • the Redis service of the virtual machine VM1 sends the log data write request to the data forwarding proxy module of the data processing unit by calling the log interface, and the virtual machine VM1 can send the log data write request to the data forwarding proxy module by direct memory access.
  • the computing node can send a storage pool access request to the data forwarding agent module by means of direct memory access DMA, thereby improving the communication efficiency between the computing node and the data processing unit and further improving the IO performance of the computing device cluster.
  • the computing device cluster when the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface, the computing device cluster sends a log data write request to the data forwarding proxy module by calling an application program interface.
  • the log data write request carries a log identifier (log ID).
  • log ID log identifier
  • the log identifier is used to indicate the data write location in the storage pool of the data forwarding proxy module, such as a storage node identifier.
  • Figure 4 is a schematic diagram of a storage pool data writing process provided by an embodiment of the present application.
  • the virtual machine of the computing node sends the log data generated by the Redis service to the data forwarding proxy module through the log interface.
  • the virtual machine wants to send 2M of log data, where the log data contains 4 data blocks, and the size of each log data block is 512k.
  • the service quality QOS control module of the computing node first checks whether the current data traffic is overloaded. If the current data traffic is overloaded, the QOS control module rejects the log data write request.
  • the verification module of the computing node continues to perform cyclic redundancy check code CRC verification on the log data write request. If the verification fails, the verification module rejects the log data write request. If the verification passes, the computing node performs erasure code (EC) encoding on the log data in the log data write request through the encoding module to generate encoded data blocks, which include log data blocks and verification blocks. For example, the computing node obtains 6 data blocks after performing EC encoding on the log data in the log data write request through the encoding module, of which 4 data blocks are log data blocks and 2 data blocks are verification blocks. The computing device sends the EC-encoded data blocks to the data forwarding agent module according to the log data write request, and the data forwarding agent module sends them to the storage nodes of the storage pool.
  • EC erasure code
  • the computing device cluster determines the partition identifier (pt ID) based on the log identifier. Specifically, the computing device cluster determines the partition identifier based on the log identifier (log ID) and the partition number (pt num), and the partition identifier is used to query the storage node identifier (disk ID) corresponding to the partition identifier in the routing table. The computing device cluster can query the routing table based on the partition identifier to determine one or more storage node identifiers corresponding to the partition identifier.
  • the computing node calculates the partition identifier according to the log identifier and the number of partitions, queries the routing table according to the partition identifier, and determines the storage node identifier corresponding to the partition identifier.
  • the computing device sends the data write request to the buffer corresponding to the storage node identifier in the data forwarding proxy module according to the storage node identifier.
  • the computing device cluster can determine the partition identifier according to the log identifier and the number of partitions.
  • the computing device can determine the storage node identifier that the computing device cluster wants to access based on the log identifier carried in the storage pool access request, thereby enabling the computing node to accurately determine the location of the storage node to be accessed, thereby improving the accuracy of the computing device cluster accessing the storage nodes in the storage pool.
  • the computing device cluster in the process of the computing device cluster sending a storage pool access request to the data forwarding proxy module by calling an application program interface, the computing device cluster sends a data read request to the data forwarding proxy module by calling an application program interface, and the data read request carries a log identifier, which is used to indicate the data reading position of the data forwarding proxy module in the storage pool, such as the identifier of the storage node.
  • Figure 5 is a schematic diagram of a process of reading data from a storage pool provided by an embodiment of the present application.
  • the Redis service of the virtual machine in the computing node needs to read log data from the storage pool.
  • the service quality QOS control module of the computing node first checks whether the current data traffic is overloaded. If the current data traffic is overloaded, the QOS control module rejects the log data read request of the Redis service.
  • the splitter of the computing node determines the log data block corresponding to the log data to be read by the log data read request, determines the reading position of each log data in the storage pool according to the log identifier of the log data read request, and sends the log data read request corresponding to each log data block to the data forwarding agent module of the data processing unit.
  • the log data read request sent by the computing node carries an offset (offset) and a length (len), which are used to indicate the specific location of the log data in the storage node, such as the storage address of the log data in the storage node.
  • the computing node sends the log data read request to the data forwarding agent module through the memory direct access DMA controller.
  • the computing device cluster sends a storage pool access request to a storage node in the storage pool through a data forwarding proxy module.
  • the computing device cluster sends a storage pool access request to the storage node in the storage pool through the data forwarding proxy module. Specifically, after the data forwarding proxy module in the data processing unit receives the storage pool access request sent by the virtual machine of the computing node, it sends the storage pool access request to the controller corresponding to the storage node according to the storage pool access request.
  • the data forwarding agent module in the data processing unit can transmit data with the storage nodes in the storage pool through the transmission control protocol (TCP).
  • TCP transmission control protocol
  • the storage node controller After receiving the storage pool access request, the storage node controller writes data to the hard disk or reads data from the hard disk according to the storage pool access request. Specifically, after receiving the log data write request, the storage node controller writes the log data to the hard disk according to the log data write request, and after receiving the log data read request, the storage node controller reads the log data in the hard disk according to the log data read request.
  • the data forwarding agent module of the data processing unit receives the storage pool access request sent by the virtual machine of the computing node through the log interface, the data forwarding processing module forwards the storage pool access request to the IO controller corresponding to the storage node in the storage pool.
  • the storage pool access request includes a log data write request and a log data read request.
  • the Redis service in the virtual machine VM1 sends log data to the data forwarding agent module of the data processing unit by calling the log interface.
  • the data forwarding agent module forwards the log data to the corresponding controller of the storage node in the storage pool, and the controller of the storage node writes the log data to the hard disk of the storage node.
  • the data forwarding proxy module of the data processing unit receives the data write request sent by the computing node
  • the data forwarding proxy module sends the log data write request to the storage pool.
  • the data forwarding proxy module sends the log data write request to the storage node corresponding to the storage node identifier in the storage pool according to the storage node identifier, thereby writing the log data to the corresponding storage node and completing the persistence of the log data.
  • the data forwarding proxy module of the data processing unit receives the data read request sent by the computing node
  • the data forwarding proxy module sends the log data read request to the storage pool.
  • the data forwarding proxy module sends the log data read request to the storage node corresponding to the storage node identifier in the storage pool.
  • the computing device After the computing node reads the log data block from different storage nodes, the computing device performs a cyclic redundancy check code CRC check on the read log data block, and merges the log data blocks through a merge module to obtain the log data to be read.
  • the virtual machine or container of the computing node in the embodiments of the present application can deploy a software toolkit of the application program interface, so that the virtual machine or container of the computing node can access any storage node in the storage pool based on the application program interface, thereby improving the flexibility of the computing device cluster to access individual storage nodes in the storage pool.
  • the above describes the storage pool access method provided by the embodiment of the present application.
  • the following describes the storage pool access device provided by the embodiment of the present application.
  • Figure 6 is a schematic diagram of the structure of a storage pool access device provided in an embodiment of the present application.
  • the storage pool access device is used to implement the various steps performed by the computing node in the above embodiments, and the storage pool access device 600 includes a transceiver unit 601 and a processing unit 602.
  • the processing unit 602 is used to provide an application program interface, which is used by computing nodes in the computing device cluster to access the storage pool through the application program interface, and the software tool kit SDK of the application program interface is deployed on the virtual machine or container of the computing device cluster.
  • Unit 601 is used to send a storage pool access request to a data forwarding proxy module by calling an application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster.
  • the transceiver unit 601 is also used to send a storage pool access request to a storage node in the storage pool through the data forwarding proxy module.
  • the transceiver unit 601 is specifically configured to call an application program interface and send a storage pool access request to the forwarding agent module through a direct memory access DMA controller.
  • the transceiver unit 601 is specifically used to send a data write request to the data forwarding proxy module by calling an application program interface.
  • the data write request carries a log identifier, which is used to indicate the data write location of the data forwarding proxy module in the storage pool.
  • the transceiver unit 601 is specifically used to call an application program interface to send a data read request to the data forwarding proxy module, and the data read request carries a log identifier, which is used to indicate the data reading position of the data forwarding proxy module in the storage pool.
  • the processing unit 602 is further configured to determine a partition identifier based on the log identifier, query a routing table according to the disk table identifier, and determine one or more storage node identifiers corresponding to the partition identifier.
  • the data forwarding proxy module is deployed on a data processing unit DPU chip.
  • each unit in the above device can be fully or partially integrated into one physical entity, or they can be physically separated.
  • the units in the device can all be implemented in the form of software calling through processing elements; they can also be all implemented in the form of hardware; some units can also be implemented in the form of software calling through processing elements, and some units can be implemented in the form of hardware.
  • each unit can be a separately established processing element, or it can be integrated in a certain chip of the device.
  • it can also be stored in the memory in the form of a program, and called and executed by a certain processing element of the device. The function of the unit.
  • each step of the above method or each unit above can be implemented by an integrated logic circuit of hardware in the processor element or in the form of software calling through a processing element.
  • Figure 7 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application.
  • the computing device 700 includes: a processor 701, a memory 702, a communication interface 703 and a bus 704, and the processor 701, the memory 702 and the communication interface 703 are coupled through a bus (not marked in the figure).
  • the memory 702 stores instructions, and when the execution instructions in the memory 702 are executed, the computing device 700 executes the method executed by the computing node in the above method embodiment.
  • the computing device 700 may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASIC), or one or more microprocessors (digital signal processors, DSP), or one or more field programmable gate arrays (FPGA), or a combination of at least two of these integrated circuit forms.
  • ASIC application specific integrated circuits
  • DSP digital signal processors
  • FPGA field programmable gate arrays
  • a unit in the device can be implemented in the form of a processing element scheduler
  • the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program.
  • CPU central processing unit
  • these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).
  • Processor 701 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof.
  • a general-purpose processor may be a microprocessor or any conventional processor.
  • the memory 702 may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories.
  • the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EPROM), or an electrically erasable programmable read-only memory (EPROM).
  • the volatile memory may be a random access memory (RAM), which is used as an external cache.
  • RAM dynamic random access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • DDR SDRAM double data rate synchronous DRAM
  • ESDRAM enhanced synchronous DRAM
  • SLDRAM synchronous link DRAM
  • DR RAM direct rambus RAM
  • the memory 702 stores executable program codes, and the processor 701 executes the executable program codes to respectively implement the functions of the transceiver unit and the processing unit, thereby implementing the storage pool access method. That is, the memory 702 stores instructions for executing the storage pool access method.
  • the communication interface 703 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 700 and other devices or a communication network.
  • a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 700 and other devices or a communication network.
  • the bus 704 may also include a power bus, a control bus, and a status signal bus.
  • the bus may be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc.
  • PCIe peripheral component interconnect express
  • EISA extended industry standard architecture
  • Ubus or UB unified bus
  • CXL compute express link
  • CCIX cache coherent interconnect for accelerators
  • FIG8 is a schematic diagram of a computing device cluster provided in an embodiment of the present application.
  • the computing device cluster 800 includes at least one computing device 700 .
  • the computing device cluster 800 includes at least one computing device 700.
  • the memory 702 in one or more computing devices 700 in the computing device cluster 800 may store the same instructions for executing the above storage pool access method.
  • the memory 702 of one or more computing devices 700 in the computing device cluster 800 may also store partial instructions for executing the above storage pool access method.
  • the combination of one or more computing devices 700 may jointly execute instructions for executing the above storage pool access method.
  • the memory 702 in different computing devices 700 in the computing device cluster 800 may store different instructions, which are respectively used to execute part of the functions of the above storage pool access device. That is, the instructions stored in the memory 702 in different computing devices 700 may implement the functions of one or more modules in the transceiver unit and the processing unit.
  • one or more computing devices 700 in the computing device cluster 800 may be connected via a network, which may be a wide area network or a local area network.
  • Figure 9 is a schematic diagram of a computer device in a computer cluster provided by an embodiment of the present application being connected through a network.
  • two computing devices 700A and 700B are connected through a network.
  • the network is connected through a communication interface in each computing device.
  • the memory in the computing device 700A stores instructions for executing the functions of the transceiver module
  • the memory in the computing device 700B stores instructions for executing the functions of the processing module.
  • a computer-readable storage medium in which computer-executable instructions are stored.
  • the processor of the device executes the computer-executable instructions
  • the device executes the method executed by the computing device in the above method embodiment.
  • a computer program product in another embodiment, includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium.
  • the processor of the device executes the computer-executable instructions
  • the device executes the method executed by the computing device in the above method embodiment.
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative, for example, the division of the units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system. Or some features may be ignored or not performed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, which may be electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk and other media that can store program code.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Disclosed in embodiments of the present application is an access method for a storage pool, for use in improving the flexibility of accessing a storage pool by a computing device cluster. The method in the embodiments of the present application comprises: a computing device cluster provides an application program interface, wherein the application program interface is used by a computing node in the computing device cluster to access a storage pool by means of the application program interface, and a software development kit (SDK) of the application program interface is deployed on a virtual machine or a container of the computing device cluster; the computing device cluster sends a storage pool access request to a data forwarding agent module by calling the application program interface, wherein the data forwarding agent module is used for processing a data forwarding process of the computing device cluster; and the computing device cluster sends the storage pool access request to a storage node in the storage pool by means of the data forwarding agent module.

Description

一种存储池的访问方法以及装置A storage pool access method and device
本申请要求于2022年11月1日提交国家知识产权局、申请号为202211366811.4、发明名称为“一种存储池访问方法以及装置”的中国专利申请的优先权,以及于2023年3月30日提交国家知识产权局、申请号为202310330666.2、发明名称为“一种存储池的访问方法以及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed with the State Intellectual Property Office on November 1, 2022, with application number 202211366811.4, and invention name “A storage pool access method and device”, and the priority of the Chinese patent application filed with the State Intellectual Property Office on March 30, 2023, with application number 202310330666.2, and invention name “A storage pool access method and device”, the entire contents of which are incorporated by reference in this application.
技术领域Technical Field
本申请实施例涉及计算机领域,尤其涉及一种存储池的访问方法以及装置。Embodiments of the present application relate to the computer field, and in particular, to a method and device for accessing a storage pool.
背景技术Background technique
随着数据存取服务技术的发展,越来越多的计算设备集群利用存储池进行数据的存取。当前计算设备集群在访问存储池的过程中,需要数据服务的引擎层实现计算设备集群对存储的存储和数据提取。With the development of data access service technology, more and more computing device clusters use storage pools to access data. In the process of accessing the storage pool, the current computing device cluster needs the engine layer of the data service to realize the storage and data extraction of the computing device cluster.
目前计算设备集群的引擎层有的基于物理机部署,即计算设备通过物理网络接口访问存储池,当计算设备集群需要向存储池申请新的存储资源时,需要新增物理网络接口,导致计算设备集群无法弹性申请存储资源。Currently, some engine layers of computing device clusters are deployed based on physical machines, that is, computing devices access storage pools through physical network interfaces. When the computing device cluster needs to apply for new storage resources from the storage pool, a new physical network interface needs to be added, resulting in the computing device cluster being unable to flexibly apply for storage resources.
虽然目前有的计算设备集群的引擎层也能够基于虚拟机部署,但计算设备集群通过云盘的方式访问存储池的存储资源,计算设备集群扩容需要同步增加云盘,并且不同计算节点只能访问其对应的云盘,导致计算设备集群访问存储池的不够灵活,扩容弹性差。Although the engine layer of some computing device clusters can be deployed based on virtual machines, the computing device cluster accesses the storage resources of the storage pool through cloud disks. The expansion of the computing device cluster requires the simultaneous addition of cloud disks, and different computing nodes can only access their corresponding cloud disks, resulting in insufficient flexibility in the computing device cluster's access to the storage pool and poor expansion elasticity.
发明内容Summary of the invention
本申请实施例提供了一种存储池的访问方法以及装置,用于提升访问存储池的灵活性。Embodiments of the present application provide a method and device for accessing a storage pool, which are used to improve the flexibility of accessing a storage pool.
本申请实施例第一方面一种存储池的访问方法,该方法可以由计算设备执行,也可以由计算设备集群的部件,例如计算设备集群的处理器、芯片或芯片系统等执行,还可以由能实现全部或部分计算设备集群功能的逻辑模块或软件实现。以计算设备集群执行为例,第一方面提供的方法包括以下步骤:计算设备集群提供应用程序接口,应用程序接口用于计算设备集群中的计算节点通过应用程序接口访问存储池,应用程序接口的软件工具包SDK部署在计算设备集群的虚拟机或容器上。计算设备集群通过调用应用程序接口,向数据转发代理模块发送存储池访问请求,数据转发代理模块用于处理计算设备集群的数据转发进程。计算设备集群通过数据转发代理模块向存储池中的存储节点发送存储池访问请求。The first aspect of the embodiment of the present application is a method for accessing a storage pool. The method can be executed by a computing device, or by a component of a computing device cluster, such as a processor, chip or chip system of a computing device cluster, or by a logic module or software that can realize all or part of the functions of a computing device cluster. Taking the execution of a computing device cluster as an example, the method provided in the first aspect includes the following steps: the computing device cluster provides an application program interface, the application program interface is used for computing nodes in the computing device cluster to access the storage pool through the application program interface, and the software toolkit SDK of the application program interface is deployed on a virtual machine or container of the computing device cluster. The computing device cluster sends a storage pool access request to a data forwarding proxy module by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster. The computing device cluster sends a storage pool access request to the storage node in the storage pool through the data forwarding proxy module.
本申请实施例中计算设备集群中计算节点的虚拟机或容器能够部署应用程程序接口的软件工具包,从而使得计算节点的虚拟机或容器能够基于应用程序接口访问存储池中的任意存储节点,相较于计算设备集群通过物理网络接口访问存储池或者以云盘方式访问存储池,提升了计算设备集群访问存储池中个存储节点的灵活性。In an embodiment of the present application, the virtual machine or container of the computing node in the computing device cluster can deploy a software toolkit of the application program interface, so that the virtual machine or container of the computing node can access any storage node in the storage pool based on the application program interface. Compared with the computing device cluster accessing the storage pool through a physical network interface or accessing the storage pool in a cloud disk manner, the flexibility of the computing device cluster in accessing individual storage nodes in the storage pool is improved.
一种可能的实施方式中,计算设备集群通过调用应用程序接口,向数据转发代理模块发送存储池访问请求的过程中,计算设备集群调用应用程序接口,并通过直接内存访问DMA控制器向数据处理单元的数据转发代理模块发送存储池访问请求,无需经过记过计算节点的中央处理器参与,从而实现存储池访问请求的直接传输。In one possible implementation, the computing device cluster calls the application program interface and sends a storage pool access request to the data forwarding agent module of the data processing unit through a direct memory access DMA controller, without the participation of the central processing unit of the computing node, thereby realizing direct transmission of the storage pool access request.
本申请实施例中计算设备集群的计算节点能够通过内存直接访问DMA的方式向数据转发代理模块发送存储池访问请求,从而提升了计算节点与数据处理单元的通信效率,提高了计算设备集群的输入输出IO性能。In the embodiment of the present application, the computing nodes of the computing device cluster can send storage pool access requests to the data forwarding proxy module through direct memory access (DMA), thereby improving the communication efficiency between the computing nodes and the data processing unit and improving the input and output (IO) performance of the computing device cluster.
一种可能的实施方式中,计算设备集群通过调用应用程序接口向数据转发代理模块发送存储池访问请求的过程中,计算设备集群通过调用应用程序接口,向数据转发代理模块发送日志数据写请求,日志数据写请求携带日志标识(log ID),日志标识用于指示数据转发代理模块在存储池中的数据写入位置。In one possible implementation, when the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface, the computing device cluster sends a log data write request to the data forwarding proxy module by calling an application program interface. The log data write request carries a log identifier (log ID), and the log identifier is used to indicate the data write location in the storage pool of the data forwarding proxy module.
本申请实施例中计算设备的虚拟机能够通过应用程序接口向数据转发代理模块发送日志数据写请求,从而提升计算设备集群在存储池中写入日志数据的灵活性,提升了计算设备集群在存储池中的日志 数据写入效率。In the embodiment of the present application, the virtual machine of the computing device can send a log data write request to the data forwarding proxy module through the application program interface, thereby improving the flexibility of the computing device cluster in writing log data in the storage pool and improving the log data of the computing device cluster in the storage pool. Data writing efficiency.
一种可能的实施方式中,计算设备集群通过调用应用程序接口向数据转发代理模块发送存储池访问请求包括的过程中,计算设备集群通过调用应用程序接口向数据转发代理模块发送日志数据读请求,日志数据读请求携带日志标识,日志标识用于指数据转发代理模块在存储池中的数据读取位置。In one possible implementation, in a process in which a computing device cluster sends a storage pool access request to a data forwarding proxy module by calling an application program interface, the computing device cluster sends a log data read request to the data forwarding proxy module by calling an application program interface, and the log data read request carries a log identifier, which is used to indicate the data reading position of the data forwarding proxy module in the storage pool.
本申请实施例中计算设备的虚拟机能够通过应用程序接口向数据转发代理模块发送日志数据读请求,从而提升计算设备集群从存储池中读取日志数据的灵活性,提升了计算设备集群从存储池中读取日志数据的读取效率。The virtual machine of the computing device in the embodiment of the present application can send a log data read request to the data forwarding proxy module through the application program interface, thereby improving the flexibility of the computing device cluster in reading log data from the storage pool and improving the reading efficiency of the computing device cluster in reading log data from the storage pool.
一种可能的实施方式中,计算设备集群基于日志标识确定分区标识(pt ID)。计算设备集群根据分区标识查询路由表,确定分区标识对应的一个或多个存储节点标识。具体的,计算设备集群基于日志标识和分区数量确定分区标识,基于分区标识查询路由表,确定分区标识对应的一个或多个存储节点标识(disk ID)。In one possible implementation, the computing device cluster determines the partition identifier (pt ID) based on the log identifier. The computing device cluster queries the routing table according to the partition identifier to determine one or more storage node identifiers corresponding to the partition identifier. Specifically, the computing device cluster determines the partition identifier based on the log identifier and the number of partitions, queries the routing table based on the partition identifier, and determines one or more storage node identifiers (disk ID) corresponding to the partition identifier.
本申请实施例中计算设备能够根据存储池访问请求中携带的日志标识确定出计算设备集群要访问存储节点标识,从使得计算节点能够准确确定要访问存储节点的位置,提升计算设备集群访问存储池中存储节点的可实现性。In the embodiment of the present application, the computing device can determine the storage node identifier that the computing device cluster wants to access based on the log identifier carried in the storage pool access request, thereby enabling the computing node to accurately determine the location of the storage node to be accessed, thereby improving the feasibility of the computing device cluster accessing the storage nodes in the storage pool.
一种可能的实施方式中,数据转发代理模块部署在数据处理单元DPU芯片。计算节点能够将数据转发进程卸载至数据处理单元的数据转发代理模块,由数据处理单元中数据转发代理模块实现对存储池访问消息的转发。In a possible implementation, the data forwarding proxy module is deployed in the data processing unit DPU chip. The computing node can offload the data forwarding process to the data forwarding proxy module of the data processing unit, and the data forwarding proxy module in the data processing unit implements the forwarding of the storage pool access message.
计算节点能够将数据转发进程卸载至数据处理单元的数据转发代理模块执行,从而提升了计算设备集群对计算任务的处理效率,也提高了计算设备集群的输入输出IO性能。The computing node can offload the data forwarding process to the data forwarding proxy module of the data processing unit for execution, thereby improving the processing efficiency of the computing device cluster for computing tasks and also improving the input and output IO performance of the computing device cluster.
一种可能的实施方式中,应用程序接口包括日志接口,计算节点的虚拟机或容器能够调用日志接口将日志数据写入到存储池,或者,计算节点的虚拟机能够调用日志接口从存储池的存储节点中读取日志数据。In one possible implementation, the application program interface includes a log interface, and the virtual machine or container of the computing node can call the log interface to write log data to the storage pool, or the virtual machine of the computing node can call the log interface to read log data from the storage node of the storage pool.
本申请实施例中应用程序接口可以是多种类型应用程序接口,其中应用程序接口包括日志接口,计算节点的虚拟机或容器能够调用日志接口在存储池的存储节点中读取日志数据,从而提升了计算设备集群对日志数据的读写效率。In the embodiment of the present application, the application program interface can be multiple types of application program interfaces, wherein the application program interface includes a log interface. The virtual machine or container of the computing node can call the log interface to read log data in the storage node of the storage pool, thereby improving the reading and writing efficiency of the computing device cluster for log data.
本申请实施例第二方面提供了一种存储池的访问装置,装置包括收发单元和处理单元。其中,处理单元用于提供应用程序接口,应用程序接口用于计算设备集群中的计算节点通过应用程序接口访问存储池,应用程序接口的软件工具包SDK部署在计算设备集群的虚拟机或容器上。收发单元用于通过调用应用程序接口,向数据转发代理模块发送存储池访问请求,数据转发代理模块用于处理计算设备集群的数据转发进程。收发单元还用于通过数据转发代理模块向存储池中的存储节点发送存储池访问请求。The second aspect of the embodiment of the present application provides a storage pool access device, the device includes a transceiver unit and a processing unit. Among them, the processing unit is used to provide an application program interface, the application program interface is used for computing nodes in a computing device cluster to access the storage pool through the application program interface, and the software toolkit SDK of the application program interface is deployed on a virtual machine or container of the computing device cluster. The transceiver unit is used to send a storage pool access request to a data forwarding proxy module by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster. The transceiver unit is also used to send a storage pool access request to a storage node in the storage pool through the data forwarding proxy module.
一种可能的实施方式中,收发单元具体用于调用应用程序接口,并通过直接内存访问DMA控制器向转发代理模块发送存储池访问请求。In a possible implementation manner, the transceiver unit is specifically configured to call an application program interface and send a storage pool access request to the forwarding agent module through a direct memory access DMA controller.
一种可能的实施方式中,收发单元具体用用于通过调用应用程序接口,向数据转发代理模块发送数据写请求,数据写请求携带日志标识,日志标识用于指示数据转发代理模块在存储池中的数据写入位置。In a possible implementation, the transceiver unit is specifically used to send a data write request to the data forwarding proxy module by calling an application program interface, and the data write request carries a log identifier, which is used to indicate the data write location of the data forwarding proxy module in the storage pool.
一种可能的实施方式中,收发单元具体用于调用应用程序接口向数据转发代理模块发送数据读请求,数据读请求携带日志标识,日志标识用于指数据转发代理模块在存储池中的数据读取位置。In a possible implementation, the transceiver unit is specifically used to call an application program interface to send a data read request to the data forwarding proxy module, the data read request carries a log identifier, and the log identifier is used to indicate a data reading position of the data forwarding proxy module in the storage pool.
一种可能的实施方式中,处理单元还用于基于日志标识确定分区标识,根据磁盘表标识查询路由表,确定分区标识对应的一个或多个存储节点标识。In a possible implementation, the processing unit is further configured to determine a partition identifier based on the log identifier, query a routing table according to the disk table identifier, and determine one or more storage node identifiers corresponding to the partition identifier.
一种可能的实施方式中,数据转发代理模块部署在数据处理单元DPU芯片。In a possible implementation, the data forwarding proxy module is deployed on a data processing unit DPU chip.
本申请实施例第三方面提供了一种计算设备集群,计算设备集群包括一个或多个计算设备,计算设备包括处理器,处理器与存储器耦合,处理器用于存储指令,当指令被处理器执行时,以使得云服务器执行第一方面或第一方面任意一种可能的实施方式所述的方法。A third aspect of an embodiment of the present application provides a computing device cluster, which includes one or more computing devices, and the computing device includes a processor, which is coupled to a memory, and the processor is used to store instructions. When the instructions are executed by the processor, the cloud server executes the method described in the first aspect or any possible implementation method of the first aspect.
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有指令,指令被执行时,以使得计算机执行上述第一方面或第一方面任意一种可能的实施方式所述的方法。A fourth aspect of an embodiment of the present application provides a computer-readable storage medium having instructions stored thereon. When the instructions are executed, the computer executes the method described in the first aspect or any possible implementation of the first aspect.
本申请实施例第五方面提供了一种计算机程序产品,计算机程序产品中包括指令,指令被执行时,以使得计算机实现上述第一方面或第一方面任意一种可能的实施方式所述的方法。 A fifth aspect of an embodiment of the present application provides a computer program product, which includes instructions. When the instructions are executed, the computer implements the method described in the first aspect or any possible implementation method of the first aspect.
可以理解,上述提供的任意一种计算设备集群、计算机可读介质或计算机程序产品等所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。It can be understood that the beneficial effects that can be achieved by any of the computing device clusters, computer-readable media, or computer program products provided above can refer to the beneficial effects in the corresponding methods, and will not be repeated here.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1为本申请实施例提供的一种存储池访问系统的系统架构示意图;FIG1 is a schematic diagram of a system architecture of a storage pool access system provided in an embodiment of the present application;
图2为本申请实施例提供的一种存储池访问方法的流程示意图;FIG2 is a schematic diagram of a flow chart of a storage pool access method provided in an embodiment of the present application;
图3为本申请实施例提供的一种存储池访问方法的示意图;FIG3 is a schematic diagram of a storage pool access method provided in an embodiment of the present application;
图4为本申请实施例提供的另一种存储池访问方法的示意图;FIG4 is a schematic diagram of another storage pool access method provided in an embodiment of the present application;
图5为本申请实施例提供的另一种存储池访问方法的示意图;FIG5 is a schematic diagram of another storage pool access method provided in an embodiment of the present application;
图6为本申请实施例提供的一种存储池访问装置的示意图;FIG6 is a schematic diagram of a storage pool access device provided in an embodiment of the present application;
图7为本申请实施例提供的一种计算设备的结构示意图;FIG7 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;
图8为本申请实施例提供的一种计算设备集群的结构示意图;FIG8 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;
图9为本申请实施例提供的另一种计算设备集群的结构示意图。FIG. 9 is a schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application.
具体实施方式Detailed ways
本申请实施例提供了一种存储池的访问方法以及装置,用于提升计算设备集群访问存储池的灵活性。Embodiments of the present application provide a method and apparatus for accessing a storage pool, which are used to improve the flexibility of a computing device cluster in accessing a storage pool.
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.
首先介绍本申请实施例涉及的部分术语,方便本领域技术人员理解方案。First, some terms involved in the embodiments of the present application are introduced to facilitate technical personnel in this field to understand the solution.
虚拟机(virtual machine,VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,在服务器中能够完成的工作在虚拟机中都能够实现。在服务器中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量,每个虚拟机都有独立的硬盘和操作系统,虚拟机的用户可以像使用服务器一样对虚拟机进行操作。A virtual machine (VM) is a complete computer system that is simulated by software and has complete hardware system functions and runs in a completely isolated environment. Any work that can be done in a server can be done in a virtual machine. When creating a virtual machine in a server, part of the hard disk and memory capacity of the physical machine is used as the hard disk and memory capacity of the virtual machine. Each virtual machine has an independent hard disk and operating system, and the user of the virtual machine can operate the virtual machine just like using a server.
远程数据服务(remote dictionary server,Redis)是利用C语言开发的一个开源的高性能键值对(key-value)数据库,Redis能够把数据保存在内存中,常用作分布式缓存从而提升读取或写入数据的性能。Remote dictionary server (Redis) is an open source high-performance key-value database developed in C language. Redis can store data in memory and is often used as a distributed cache to improve the performance of reading or writing data.
数据处理单元(data processing unit,DPU)是以数据为中心构造的专用处理器,支持多种基础设施层服务,例如存储、安全和服务质量,DPU增强了计算设备对网络安全和网络协议的处理能力以及对分布式存储的处理能力。A data processing unit (DPU) is a dedicated processor built around data. It supports a variety of infrastructure layer services, such as storage, security, and quality of service. DPU enhances the computing device's processing capabilities for network security and network protocols as well as distributed storage.
下面介绍本申请实施例提供的存储池的访问方法所应用的系统架构。The following introduces the system architecture used by the storage pool access method provided in the embodiment of the present application.
请参阅图1,图1为本申请实施例提供的一种存储池访问方法所应用的系统架构示意图。在图1所示的示例中,存储池访问系统100包括计算设备集群101和存储池102,其中计算设备集群101包括计算节点1011和数据处理单元1012,计算设备集群101中的计算节点1011可以是一个或多个计算节点,每个计算节点对应一个数据处理单元1012,存储池102包括一个或多个存储节点1021。下面介绍本申请实施提供的存储池访问系统100中各个部分的具体功能。Please refer to Figure 1, which is a schematic diagram of the system architecture used by a storage pool access method provided in an embodiment of the present application. In the example shown in Figure 1, the storage pool access system 100 includes a computing device cluster 101 and a storage pool 102, wherein the computing device cluster 101 includes a computing node 1011 and a data processing unit 1012, and the computing node 1011 in the computing device cluster 101 can be one or more computing nodes, each computing node corresponds to a data processing unit 1012, and the storage pool 102 includes one or more storage nodes 1021. The specific functions of each part of the storage pool access system 100 provided by the implementation of the present application are introduced below.
计算设备集群101用于处理用户的计算任务以及对存储池101中的存储节点进行数据传输。计算设备集群101包括一个或多个计算节点1011,计算节点1011可以是组成计算设备集群101的计算设备,计算节点1011例如物理服务器或台式计算机。在硬件层面,计算节点1011中设置有处理器和内存。在软件层面,计算节点1011上运行有应用程序和客户端。客户端用于接收由应用程序触发的数据访问请 求,并通过数据处理单元1012与存储节点102交互,向存储节点102发送数据访问请求。The computing device cluster 101 is used to process the computing tasks of the user and to transmit data to the storage nodes in the storage pool 101. The computing device cluster 101 includes one or more computing nodes 1011. The computing nodes 1011 can be computing devices that constitute the computing device cluster 101. The computing nodes 1011 are, for example, physical servers or desktop computers. At the hardware level, the computing nodes 1011 are provided with processors and memory. At the software level, the computing nodes 1011 are running applications and clients. The client is used to receive data access requests triggered by the application. The data processing unit 1012 interacts with the storage node 102 and sends a data access request to the storage node 102.
计算节点1011上也可以部署一个或多个虚拟机或容器,本申请以虚拟机为例介绍。用户能够基于虚拟机处理计算任务,并将执行计算任务产生的数据持久化到存储池102。虚拟机还能够为用户提供多种数据服务,数据服务例如远程字典服务(remote dictionary server,Redis),虚拟机能够调用应用程序接口,将Redis服务产生的数据发送至数据处理单元1012,由数据处理单元1012转发至存储池102进行数据持久化。虚拟机也可以调用应用程序接口将存储池102的数据存储至计算节点1011的内存。One or more virtual machines or containers may also be deployed on the computing node 1011. This application takes the virtual machine as an example. Users can process computing tasks based on the virtual machine and persist the data generated by executing the computing tasks to the storage pool 102. The virtual machine can also provide users with a variety of data services, such as remote dictionary service (remote dictionary server, Redis). The virtual machine can call the application interface to send the data generated by the Redis service to the data processing unit 1012, which is forwarded to the storage pool 102 for data persistence. The virtual machine can also call the application interface to store the data of the storage pool 102 in the memory of the computing node 1011.
数据处理单元1012用于处理计算节点101与存储池102之间的交互进程。数据处理单元1012包括数据转发代理模块,数据转发代理模块能够将计算节点101中的虚拟机发送的存储池访问请求转发至存储池102的存储节点。数据处理单元1012可以作为芯片集成在计算设备,也可以是一个独立的设备,具体不作限定。The data processing unit 1012 is used to process the interaction process between the computing node 101 and the storage pool 102. The data processing unit 1012 includes a data forwarding agent module, which can forward the storage pool access request sent by the virtual machine in the computing node 101 to the storage node of the storage pool 102. The data processing unit 1012 can be integrated into the computing device as a chip, or it can be an independent device, which is not specifically limited.
存储池102用于存储计算设备集群101发送的数据。存储池102包括一个或多个存储节点1021,存储节点1021如服务器、台式计算机和硬盘。存储节点1021包括一个或多个控制器与一个或多个硬盘。硬盘用于存储数据,硬盘可以是磁盘或者其他类型的存储介质,例如固态硬盘等。控制器用于根据计算节点1011发送的数据访问请求,往硬盘中写入数据或者从硬盘中读取数据。在读写数据的过程中,控制器需要将存储池访问请求中携带的地址转换为硬盘能够识别的地址。The storage pool 102 is used to store data sent by the computing device cluster 101. The storage pool 102 includes one or more storage nodes 1021, such as servers, desktop computers and hard disks. The storage node 1021 includes one or more controllers and one or more hard disks. The hard disk is used to store data, and the hard disk can be a magnetic disk or other types of storage media, such as a solid-state drive. The controller is used to write data to the hard disk or read data from the hard disk according to the data access request sent by the computing node 1011. In the process of reading and writing data, the controller needs to convert the address carried in the storage pool access request into an address that the hard disk can recognize.
下面结合附图介绍本申请实施例提供的一种存储池的访问方法以及装置。A method and device for accessing a storage pool provided in an embodiment of the present application are described below in conjunction with the accompanying drawings.
请参阅图2,图2为本申请实施例提供的一种存储池访问方法的流程示意图。在图2所示的示例中,本申请实施例提供的存储池访问方法包括以下步骤:Please refer to Figure 2, which is a flow chart of a storage pool access method provided by an embodiment of the present application. In the example shown in Figure 2, the storage pool access method provided by an embodiment of the present application includes the following steps:
201.计算设备集群提供应用程序接口,应用程序接口用于计算设备集群中的计算节点通过应用程序接口访问存储池。201. The computing device cluster provides an application program interface, and the application program interface is used for computing nodes in the computing device cluster to access the storage pool through the application program interface.
计算设备集群提供应用程序接口,该应用程序接口用于计算设备集群中的计算节点通过应用程序接口访问存储池。应用程序接口的软件工具包SDK部署在计算设备集群中计算节点的虚拟机或容器上,计算节点的虚拟机中能够调用应用程序接口与计算设备集群的中数据处理单元通信。The computing device cluster provides an application program interface, which is used for computing nodes in the computing device cluster to access the storage pool through the application program interface. The software toolkit SDK of the application program interface is deployed on the virtual machine or container of the computing node in the computing device cluster, and the virtual machine of the computing node can call the application program interface to communicate with the data processing unit in the computing device cluster.
本申请实施例中的数据服务包括Redis服务,Redis服务能够实现对存储池中数据的缓存。具体的,Redis服务能够在虚拟机中调用应用程序接口将存储池的数据读取到内存,或者,Redis服务能够在虚拟机中调用应用程序接口将内存中的数据写入到存储池,实现数据的持久化。The data service in the embodiment of the present application includes a Redis service, which can cache data in the storage pool. Specifically, the Redis service can call an application program interface in the virtual machine to read the data in the storage pool into the memory, or the Redis service can call an application program interface in the virtual machine to write the data in the memory to the storage pool to achieve data persistence.
本申请实施例中的应用程序接口包括日志接口,日志接口传输日志数据的应用程序接口,计算节点的虚拟机能够调用日志接口将日志数据写入到存储池。其中,日志数据为面向记录(record oriented)和只可追加(append only)的数据,日志数据不是以单个字节的形式存储,而是以不可分割的数据块的形式进行记录,并且日志数据只能追加写,无法修改。The application program interface in the embodiment of the present application includes a log interface, an application program interface for transmitting log data, and the virtual machine of the computing node can call the log interface to write the log data to the storage pool. Among them, the log data is record oriented and append-only data. The log data is not stored in the form of a single byte, but is recorded in the form of an indivisible data block, and the log data can only be appended and cannot be modified.
请参阅图3,图3为本申请实施例的一种调用应用程序接口的示意图。在图3所示的实施例中,计算设备集群中计算节点的虚拟机中安装了日志接口的软件工具包,该软件该工具能够提供日志接口,虚拟机通过调用日志接口进行存储池的访问。例如,虚拟机VM1将Redis服务产生的日志数据通过调用日志接口追加写入到存储池。Please refer to Figure 3, which is a schematic diagram of calling an application program interface in an embodiment of the present application. In the embodiment shown in Figure 3, a software toolkit of a log interface is installed in the virtual machine of a computing node in a computing device cluster, and the software tool can provide a log interface, and the virtual machine accesses the storage pool by calling the log interface. For example, the virtual machine VM1 appends the log data generated by the Redis service to the storage pool by calling the log interface.
202.计算设备集群通过调用应用程序接口,向数据转发代理模块发送存储池访问请求。202. The computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface.
计算设备集群通过调用应用程序接口,向数据处理单元的数据转发代理模块发送存储池访问请求,数据转发代理模块用于处理计算设备集群的数据转发进程。例如,计算设备集群中计算节点的虚拟机通过调用日志接口,向数据转发代理模块发送存储池访问请求,存储池访问请求用于请求在存储池中写入或者读取日志数据,数据转发代理模块能够处理日志数据的转发进程。The computing device cluster sends a storage pool access request to the data forwarding proxy module of the data processing unit by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster. For example, the virtual machine of the computing node in the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling the log interface. The storage pool access request is used to request to write or read log data in the storage pool, and the data forwarding proxy module can process the forwarding process of the log data.
一种可能的实施方式中,数据转发代理模块部署在数据处理单元DPU芯片,即计算节点能够将数据转发进程卸载至数据处理单元,由数据处理单元实现对存储池访问请求的转发。本申请实施例中数据处理单元DPU芯片可以嵌入计算设备集群的网卡中,具体不做限定。In one possible implementation, the data forwarding proxy module is deployed in a data processing unit DPU chip, that is, the computing node can offload the data forwarding process to the data processing unit, and the data processing unit implements the forwarding of the storage pool access request. In the embodiment of the present application, the data processing unit DPU chip can be embedded in the network card of the computing device cluster, without specific limitation.
本申请实施例中计算节点能够将数据转发进程卸载至数据处理单元的数据转发代理模块执行,从而提升了计算设备集群对计算任务的处理效率,也提升数据处理单元的数据传输效率,提升了计算设备集群的IO性能。In the embodiment of the present application, the computing node can offload the data forwarding process to the data forwarding proxy module of the data processing unit for execution, thereby improving the processing efficiency of the computing device cluster for computing tasks, improving the data transmission efficiency of the data processing unit, and improving the IO performance of the computing device cluster.
一种可能的实施方式中,计算设备集群通过调用应用程序接口,向数据转发代理模块发送存储池访 问请求时,计算设备集群中计算节点的虚拟机调用应用程序接口,并通过直接内存访问DMA控制器向数据转发代理模块发送存储池访问请求。In one possible implementation, the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface. When a request is made, the virtual machine of the computing node in the computing device cluster calls the application program interface and sends a storage pool access request to the data forwarding agent module through the direct memory access DMA controller.
例如,计算节点的虚拟机调用日志接口,并通过直接内存访问DMA控制器将日志数据从计算节点的内存中直接发送至数据处理单元的数据转发代理模块,无需经过记过计算节点的中央处理器参与,从而实现日志数据的直接传输。For example, the virtual machine of the computing node calls the log interface and sends the log data from the memory of the computing node directly to the data forwarding agent module of the data processing unit through the direct memory access DMA controller, without the participation of the central processing unit of the computing node, thereby realizing direct transmission of log data.
请继续参阅图3,在图3所示的实施例中,计算设备集群中计算节点的虚拟机通过调用日志接口向数据处理单元的转发代理模块发送存储池访问请求,存储池访问请求包括日志数据写请求和日志数据读请求。例如,虚拟机VM1的Redis服务通过调用日志接口将日志数据写请求发送至数据处理单元的数据转发代理模块,虚拟机VM1可以通过直接内存访问的方式向数据转发代理模块发送日志数据写请求。Please continue to refer to Figure 3. In the embodiment shown in Figure 3, the virtual machine of the computing node in the computing device cluster sends a storage pool access request to the forwarding proxy module of the data processing unit by calling the log interface, and the storage pool access request includes a log data write request and a log data read request. For example, the Redis service of the virtual machine VM1 sends the log data write request to the data forwarding proxy module of the data processing unit by calling the log interface, and the virtual machine VM1 can send the log data write request to the data forwarding proxy module by direct memory access.
本申请实施例中计算节点能够通过内存直接访问DMA的方式向数据转发代理模块发送存储池访问请求,提升了计算节点与数据处理单元的通信效率,进一步提升饿了了计算设备集群的IO性能。In the embodiment of the present application, the computing node can send a storage pool access request to the data forwarding agent module by means of direct memory access DMA, thereby improving the communication efficiency between the computing node and the data processing unit and further improving the IO performance of the computing device cluster.
一种可能的实施方式中,计算设备集群通过调用应用程序接口向数据转发代理模块发送存储池访问请求的过程中,计算设备集群通过调用应用程序接口,向数据转发代理模块发送日志数据写请求,日志数据写请求携带日志标识(log ID),日志标识用于指示数据转发代理模块在存储池中的数据写入位置,数据写入位置例如存储节点标识。In one possible implementation, when the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling an application program interface, the computing device cluster sends a log data write request to the data forwarding proxy module by calling an application program interface. The log data write request carries a log identifier (log ID). The log identifier is used to indicate the data write location in the storage pool of the data forwarding proxy module, such as a storage node identifier.
请参阅图4,图4为本申请实施例提供的一种存储池数据写入流程示意图。在图4所示的示例中,计算节点的虚拟机将Redis服务产生的日志数据通过日志接口发送至数据转发代理模块,例如,虚拟机要发送2M的日志数据,其中日志数据包含4个数据块,每个日志数据块的大小为512k。虚拟机调用日志接口发送日志数据写请求之后,计算节点的服务质量QOS控制模块首先检查当前数据流量是否过载,如果当前数据流量过载,QOS控制模块拒绝日志数据写请求。Please refer to Figure 4, which is a schematic diagram of a storage pool data writing process provided by an embodiment of the present application. In the example shown in Figure 4, the virtual machine of the computing node sends the log data generated by the Redis service to the data forwarding proxy module through the log interface. For example, the virtual machine wants to send 2M of log data, where the log data contains 4 data blocks, and the size of each log data block is 512k. After the virtual machine calls the log interface to send a log data write request, the service quality QOS control module of the computing node first checks whether the current data traffic is overloaded. If the current data traffic is overloaded, the QOS control module rejects the log data write request.
在图4所示的示例中,如果QOS控制模块检查当前数据流量未过载,计算节点的校验模块继续对日志数据写请求进行循环冗余校验码CRC校验,若校验不通过,则校验模块拒绝日志数据写请求。若校验通过,计算节点通过编码模块对日志数据写请求中的日志数据进行纠删码(erasure code,EC)编码,生成编码后的数据块,数据块包括日志数据块和校验块,例如,计算节点通过编码模块对日志数据写请求中的日志数据进行EC编码后得到6个数据块,其中4个数据块为日志数据块,2个数据块为校验块。计算设备根据日志数据写请求将EC编码后的数据块发送至数据转发代理模块,由数据转发代理模块发送至存储池的存储节点。In the example shown in FIG4 , if the QOS control module checks that the current data traffic is not overloaded, the verification module of the computing node continues to perform cyclic redundancy check code CRC verification on the log data write request. If the verification fails, the verification module rejects the log data write request. If the verification passes, the computing node performs erasure code (EC) encoding on the log data in the log data write request through the encoding module to generate encoded data blocks, which include log data blocks and verification blocks. For example, the computing node obtains 6 data blocks after performing EC encoding on the log data in the log data write request through the encoding module, of which 4 data blocks are log data blocks and 2 data blocks are verification blocks. The computing device sends the EC-encoded data blocks to the data forwarding agent module according to the log data write request, and the data forwarding agent module sends them to the storage nodes of the storage pool.
一种可能的实施方式中,计算设备集群基于日志标识确定分区标识(pt ID)。具体的,计算设备集群根据日志标识(log ID)和分区数(pt num)确定分区标识,分区标识用于在路由表中查询分区标识对应的存储节点标识(disk ID)。计算设备集群能够根据分区标识查询路由表,确定分区标识对应的一个或多个存储节点标识。In one possible implementation, the computing device cluster determines the partition identifier (pt ID) based on the log identifier. Specifically, the computing device cluster determines the partition identifier based on the log identifier (log ID) and the partition number (pt num), and the partition identifier is used to query the storage node identifier (disk ID) corresponding to the partition identifier in the routing table. The computing device cluster can query the routing table based on the partition identifier to determine one or more storage node identifiers corresponding to the partition identifier.
在图4所示的示例中,计算设备根据日志数据写请求向发送数据转发代理模块发送EC编码后的数据块的过程中,需要根据日志数据写请求中携带的日志标识确定日志数据在储存节点的写入位置。具体的,计算节点根据日志标识和分区数计算分区标识,根据分区标识查询路由表,确定分区标识对应的存储节点标识。计算设备根据存储节点标识将数据写请求发送至数据转发代理模块中存储节点标识对应的缓冲器(buffer)。In the example shown in FIG4 , in the process of sending the EC-encoded data block to the data forwarding proxy module according to the log data write request, it is necessary to determine the write location of the log data in the storage node according to the log identifier carried in the log data write request. Specifically, the computing node calculates the partition identifier according to the log identifier and the number of partitions, queries the routing table according to the partition identifier, and determines the storage node identifier corresponding to the partition identifier. The computing device sends the data write request to the buffer corresponding to the storage node identifier in the data forwarding proxy module according to the storage node identifier.
本申请实施例中计算设备集群能够根据日志标识和分区数确定分区标识。分区标识、日志标识和分区数量之间满足如下计算关系:
ptID=log ID%pt Num
In the embodiment of the present application, the computing device cluster can determine the partition identifier according to the log identifier and the number of partitions. The partition identifier, log identifier and the number of partitions satisfy the following calculation relationship:
ptID=log ID%ptNum
本申请实施例中计算设备能够根据存储池访问请求中携带的日志标识确定出计算设备集群要访问存储节点标识,从使得计算节点能够准确确定要访问存储节点的位置,提升计算设备集群访问存储池中存储节点的准确性。In the embodiment of the present application, the computing device can determine the storage node identifier that the computing device cluster wants to access based on the log identifier carried in the storage pool access request, thereby enabling the computing node to accurately determine the location of the storage node to be accessed, thereby improving the accuracy of the computing device cluster accessing the storage nodes in the storage pool.
一种可能的实施方式中,计算设备集群通过调用应用程序接口向数据转发代理模块发送存储池访问请求的过程中,计算设备集群通过调用应用程序接口向数据转发代理模块发送数据读请求,数据读请求携带日志标识,日志标识用于指示数据转发代理模块在存储池中的数据读取位置,数据读取位置例如存储节点的标识。 In one possible implementation, in the process of the computing device cluster sending a storage pool access request to the data forwarding proxy module by calling an application program interface, the computing device cluster sends a data read request to the data forwarding proxy module by calling an application program interface, and the data read request carries a log identifier, which is used to indicate the data reading position of the data forwarding proxy module in the storage pool, such as the identifier of the storage node.
请参阅图5,图5为本申请实施例提供的一种存储池数据读取的流程示意图。在图5所示的示例中,计算节点中虚拟机的Redis服务需要从存储池读取日志数据,虚拟机调用日志接口发送日志数据读请求之后,计算节点的服务质量QOS控制模块首先检查当前数据流量是否过载,如果当前数据流量过载,QOS控制模块拒绝Redis服务的日志数据读请求。Please refer to Figure 5, which is a schematic diagram of a process of reading data from a storage pool provided by an embodiment of the present application. In the example shown in Figure 5, the Redis service of the virtual machine in the computing node needs to read log data from the storage pool. After the virtual machine calls the log interface to send a log data read request, the service quality QOS control module of the computing node first checks whether the current data traffic is overloaded. If the current data traffic is overloaded, the QOS control module rejects the log data read request of the Redis service.
在图5所示的示例中,如果QOS控制模块检查当前数据流量未过载,计算节点的分流器(spliter)确定日志数据读请求要读取的日志数据对应的日志数据块,根据日志数据读请求的日志标识确定读取每个日志数据在存储池的读取位置,并将每个日志数据块对应的日志数据读请求发送至数据处理单元的数据转发代理模块。In the example shown in Figure 5, if the QOS control module checks that the current data traffic is not overloaded, the splitter of the computing node determines the log data block corresponding to the log data to be read by the log data read request, determines the reading position of each log data in the storage pool according to the log identifier of the log data read request, and sends the log data read request corresponding to each log data block to the data forwarding agent module of the data processing unit.
在图5所示的示例中,计算节点发送的日志数据读请求中携带补偿量(offset)和长度(len),补偿量和长度用于指示日志数据在存储节点中的具体位置,具体位置例如存储节点中日志数据的存储地址。计算节点通过内存直接访问DMA控制器向数据转发代理模块发送日志数据读请求。In the example shown in FIG5 , the log data read request sent by the computing node carries an offset (offset) and a length (len), which are used to indicate the specific location of the log data in the storage node, such as the storage address of the log data in the storage node. The computing node sends the log data read request to the data forwarding agent module through the memory direct access DMA controller.
203.计算设备集群通过数据转发代理模块向存储池中的存储节点发送存储池访问请求。203. The computing device cluster sends a storage pool access request to a storage node in the storage pool through a data forwarding proxy module.
计算设备集群通过数据转发代理模块向存储池中的存储节点发送存储池访问请求。具体的,数据处理单元中数据转发代理模块接收到计算节点的虚拟机发送的存储池访问请求之后,根据存储池访问请求向存储节点对应的控制器发送存储池访问请求。The computing device cluster sends a storage pool access request to the storage node in the storage pool through the data forwarding proxy module. Specifically, after the data forwarding proxy module in the data processing unit receives the storage pool access request sent by the virtual machine of the computing node, it sends the storage pool access request to the controller corresponding to the storage node according to the storage pool access request.
一种可能的实施方式中,数据处理单元中数据转发代理模块可以通过传输控制协议(transmission control protocol,TCP)与存储池中的存储节点进行数据传输。In one possible implementation, the data forwarding agent module in the data processing unit can transmit data with the storage nodes in the storage pool through the transmission control protocol (TCP).
存储节点的控制器接收到存储池访问请求之后,根据存储池访问请求在硬盘中写入数据或者从硬盘中读取数据。具体的,存储节点的控制器接收到日志数据写请求之后,根据日志数据写请求在硬盘中写入日志数据,存储节点的控制器接收到日志数据读请求之后,根据日志数据读请求读取硬盘中的日志数据。After receiving the storage pool access request, the storage node controller writes data to the hard disk or reads data from the hard disk according to the storage pool access request. Specifically, after receiving the log data write request, the storage node controller writes the log data to the hard disk according to the log data write request, and after receiving the log data read request, the storage node controller reads the log data in the hard disk according to the log data read request.
请继续参阅图3,在图3所示的实施例中,数据处理单元的数据转发代理模块接计算节点的虚拟机通过日志接口发送的存储池访问请求之后,数据转发处理模块将存储池访问请求转发至存储池中存储节点对应的IO控制器,存储池访问请求包括日志数据写请求和日志数据读请求。Please continue to refer to Figure 3. In the embodiment shown in Figure 3, after the data forwarding agent module of the data processing unit receives the storage pool access request sent by the virtual machine of the computing node through the log interface, the data forwarding processing module forwards the storage pool access request to the IO controller corresponding to the storage node in the storage pool. The storage pool access request includes a log data write request and a log data read request.
例如,在图3所示的示例中,虚拟机VM1中Redis服务通过调用日志接口发送日志数据至数据处理单元的数据转发代理模块,数据转发代理模块将日志数据转发至存储存池中存储节点对应控制器,由存储而节点的控制器将日志数据写入到存储节点的硬盘。For example, in the example shown in Figure 3, the Redis service in the virtual machine VM1 sends log data to the data forwarding agent module of the data processing unit by calling the log interface. The data forwarding agent module forwards the log data to the corresponding controller of the storage node in the storage pool, and the controller of the storage node writes the log data to the hard disk of the storage node.
请继续参阅图4,在图4所示的示例中,数据处理单元的数据转发代理模块接收计算节点发送的数据写请求之后,数据转发代理模块将日志数据写请求发送至存储池。具体的,数据转发代理模块根据存储节点标识将日志数据写请求发送至存储池中存储节点标识对应的存储节点,从而将日志数据写入相应的存储节点,完成日志数据的持久化。Please continue to refer to Figure 4. In the example shown in Figure 4, after the data forwarding proxy module of the data processing unit receives the data write request sent by the computing node, the data forwarding proxy module sends the log data write request to the storage pool. Specifically, the data forwarding proxy module sends the log data write request to the storage node corresponding to the storage node identifier in the storage pool according to the storage node identifier, thereby writing the log data to the corresponding storage node and completing the persistence of the log data.
请继续参阅图5,在图5所示的示例中,数据处理单元的数据转发代理模块接收计算节点发送的数据读请求之后,数据转发代理模块将日志数据读请求发送至存储池。具体的,数据转发代理模块将日志数据读请求发送至存储池中存储节点标识对应的存储节点,计算节点从不同的存储节点读取日志数据块之后,计算设备对读取的日志数据块进行循环冗余校验码CRC校验,并通过合并(merger)模块将日志数据块进行合并得到要读取的日志数据。Please continue to refer to Figure 5. In the example shown in Figure 5, after the data forwarding proxy module of the data processing unit receives the data read request sent by the computing node, the data forwarding proxy module sends the log data read request to the storage pool. Specifically, the data forwarding proxy module sends the log data read request to the storage node corresponding to the storage node identifier in the storage pool. After the computing node reads the log data block from different storage nodes, the computing device performs a cyclic redundancy check code CRC check on the read log data block, and merges the log data blocks through a merge module to obtain the log data to be read.
从以上实施例可以看出,本申请实施例中计算节点的虚拟机或容器能够部署应用程序接口的软件工具包,从而使得计算节点的虚拟机或容器能够基于应用程序接口访问存储池中的任意存储节点,提升了计算设备集群访问存储池中个存储节点的灵活性。It can be seen from the above embodiments that the virtual machine or container of the computing node in the embodiments of the present application can deploy a software toolkit of the application program interface, so that the virtual machine or container of the computing node can access any storage node in the storage pool based on the application program interface, thereby improving the flexibility of the computing device cluster to access individual storage nodes in the storage pool.
以上介绍了本申请实施例提供的存储池访问方法,下面介绍本申请实施例提供的存储池访问装置。The above describes the storage pool access method provided by the embodiment of the present application. The following describes the storage pool access device provided by the embodiment of the present application.
请参阅图6,图6为本申请实施例提供的一种存储池访问装置的结构示意图。在图6所示的示例中,存储池访问装置用于实现上述各实施例中计算节点所执行的各个步骤,该存储池访问装置600包括收发单元601和处理单元602。Please refer to Figure 6, which is a schematic diagram of the structure of a storage pool access device provided in an embodiment of the present application. In the example shown in Figure 6, the storage pool access device is used to implement the various steps performed by the computing node in the above embodiments, and the storage pool access device 600 includes a transceiver unit 601 and a processing unit 602.
其中,处理单元602用于提供应用程序接口,应用程序接口用于计算设备集群中的计算节点通过应用程序接口访问存储池,应用程序接口的软件工具包SDK部署在计算设备集群的虚拟机或容器上。收发 单元601用于通过调用应用程序接口,向数据转发代理模块发送存储池访问请求,数据转发代理模块用于处理计算设备集群的数据转发进程。收发单元601还用于通过数据转发代理模块向存储池中的存储节点发送存储池访问请求。The processing unit 602 is used to provide an application program interface, which is used by computing nodes in the computing device cluster to access the storage pool through the application program interface, and the software tool kit SDK of the application program interface is deployed on the virtual machine or container of the computing device cluster. Unit 601 is used to send a storage pool access request to a data forwarding proxy module by calling an application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster. The transceiver unit 601 is also used to send a storage pool access request to a storage node in the storage pool through the data forwarding proxy module.
一种可能的实施方式中,收发单元601具体用于调用应用程序接口,并通过直接内存访问DMA控制器向转发代理模块发送存储池访问请求。In a possible implementation manner, the transceiver unit 601 is specifically configured to call an application program interface and send a storage pool access request to the forwarding agent module through a direct memory access DMA controller.
一种可能的实施方式中,收发单元601具体用用于通过调用应用程序接口,向数据转发代理模块发送数据写请求,数据写请求携带日志标识,日志标识用于指示数据转发代理模块在存储池中的数据写入位置。In a possible implementation, the transceiver unit 601 is specifically used to send a data write request to the data forwarding proxy module by calling an application program interface. The data write request carries a log identifier, which is used to indicate the data write location of the data forwarding proxy module in the storage pool.
一种可能的实施方式中,收发单元601具体用于调用应用程序接口向数据转发代理模块发送数据读请求,数据读请求携带日志标识,日志标识用于指数据转发代理模块在存储池中的数据读取位置。In a possible implementation, the transceiver unit 601 is specifically used to call an application program interface to send a data read request to the data forwarding proxy module, and the data read request carries a log identifier, which is used to indicate the data reading position of the data forwarding proxy module in the storage pool.
一种可能的实施方式中,处理单元602还用于基于日志标识确定分区标识,根据磁盘表标识查询路由表,确定分区标识对应的一个或多个存储节点标识。In a possible implementation, the processing unit 602 is further configured to determine a partition identifier based on the log identifier, query a routing table according to the disk table identifier, and determine one or more storage node identifiers corresponding to the partition identifier.
一种可能的实施方式中,数据转发代理模块部署在数据处理单元DPU芯片。In a possible implementation, the data forwarding proxy module is deployed on a data processing unit DPU chip.
应理解以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以成为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。It should be understood that the division of the units in the above device is only a division of logical functions. In actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated. And the units in the device can all be implemented in the form of software calling through processing elements; they can also be all implemented in the form of hardware; some units can also be implemented in the form of software calling through processing elements, and some units can be implemented in the form of hardware. For example, each unit can be a separately established processing element, or it can be integrated in a certain chip of the device. In addition, it can also be stored in the memory in the form of a program, and called and executed by a certain processing element of the device. The function of the unit. In addition, all or part of these units can be integrated together, or they can be implemented independently. The processing element described here can also be a processor, which can be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each unit above can be implemented by an integrated logic circuit of hardware in the processor element or in the form of software calling through a processing element.
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明本申请并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明本申请所必须的。It is worth noting that, for the above method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should know that the present invention is not limited to the described order of actions. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required for the present invention.
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明本申请所必须的。Other reasonable step combinations that can be thought of by those skilled in the art based on the above description also fall within the scope of protection of the present invention. Secondly, those skilled in the art should also be familiar with the fact that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the present invention.
请参阅图7,图7为本申请实施例提供的一种计算设备的结构示意图。如图7所示,该计算设备700包括:处理器701、存储器702、通信接口703和总线704,处理器701、存储器702与通信接口703通过总线(图中未标注)耦合。存储器702存储有指令,当存储器702中的执行指令被执行时,计算设备700执行上述方法实施例中计算节点所执行的方法。Please refer to Figure 7, which is a schematic diagram of the structure of a computing device provided in an embodiment of the present application. As shown in Figure 7, the computing device 700 includes: a processor 701, a memory 702, a communication interface 703 and a bus 704, and the processor 701, the memory 702 and the communication interface 703 are coupled through a bus (not marked in the figure). The memory 702 stores instructions, and when the execution instructions in the memory 702 are executed, the computing device 700 executes the method executed by the computing node in the above method embodiment.
计算设备700可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。The computing device 700 may be one or more integrated circuits configured to implement the above method, such as one or more application specific integrated circuits (ASIC), or one or more microprocessors (digital signal processors, DSP), or one or more field programmable gate arrays (FPGA), or a combination of at least two of these integrated circuit forms. For another example, when a unit in the device can be implemented in the form of a processing element scheduler, the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processor that can call a program. For another example, these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).
处理器701可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。Processor 701 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor may be a microprocessor or any conventional processor.
存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically  EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。The memory 702 may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories. Among them, the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EPROM), or an electrically erasable programmable read-only memory (EPROM). The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct rambus RAM (DR RAM).
存储器702中存储有可执行的程序代码,处理器701执行该可执行的程序代码以分别实现前述收发单元和处理单元的功能,从而实现上述存储池访问方法。也即,存储器702上存有用于执行上述存储池访问方法的指令。The memory 702 stores executable program codes, and the processor 701 executes the executable program codes to respectively implement the functions of the transceiver unit and the processing unit, thereby implementing the storage pool access method. That is, the memory 702 stores instructions for executing the storage pool access method.
通信接口703使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备700与其他设备或通信网络之间的通信。The communication interface 703 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 700 and other devices or a communication network.
总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。总线可以是快捷外围部件互连标准(peripheral component interconnect express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线可以分为地址总线、数据总线、控制总线等。In addition to the data bus, the bus 704 may also include a power bus, a control bus, and a status signal bus. The bus may be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus may be divided into an address bus, a data bus, a control bus, etc.
请参阅图8,图8为本申请实施例提供的一种计算设备集群的示意图。如图8所示,该计算设备集群800包括至少一台计算设备700。Please refer to FIG8 , which is a schematic diagram of a computing device cluster provided in an embodiment of the present application. As shown in FIG8 , the computing device cluster 800 includes at least one computing device 700 .
如图8所示,所述计算设备集群800包括至少一个计算设备700。计算设备集群800中的一个或多个计算设备700中的存储器702中可以存有相同的用于执行上述存储池访问方法的指令。As shown in Fig. 8, the computing device cluster 800 includes at least one computing device 700. The memory 702 in one or more computing devices 700 in the computing device cluster 800 may store the same instructions for executing the above storage pool access method.
在一些可能的实现方式中,该计算设备集群800中的一个或多个计算设备700的存储器702中也可以分别存有用于执行上述存储池访问方法的部分指令。换言之,一个或多个计算设备700的组合可以共同执行用于执行上述存储池访问方法的指令。In some possible implementations, the memory 702 of one or more computing devices 700 in the computing device cluster 800 may also store partial instructions for executing the above storage pool access method. In other words, the combination of one or more computing devices 700 may jointly execute instructions for executing the above storage pool access method.
需要说明的是,计算设备集群800中的不同的计算设备700中的存储器702可以存储不同的指令,分别用于执行上述存储池访问装置的部分功能。也即,不同的计算设备700中的存储器702存储的指令可以实现收发单元和处理单元中的一个或多个模块的功能。It should be noted that the memory 702 in different computing devices 700 in the computing device cluster 800 may store different instructions, which are respectively used to execute part of the functions of the above storage pool access device. That is, the instructions stored in the memory 702 in different computing devices 700 may implement the functions of one or more modules in the transceiver unit and the processing unit.
在一些可能的实现方式中,计算设备集群800中的一个或多个计算设备700可以通过网络连接。其中,所述网络可以是广域网或局域网等等。In some possible implementations, one or more computing devices 700 in the computing device cluster 800 may be connected via a network, which may be a wide area network or a local area network.
请参阅图9,图9为本申请实施例提供的一种计算机集群中的计算机设备通过网络连接的示意图。如图9所示,两个计算设备700A和700B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。Please refer to Figure 9, which is a schematic diagram of a computer device in a computer cluster provided by an embodiment of the present application being connected through a network. As shown in Figure 9, two computing devices 700A and 700B are connected through a network. Specifically, the network is connected through a communication interface in each computing device.
在一种可能的实现方式中,计算设备700A中的存储器中存有执行收发模块的功能的指令。同时,计算设备700B中的存储器中存有执行处理模块的功能的指令。In a possible implementation, the memory in the computing device 700A stores instructions for executing the functions of the transceiver module, and the memory in the computing device 700B stores instructions for executing the functions of the processing module.
应理解,图9中示出的计算设备700A的功能也可以由多个计算设备完成。同样,计算设备700B的功能也可以由多个计算设备完成。It should be understood that the functions of the computing device 700A shown in Figure 9 can also be completed by multiple computing devices. Similarly, the functions of the computing device 700B can also be completed by multiple computing devices.
在本申请的另一个实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中计算设备所执行的方法。In another embodiment of the present application, a computer-readable storage medium is provided, in which computer-executable instructions are stored. When the processor of the device executes the computer-executable instructions, the device executes the method executed by the computing device in the above method embodiment.
在本申请的另一个实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中计算设备所执行的方法。In another embodiment of the present application, a computer program product is provided, the computer program product includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium. When the processor of the device executes the computer-executable instructions, the device executes the method executed by the computing device in the above method embodiment.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统, 或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only illustrative, for example, the division of the units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system. Or some features may be ignored or not performed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, which may be electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-only memory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。 If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk and other media that can store program code.

Claims (15)

  1. 一种存储池的访问方法,其特征在于,包括:A method for accessing a storage pool, comprising:
    计算设备集群提供应用程序接口,所述应用程序接口用于所述计算设备集群中的计算节点通过所述应用程序接口访问存储池,所述应用程序接口的软件工具包SDK部署在所述计算设备集群的虚拟机或容器上;The computing device cluster provides an application program interface, the application program interface is used for computing nodes in the computing device cluster to access the storage pool through the application program interface, and a software tool kit SDK of the application program interface is deployed on a virtual machine or a container of the computing device cluster;
    所述计算设备集群通过调用所述应用程序接口,向数据转发代理模块发送存储池访问请求,所述数据转发代理模块用于处理所述计算设备集群的数据转发进程;The computing device cluster sends a storage pool access request to the data forwarding proxy module by calling the application program interface, and the data forwarding proxy module is used to process the data forwarding process of the computing device cluster;
    所述计算设备集群通过所述数据转发代理模块向所述存储池中的存储节点发送所述存储池访问请求。The computing device cluster sends the storage pool access request to the storage nodes in the storage pool through the data forwarding proxy module.
  2. 根据权利要求1所述的方法,其特征在于,所述计算设备集群通过调用所述应用程序接口,向数据转发代理模块发送存储池访问请求包括:The method according to claim 1, characterized in that the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling the application program interface, comprising:
    所述计算设备集群调用所述应用程序接口,并通过直接内存访问DMA控制器向所述数据转发代理模块发送所述存储池访问请求。The computing device cluster calls the application program interface and sends the storage pool access request to the data forwarding agent module through a direct memory access DMA controller.
  3. 根据权利要求1或2所述的方法,其特征在于,所述计算设备集群通过调用所述应用程序接口向数据转发代理模块发送存储池访问请求包括:The method according to claim 1 or 2, characterized in that the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling the application program interface, comprising:
    所述计算设备集群通过调用所述应用程序接口,向数据转发代理模块发送日志数据写请求,所述日志数据写请求携带日志标识,所述日志标识用于指示所述数据转发代理模块在所述存储池中的数据写入位置。The computing device cluster sends a log data write request to the data forwarding proxy module by calling the application program interface, and the log data write request carries a log identifier, and the log identifier is used to indicate the data write position of the data forwarding proxy module in the storage pool.
  4. 根据权利要求1或2所述的方法,其特征在于,所述计算设备集群通过调用所述应用程序接口向数据转发代理模块发送存储池访问请求包括:The method according to claim 1 or 2, characterized in that the computing device cluster sends a storage pool access request to the data forwarding proxy module by calling the application program interface, comprising:
    所述计算设备集群通过调用所述应用程序接口向数据转发代理模块发送日志数据读请求,所述日志数据读请求携带日志标识,所述日志标识用于指所述数据转发代理模块在所述存储池中的数据读取位置。The computing device cluster sends a log data read request to the data forwarding proxy module by calling the application program interface, and the log data read request carries a log identifier, and the log identifier is used to indicate a data reading position of the data forwarding proxy module in the storage pool.
  5. 根据权利要求3或4所述的方法,其特征在于,所述方法还包括:The method according to claim 3 or 4, characterized in that the method further comprises:
    所述计算设备集群基于所述日志标识确定分区标识;The computing device cluster determines a partition identifier based on the log identifier;
    所述计算设备集群根据所述分区标识查询路由表,确定所述分区标识对应的一个或多个存储节点标识。The computing device cluster queries a routing table according to the partition identifier to determine one or more storage node identifiers corresponding to the partition identifier.
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述数据转发代理模块部署在数据处理单元DPU芯片。The method according to any one of claims 1 to 5 is characterized in that the data forwarding agent module is deployed on a data processing unit DPU chip.
  7. 一种存储池的访问装置,其特征在于,包括:A storage pool access device, characterized by comprising:
    处理单元,用于提供应用程序接口,所述应用程序接口用于所述计算设备集群中的计算节点通过所述应用程序接口访问存储池,所述应用程序接口的软件工具包SDK部署在所述计算设备集群的虚拟机或容器上;A processing unit, configured to provide an application program interface, wherein the application program interface is used for computing nodes in the computing device cluster to access a storage pool through the application program interface, and a software tool kit SDK of the application program interface is deployed on a virtual machine or a container of the computing device cluster;
    收发单元,用于通过调用所述应用程序接口,向数据转发代理模块发送存储池访问请求,所述数据转发代理模块用于处理所述计算设备集群的数据转发进程;A transceiver unit, configured to send a storage pool access request to a data forwarding proxy module by calling the application program interface, wherein the data forwarding proxy module is configured to process a data forwarding process of the computing device cluster;
    所述收发单元还用于通过所述数据转发代理模块向所述存储池中的存储节点发送所述存储池访问请求。The transceiver unit is further configured to send the storage pool access request to the storage nodes in the storage pool through the data forwarding agent module.
  8. 根据权利要求7所述的装置,其特征在于,所述收发单元具体用于:The device according to claim 7, characterized in that the transceiver unit is specifically used for:
    调用所述应用程序接口,并通过直接内存访问DMA控制器向所述数据转发代理模块发送所述存储池访问请求。The application program interface is called, and the storage pool access request is sent to the data forwarding agent module through a direct memory access DMA controller.
  9. 根据权利要求7或8所述的装置,其特征在于,所述收发单元具体用用于:The device according to claim 7 or 8, characterized in that the transceiver unit is specifically used for:
    通过调用所述应用程序接口,向数据转发代理模块发送数据写请求,所述数据写请求携带日志标识,所述日志标识用于指示所述数据转发代理模块在所述存储池中的数据写入位置。By calling the application program interface, a data write request is sent to the data forwarding proxy module, the data write request carries a log identifier, and the log identifier is used to indicate the data write position of the data forwarding proxy module in the storage pool.
  10. 根据权利要求7或8所述的装置,其特征在于,所述收发单元具体用于:The device according to claim 7 or 8, characterized in that the transceiver unit is specifically used for:
    调用所述应用程序接口向数据转发代理模块发送数据读请求,所述数据读请求携带日志标识,所述日志标识用于指所述数据转发代理模块在所述存储池中的数据读取位置。 The application program interface is called to send a data read request to the data forwarding proxy module, wherein the data read request carries a log identifier, and the log identifier is used to indicate a data reading position of the data forwarding proxy module in the storage pool.
  11. 根据权利要求9或10所述的装置,其特征在于,所述处理单元还用于:The device according to claim 9 or 10, characterized in that the processing unit is further used for:
    基于所述日志标识确定分区标识;Determine a partition identifier based on the log identifier;
    根据所述磁盘表标识查询路由表,确定所述分区标识对应的一个或多个存储节点标识。The routing table is queried according to the disk table identifier to determine one or more storage node identifiers corresponding to the partition identifier.
  12. 根据权利要求7至11中任一项所述的装置,其特征在于,所述数据转发代理模块部署在数据处理单元DPU芯片。The device according to any one of claims 7 to 11 is characterized in that the data forwarding agent module is deployed on a data processing unit DPU chip.
  13. 一种计算设备集群,其特征在于,包括处理器,所述处理器与存储器耦合,所述处理器用于存储指令,当所述指令被所述处理器执行时,以使得所述计算设备集群执行权利要求1至6中任一项所述的方法。A computing device cluster, characterized in that it includes a processor, the processor is coupled to a memory, and the processor is used to store instructions. When the instructions are executed by the processor, the computing device cluster executes the method according to any one of claims 1 to 6.
  14. 一种计算机可读存储介质,其上存储有指令,其特征在于,所述指令被执行时,以使得计算机执行权利要求1至6中任一项所述的方法。A computer-readable storage medium having instructions stored thereon, characterized in that when the instructions are executed, a computer is caused to execute the method according to any one of claims 1 to 6.
  15. 一种计算机程序产品,所述计算机程序产品中包括指令,其特征在于,所述指令被执行时,以使得计算机实现权利要求1至6中任一项所述的方法。 A computer program product, comprising instructions, wherein when the instructions are executed, a computer implements the method according to any one of claims 1 to 6.
PCT/CN2023/128077 2022-11-01 2023-10-31 Access method and apparatus for storage pool WO2024093958A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202211366811.4 2022-11-01
CN202211366811 2022-11-01
CN202310330666.2 2023-03-30
CN202310330666.2A CN118034579A (en) 2022-11-01 2023-03-30 Access method and device for storage pool

Publications (1)

Publication Number Publication Date
WO2024093958A1 true WO2024093958A1 (en) 2024-05-10

Family

ID=90929749

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/128077 WO2024093958A1 (en) 2022-11-01 2023-10-31 Access method and apparatus for storage pool

Country Status (1)

Country Link
WO (1) WO2024093958A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760045A (en) * 2011-04-29 2012-10-31 无锡江南计算技术研究所 Intelligent storage device and data processing method thereof
US20190278907A1 (en) * 2018-03-10 2019-09-12 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a stateless secure partition
US20200034484A1 (en) * 2016-11-30 2020-01-30 Nutanix, Inc. User-defined analysis of distributed metadata
CN110915173A (en) * 2017-07-10 2020-03-24 芬基波尔有限责任公司 Data processing unit for computing nodes and storage nodes
US20200401457A1 (en) * 2019-06-18 2020-12-24 Nutanix, Inc. Deploying microservices into virtualized computing systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760045A (en) * 2011-04-29 2012-10-31 无锡江南计算技术研究所 Intelligent storage device and data processing method thereof
US20200034484A1 (en) * 2016-11-30 2020-01-30 Nutanix, Inc. User-defined analysis of distributed metadata
CN110915173A (en) * 2017-07-10 2020-03-24 芬基波尔有限责任公司 Data processing unit for computing nodes and storage nodes
US20190278907A1 (en) * 2018-03-10 2019-09-12 International Business Machines Corporation Protecting cognitive code and client data in a public cloud via deployment of data and executables into a stateless secure partition
US20200401457A1 (en) * 2019-06-18 2020-12-24 Nutanix, Inc. Deploying microservices into virtualized computing systems

Similar Documents

Publication Publication Date Title
JP6543714B2 (en) Peripheral device, method for emulating by peripheral device
Jose et al. Memcached design on high performance RDMA capable interconnects
CN108028833B (en) NAS data access method, system and related equipment
CN111654519B (en) Method and device for transmitting data processing requests
CN112291293B (en) Task processing method, related equipment and computer storage medium
CN112130748B (en) Data access method, network card and server
WO2018161881A1 (en) Structuralized data processing method, data storage medium, and computer apparatus
EP4318251A1 (en) Data access system and method, and device and network card
CN110119304B (en) Interrupt processing method and device and server
WO2024041412A1 (en) Storage system and method, and hardware offload card
US10873630B2 (en) Server architecture having dedicated compute resources for processing infrastructure-related workloads
CN113268308B (en) Information processing method, device and storage medium
CN115202573A (en) Data storage system and method
WO2018107433A1 (en) Information processing method and device
WO2020000316A1 (en) Fault tolerance processing method, device, and server
CN115878301A (en) Acceleration framework, acceleration method and equipment for database network load performance
US20190306055A1 (en) Efficient and reliable message channel between a host system and an integrated circuit acceleration system
WO2024093958A1 (en) Access method and apparatus for storage pool
CN117135189A (en) Server access method and device, storage medium and electronic equipment
CN115114222B (en) Market information snapshot distribution method and related device
US20230188464A1 (en) Traffic service threads for large pools of network addresses
TW202008172A (en) Memory system
WO2023029485A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
WO2022141322A1 (en) System on chip and related method
CN116032498A (en) Memory area registration method, device and equipment