Cloud storage processing method, and device, storage medium and system
By separating the data plane and control plane in the cloud storage system, special processing chip processing data plane functions, and general processing chip processing control plane functions, the problems of poor data read and write delay and throughput performance in traditional cloud storage systems are solved, and the more Efficient data processing and resource utilization.
Patent Information
- Application Number
- PCT/CN2024/094683
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-01
- Filing Date
- 2024-05-22
- Publication Date
- 2024-12-05
AI Technical Summary
In traditional cloud storage systems, data read and write request processing is delayed, resulting in poor throughput performance. It is mainly because the CPU needs to process multiple data copying and network transmission processes, occupying a large amount of CPU resources and unable to effectively utilize CPU resources.
A dedicated processing chip and a general processing chip are configured in the computing server. The dedicated processing chip is responsible for data plane functions (data processing), and the general processing chip is responsible for control plane functions (network transmission). By separating data planes and control plane processing, data conversion operations are reduced , improve the processing efficiency of data read and write requests.
It reduces the processing delay of data read and write requests, improves throughput performance, makes full use of general processing chip resources, and improves the overall performance of cloud storage systems.
Smart Images

Figure CN2024094683_05122024_PF_FP_ABST
Abstract
Description
Cloud storage processing method, device, storage medium and system
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on June 1, 2023, with application number 202310646348.7 and application name “Cloud Storage Processing Method, Device, Storage Medium and System”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present invention relates to the field of cloud computing technology, and in particular to a cloud storage processing method, device, storage medium and system. Background Art
[0003] With the continuous evolution of storage technology, storage media has evolved from traditional mechanical hard disk drives (HDDs) to solid-state drives (SSDs) and, more recently, Optane SSDs. Storage media write latency has been reduced from milliseconds to microseconds, and throughput has increased from MB / s to GB / s. Simultaneously, the network bandwidth of cloud vendors' data centers has also continued to increase.
[0004] Cloud storage systems, such as cloud disks, are sensitive to data read and write latency, and low-latency, high-throughput cloud storage systems are the design goal. Currently, most cloud storage systems employ an architecture that separates computing and storage. Generally speaking, these systems consist of a compute server cluster and a storage server cluster. The storage server cluster provides physical storage space for data. Each compute server can deploy one or more virtual machines, corresponding to different users, running their applications. Furthermore, the compute servers run cloud storage services, which the virtual machines use to trigger data read and write requests to the storage server cluster.
[0005] In traditional cloud storage systems, client virtual machines generate data read and write requests, which are then sent to the CPU in the compute server. The CPU then processes the data and, based on the network protocol type between the storage server cluster and the compute server, uses some network transmission control policies to generate a network message to be sent to a specific storage server. These messages are then sent to the storage server via the network interface card (NIC), allowing the storage server to complete the corresponding data read and write operations. The data processing performed by the CPU often requires passing through the virtualization software stack, storage software stack, and network protocol stack, with multiple data copying and conversion operations occurring in between (such as reading data from or writing data to memory, copying data to the NIC, and performing other security operations such as encryption and decryption on the data). This processing takes a long time.
[0006] In reality, computing servers often contain multiple CPUs, and the aforementioned data processing and network transmission processes require several CPUs to complete. This means that sufficient CPUs must be reserved to complete these processes, while the remaining CPUs are used to build the client virtual machines, hindering CPU resource utilization. Furthermore, the CPUs take a long time to complete these data processing and network transmission processes (such as copying data to memory and the network card, and encapsulating network packets), resulting in significant processing delays for data read and write requests, ultimately leading to poor throughput performance.
[0007] Summary of the Invention
[0008] Embodiments of the present invention provide a cloud storage processing method, device, storage medium, and system for reducing data read and write processing delays in cloud storage and improving throughput performance.
[0009] In a first aspect, an embodiment of the present invention provides a cloud storage processing method, which is applied to a dedicated processing chip configured to provide data plane functions in a computing server, the method comprising:
[0010] Receive a data read / write request from a client virtual machine, wherein the data read / write request includes a logical disk storage address corresponding to the data to be read / written;
[0011] Sending a read / write request control signal including the logical disk storage address to a general-purpose processing chip configured to provide a control plane function in the computing server, so that the general-purpose processing chip generates header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address;
[0012] receiving a message sending control signal sent by the general processing chip, wherein the message sending control signal includes the header information;
[0013] A network request message is generated according to the header information and the data read / write request, and the network request message is sent to the target storage server so that the target storage server processes the data read / write request.
[0014] In a second aspect, an embodiment of the present invention provides a cloud storage processing device, which is applied to a dedicated processing chip configured to provide data plane functions in a computing server, the device comprising:
[0015] A receiving module is used to receive a data read and write request sent by a client virtual machine, wherein the data read and write request includes a logical disk storage address corresponding to the data to be read and written;
[0016] a sending module, configured to send a read / write request control signal including the logical disk storage address to a general-purpose processing chip configured to provide a control plane function in the computing server, so that the general-purpose processing chip generates header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address;
[0017] The receiving module is further configured to receive a message sending control signal sent by the universal processing chip, wherein the message sending control signal includes the header information;
[0018] A generating module, configured to generate a network request message according to the header information and the data read and write request;
[0019] The sending module is further configured to send the network request message to the target storage server so that the target storage server processes the data read and write request.
[0020] In a third aspect, an embodiment of the present invention provides a cloud storage processing method, which is applied to a general-purpose processing chip configured to provide control plane functions in a computing server, the method comprising:
[0021] receiving a read / write request control signal sent by a dedicated processing chip configured to provide a data plane function in the computing server, wherein the read / write request control signal is sent by the dedicated processing chip after receiving a data read / write request sent by a client virtual machine, wherein the data read / write request includes a logical disk storage address corresponding to the data to be read / written, and the read / write request control signal includes the logical disk storage address;
[0022] Generate header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address;
[0023] A message sending control signal containing the header information is sent to the dedicated processing chip, so that the dedicated processing chip generates a network request message according to the header information and the data read and write request, and sends the network request message to the target storage server, so that the target storage server processes the data read and write request.
[0024] In a fourth aspect, an embodiment of the present invention provides a cloud storage processing device, which is applied to a general-purpose processing chip configured to provide control plane functions in a computing server, the device comprising:
[0025] a receiving module, configured to receive a read / write request control signal sent by a dedicated processing chip in the computing server that is configured to provide a data plane function, wherein the read / write request control signal is sent by the dedicated processing chip after receiving a data read / write request sent by a client virtual machine, wherein the data read / write request includes a logical disk storage address corresponding to the data to be read / written, and the read / write request control signal includes the logical disk storage address;
[0026] A generating module, configured to generate header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address;
[0027] A sending module is used to send a message sending control signal containing the header information to the dedicated processing chip, so that the dedicated processing chip generates a network request message according to the header information and the data read and write request, and sends the network request message to the target storage server, so that the target storage server processes the data read and write request.
[0028] In a fifth aspect, an embodiment of the present invention provides a computing server comprising: a memory, a general-purpose processing chip, a dedicated processing chip, and a communication interface; wherein, executable code is stored on the memory, and when the executable code is executed by the general-purpose processing chip and the dedicated processing chip, the cloud storage processing method described in the first aspect or the third aspect is executed.
[0029] In the sixth aspect, an embodiment of the present invention provides a non-transitory machine-readable storage medium, on which executable code is stored. When the executable code is executed by a general-purpose processing chip and a dedicated processing chip in a computing server, at least the cloud storage processing method described in the first aspect or the third aspect can be implemented.
[0030] In a seventh aspect, an embodiment of the present invention provides a cloud storage system, including:
[0031] A computing server cluster and a storage server cluster, wherein any computing server in the computing server cluster includes a client virtual machine, a dedicated processing chip configured to provide data plane functions, and a general-purpose processing chip configured to provide control plane functions;
[0032] The dedicated processing chip is used to execute the cloud storage processing method as described in the first aspect;
[0033] The general processing chip is used to execute the cloud storage processing method as described in the third aspect.
[0034] In the cloud storage processing solution provided in an embodiment of the present invention, a distributed cloud storage system consisting of a computing server cluster and a storage server cluster is provided. Any computing server in the computing server cluster includes a client virtual machine using the cloud storage service, a dedicated processing chip configured to provide data plane functions, and a general-purpose processing chip configured to provide control plane functions, wherein the dedicated processing chip is, for example, a data processor (Data Processing Unit, abbreviated as DPU), and the general-purpose processing chip is, for example, a CPU. In general, the control plane function is mainly a network transmission control function, such as the control logic for sending data read and write requests to the network of the storage server and the verification logic for the network response message fed back by the storage server; the data plane function is mainly the data processing logic, such as data copying, encryption, and network message encapsulation. Dedicated processing chips are better at data processing tasks with simple processing logic, but not good at complex network transmission protocol processing tasks, while general-purpose processing chips are the opposite. By combining the advantages of general-purpose processing chips and dedicated processing chips, the two can work together to complete the processing tasks of data read and write requests triggered by client virtual machines, which can achieve better performance. Moreover, for computing servers, only a small number of general-purpose processing chips can be allocated to provide the above-mentioned control plane functions. More general-purpose processing chips can be used to build more client virtual machines, which can make more full use of the resources of general-purpose processing chips.
[0035] Specifically, after receiving a data read / write request from a client virtual machine, the dedicated processing chip parses the request, generates a read / write request control signal containing the logical disk storage address corresponding to the data to be read / written, and sends it to the general processing chip. Based on the set network transmission policy, the general processing chip generates header information, which includes identification information of the target storage server corresponding to the logical disk storage address, and sends a message transmission control signal containing the header information to the dedicated processing chip. The dedicated processing chip encapsulates the data read / write request based on the header information to generate a network request message, and sends the network request message to the target storage server, so that the target storage server processes the data read / write request, thus completing the corresponding data read / write operation.
[0036] It can be seen from this that the dedicated processing chip actually integrates the network card function, and can directly perform network message encapsulation processing on data read and write requests based on the header information fed back by the general processing chip, reducing data conversion operations (for example, for data write requests, the network request message is directly encapsulated after the data to be written is copied directly from the memory, and there is no need to copy it to the network card, reducing data copy operations), thereby reducing the data read and write request processing delay and improving processing throughput. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following is a brief introduction to the drawings required for use in the description of the embodiments. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0038] FIG1 is a schematic diagram of a cloud storage processing system provided by an embodiment of the present invention;
[0039] FIG2 is an interactive flow chart of a cloud storage processing method provided by an embodiment of the present invention;
[0040] FIG3 is an interactive flow chart of a cloud storage processing method provided by an embodiment of the present invention;
[0041] FIG4 is an interactive flow chart of a cloud storage processing method provided by an embodiment of the present invention;
[0042] FIG5 is a schematic diagram of a data plane structure according to an embodiment of the present invention;
[0043] FIG6 is a schematic diagram of the structure of a control plane provided by an embodiment of the present invention;
[0044] 7 is a schematic diagram of a control plane processing process during a network message sending process provided by an embodiment of the present invention;
[0045] FIG8 is a schematic diagram of a control plane processing process during a network message reception process provided by an embodiment of the present invention;
[0046] FIG9 is a schematic structural diagram of a cloud storage processing device provided by an embodiment of the present invention;
[0047] FIG10 is a schematic structural diagram of a cloud storage processing device provided by an embodiment of the present invention;
[0048] FIG11 is a schematic diagram of the structure of a computing server provided in this embodiment. DETAILED DESCRIPTION
[0049] In order to make the purpose, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present invention. In addition, the step timing in the following method embodiments is only an example and not a strict limitation.
[0050] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in the embodiments of the present invention are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0051] First, some concepts involved in the embodiments of the present invention are explained.
[0052] Data Processing Unit (DPU): A major category of specialized processors, DPU is another important computing chip in data center scenarios, following the CPU (Central Processing Unit) and GPU (Graphics Processing Unit). It provides a computing engine for high-bandwidth, low-latency, and data-intensive computing scenarios.
[0053] Non-Volatile Memory Express (NVMe): NVMe is a data access protocol designed specifically for high-performance devices. It is simpler and lighter, and combined with multi-queue technology, it can significantly improve storage performance.
[0054] Virtio: A paravirtualized I / O solution, Virtio provides a communication framework and programming interface between guest operating systems (OSs) and hypervisors (virtualization management programs). It improves performance and reduces cross-platform compatibility issues, making it widely used in cloud computing.
[0055] Direct Memory Access (DMA): A function provided by some computer bus architectures that enables attached devices (such as disk drives) to directly send or read data from the computer motherboard's memory.
[0056] FIG1 is a schematic diagram of a cloud storage processing system provided by an embodiment of the present invention. As shown in FIG1 , the cloud storage processing system includes: a computing server cluster and a storage server cluster.
[0057] The computing server cluster and the storage server cluster may be physically isolated, that is, the cloud storage system provided by the embodiment of the present invention may adopt an architecture in which storage and computing are separated.
[0058] The storage server cluster may include several storage servers, each of which provides physical storage media, such as various types of disks. These storage servers may only be equipped with general-purpose processing chips for local data access processing.
[0059] The computing server cluster may include several computing servers, each of which includes a client virtual machine, a dedicated processing chip configured to provide data plane functions (illustrated as the I / O data plane in Figure 1), and a general-purpose processing chip configured to provide control plane functions (illustrated as the I / O control plane in Figure 1). I / O stands for input / output, and corresponds to the client virtual machine's access process of writing and reading data, respectively, based on the direction of data transmission. In practice, the computing servers also run cloud storage services, such as the common cloud disk service, which each client virtual machine calls to read and write data to the storage server cluster.
[0060] Client virtual machines can be virtualized based on hardware resources such as general-purpose processing chips within the corresponding compute server. A compute server can create at least one client virtual machine, which can be allocated to different users. Users can run their own applications within the client virtual machine. While running applications, client virtual machines generate data read and write requests, and they can access the storage server cluster using the cloud storage service provided by the compute server to process the data.
[0061] The dedicated processing chip includes, but is not limited to, the DPU shown in FIG1 . The dedicated processing chip is used to accelerate the processing of data read and write requests triggered by the client virtual machine, and therefore any other dedicated processing chip capable of providing accelerated computing capabilities may also be applicable. General-purpose processing chips include, for example, the CPU shown in FIG1 .
[0062] In fact, each computing server may include multiple general-purpose processing chips (such as multiple CPUs, usually multiple CPU cores). These general-purpose processing chips are used to build one or more client virtual machines on the one hand, and to provide the above-mentioned control plane functions on the other hand.
[0063] Compared to the traditional solution of using only general-purpose processing chips to process data read and write requests, in the embodiment of the present invention, the processing process of data read and write requests is divided into two processing processes: the data plane and the control plane. The control plane function mainly refers to the function of the network transmission layer, which is used to perform network transmission control processing. The data plane function mainly performs data transmission and reception and related computing processing based on the results of the network transmission control processing. The general-purpose processing chip provides the control plane function, and the dedicated processing chip provides the data plane function. The dedicated processing chip (such as DPU) is limited by its programmable capabilities and is not suitable for processing complex states and logic (such as complex network transmission protocol processing). However, it performs better than the general-purpose processing chip (CPU) for simple logic processing. The general-purpose processing chip is just the opposite. When performing these data processing tasks, the general-purpose processing chip needs to interact with related devices such as network cards and memory, and the processing time is longer. Based on this, in the embodiment of the present invention, only a small number of general-purpose processing chips need to be allocated to the computing server to provide control plane functions, and more general-purpose processing chips can be used to build client virtual machines provided to users, thereby improving the utilization rate of the general-purpose processing chips.
[0064] Furthermore, based on a separate control and data plane architecture, simple but data-intensive logic within cloud storage systems is separated into the data plane and implemented in dedicated processing chips (such as DPUs). This improves I / O processing performance, specifically the performance of data read and write requests. I / O routing, congestion control, and retransmission mechanisms are all handled by the control plane, simplifying the data plane design and enabling comprehensive network transport layer functionality.
[0065] Furthermore, the aforementioned architecture with a separate control and data plane makes control plane functions independent of data, providing greater flexibility. For example, when the network protocol used between the compute and storage server clusters needs to be updated, only the general-purpose processing chips need to be adapted and updated, resulting in lower costs.
[0066] As shown in Figure 1, based on the architecture in which the control plane and data plane are separated, a client virtual machine in a computing server can send data read and write requests to a dedicated processing chip that provides data plane functions based on the interface specification corresponding to a certain virtualization software, such as the NVMe request sent using the NVMe specification shown in Figure 1. What is transmitted between the dedicated processing chip and the general-purpose processing chip (CPU) is a control signal, which does not carry the data content to be read or written, thereby reducing the control plane overhead. Based on the control plane processing results of the general-purpose processing chip, the dedicated processing chip can transmit network messages with a storage server.
[0067] The working processes of a dedicated processing chip and a general-purpose processing chip in a computing server are described below in conjunction with the following embodiments.
[0068] FIG2 is an interactive flow chart of a cloud storage processing method provided by an embodiment of the present invention. As shown in FIG2 , the method includes the following steps:
[0069] 201. The client virtual machine sends a data read / write request to the dedicated processing chip. The data read / write request includes a logical disk storage address corresponding to the data to be read / written.
[0070] 202. The dedicated processing chip sends a read / write request control signal including a logical disk storage address to the general processing chip.
[0071] 203. The general processing chip generates header information, where the header information includes identification information of a target storage server corresponding to the logical disk storage address.
[0072] 204. The general processing chip sends a message sending control signal including header information to the dedicated processing chip.
[0073] 205. The dedicated processing chip generates a network request message according to the header information and the data read and write request.
[0074] 206. The dedicated processing chip sends the network request message to the target storage server, so that the target storage server processes the data read and write request.
[0075] An application running in a client virtual machine may generate data read and write requirements, thereby triggering the above-mentioned data read and write requests. This data read and write request is a general term for data read requests and data write requests.
[0076] In actual applications, the communication between the dedicated processing chip and the client virtual machine will comply with certain interface specifications, such as Virtio, NVMe and other interface specifications. Taking the NVMe specification as an example, the client virtual machine will encapsulate the data read and write requests triggered by the application according to the interface specification, obtain the NVMe request, and send it to the dedicated processing chip.
[0077] The data read and write request includes the logical disk storage address corresponding to the data to be read and written, and the logical disk storage address refers to the logical block address (Logic Block Address, LBA for short). For the cloud storage service (commonly called cloud disk service) provided by the cloud storage system, when the user uses the cloud storage service, it will be allocated an LBA address range corresponding to a certain capacity (such as 1TB). The client virtual machine must carry the LBA when triggering a data read and write request. Specifically, if the current data read and write request is a data read request, then the LBA indicates the logical storage address corresponding to the data to be read in the storage server cluster, and the required data needs to be read from this address; if the current data read and write request is a data write request, then the LBA indicates that the data to be written needs to be written to the logical storage address in the storage server cluster.
[0078] In practice, the aforementioned data read request also includes a memory address. For a data write request, this memory address indicates that the data to be written has already been written to this memory address and that a dedicated processing chip needs to copy the data from this memory address for eventual transmission to a storage server. For a data read request, this memory address indicates that data read from the storage server cluster needs to be written to this memory address by a dedicated processing chip so that the client virtual machine can retrieve the data.
[0079] After receiving the above NVMe request, the dedicated processing chip parses it to extract the logical disk storage address and the memory address, generates a read and write request control signal containing the logical disk storage address (or also including the memory address), and sends it to the general processing chip.
[0080] The general processing chip generates header information corresponding to the data read and write request based on the locally configured network transmission strategy. The header information includes identification information of the target storage server corresponding to the logical disk storage address, such as the IP address and port number of the target storage server.
[0081] The above-mentioned network transmission strategy may include a pre-configured routing table, which records the routing information corresponding to different logical disk storage addresses of different client virtual machines in the storage server cluster. The routing information includes the identification information of the storage server and may also include the corresponding physical storage address in the corresponding storage server.
[0082] For example, assuming that the data read and write request triggered by client virtual machine A includes the logical disk storage address LBA=X, and according to the above routing table, it is determined that client virtual machine A corresponds to the target storage server Z1, and the logical disk storage address LBA=X is mapped to the physical storage address Y, then the message information generated by the general processing chip for the data read and write request includes the identification information (IP address, etc.) of the target storage server Z1 and the physical storage address Y.
[0083] In addition, the network transmission strategy may optionally include an I / O table. Upon receiving the read / write request control signal, the general-purpose processing chip may assign read / write request identification information (referred to as an I / O identifier for ease of description) corresponding to the read / write request control signal. The I / O identifier uniquely identifies a data read / write request. Because control signals, rather than raw data, are transmitted between the dedicated processing chip and the general-purpose processing chip, the data read / write request is not transmitted between the two chips. Therefore, the I / O identifier serves as a representation to indicate that subsequent control signals transmitted between the two chips are related to the same data read / write request.
[0084] After generating the above-mentioned I / O identifier, the general processing chip can store the I / O identifier in the I / O table. In fact, optionally, the information stored in the I / O table together with the I / O identifier can also include the logical disk storage address, memory address, and reception time (indicating when the above-mentioned data read and write request is triggered) extracted by the general processing chip from the above-mentioned read and write request control signal received. The status information corresponding to the I / O identifier can also be recorded, and the status information is used to indicate the processing status of the above-mentioned data read and write request, such as the receiving status, the status of sending to the storage server, the status of receiving the network response message from the storage server, the status of not receiving the network response message due to timeout, etc. When the above-mentioned I / O identifier is generated and stored in the I / O table, the initial status can be: receiving status, indicating that the data read and write request triggered by the client virtual machine is received.
[0085] In addition, the general processing chip can also determine network transmission parameters such as data encryption parameters, checksum parameters, etc. based on the network transmission control policy.
[0086] In summary, the header information generated by the general-purpose processing chip for the data read / write request based on the network transmission control policy includes, but is not limited to, the identification information of the target storage server. It may also include an I / O identifier and other network transmission parameters, and even the extracted memory address. The general-purpose processing chip organizes this generated header information into a message transmission control signal and sends it to the dedicated processing chip.
[0087] It should be noted that, in the process of sending the aforementioned message transmission control signal to the dedicated processing chip, the general-purpose processing chip can determine the congestion status of the network connection between the computing server and the target storage server, determine the transmission time of the message transmission control signal based on the congestion status, and then transmit the message transmission control signal to the dedicated processing chip based on the transmission time. Simply put, if the aforementioned network connection is currently in a non-congested state, the message transmission control signal can be immediately transmitted to the dedicated processing chip; otherwise, a predetermined period of time can be waited before determining whether the network connection is in a congested state. In other words, the network transmission control strategy of the general-purpose processing chip also includes network congestion control.
[0088] After receiving the message sending control signal, the dedicated processing chip encapsulates a network request message according to the header information carried therein.
[0089] For example, if the data read / write request is a data write request, the data write request includes the memory address corresponding to the data to be written, so optionally, the read / write request control signal and the message sending control signal may also include the memory address. At this time, the dedicated processing chip can read the data to be written from the memory address based on DMA, and generate a network request message based on the header information and the data to be written. The header part of the network request message includes the identification information of the above-mentioned target storage server, I / O identification and other information. When the above-mentioned header information contains data encryption parameters, the dedicated processing chip also encrypts the data to be written based on the data encryption parameters, and the encryption result is filled in the payload part of the network request message.
[0090] The dedicated processing chip then sends the encapsulated network request message to the target storage server, so that the target storage server performs corresponding data reading and writing processing.
[0091] In summary, based on the architecture that separates the control plane and the data plane, the logic that is simple but requires processing a large amount of data is separated to the data plane and implemented in a dedicated processing chip. The complex network transmission control function is separated to the control plane and implemented in a general-purpose processing chip. In a computing server, only a small number of general-purpose processing chips can be allocated to be responsible for processing the control plane functions, and a small number of dedicated processing chips can be deployed to process the data plane functions. The overall cost is lower, and the dedicated processing chip can realize accelerated processing of the data plane functions (for example, because of the integrated network card function, it only needs to read or write the memory address once), which can reduce the processing time of data read and write requests and improve throughput performance.
[0092] The above describes the process of sending data read and write requests to the storage server cluster by dedicated processing chips and general processing chips. The following describes the process of processing the network response message fed back by the target storage server in combination with the embodiments shown in Figures 3 and 4.
[0093] FIG3 is an interactive flow chart of a cloud storage processing method provided by an embodiment of the present invention. As shown in FIG3 , the method includes the following steps:
[0094] 301. The target storage server sends a network response message to the dedicated processing chip. The network response message includes read / write request identification information and first message type information corresponding to the network response message.
[0095] 302. The dedicated processing chip sends a first message response control signal including read / write request identification information and first message type information to the general processing chip.
[0096] 303. The general processing chip generates a read / write completion control signal according to the first message type information, wherein the signal includes read / write request identification information.
[0097] 304. The general processing chip sends a read / write completion control signal to the dedicated processing chip.
[0098] 305. The dedicated processing chip generates a data read / write response including the read / write request identification information.
[0099] 306. The dedicated processing chip sends the data read and write response to the client virtual machine.
[0100] After receiving the network request message, the target storage server will perform the corresponding data read and write processing, and then generate a network response message to feed back to the dedicated processing chip.
[0101] It can be understood that if the client virtual machine triggers a data write request, the target storage server completes the write processing of the data to be written. If it triggers a data read request, the target storage server completes the read processing of the read data. At this time, the network response message will carry the read data.
[0102] The header of the network response message generated by the target storage server will carry the aforementioned I / O identifier and the first message type information. In addition, it will also contain information such as the target storage server's identification information. The first message type information is used to identify the message being sent as a network response message, indicating that the target storage server has successfully completed the corresponding data read and write processing.
[0103] After receiving the network response message, the dedicated processing chip parses the network response message to extract the I / O identifier and the first message type information therefrom, generates a first message response control signal containing the I / O identifier and the first message type information, and sends it to the general processing chip to inform the general processing chip that it has received the network response message fed back by the target storage server.
[0104] Based on the first message type information, the general-purpose processing chip determines that the dedicated processing chip has received the network response message fed back by the target storage server. This generates a read / write completion control signal and sends it to the dedicated processing chip. In practice, the general-purpose processing chip updates the congestion status information of the network connection between the computing server and the target storage server based on the received first message response control signal.
[0105] After receiving the read / write completion control signal, the dedicated processing chip performs data read / write response processing, generates a data read / write response including an I / O identifier, and sends it to the client virtual machine. If the client virtual machine triggers a data read request, the data read / write response processing includes: responsive to the read / write completion control signal, storing the read data in a memory address included in the data read / write request.
[0106] Specifically, assuming that the interface specification used between the dedicated processing chip and the client virtual machine is NVMe, the above-mentioned data read and write response generated by the dedicated processing chip is an NVMe response. For the data read request, it can also include the above-mentioned memory address, so that the client virtual machine will read the data from the memory address.
[0107] The embodiment shown in Figure 3 above describes the scenario where the target storage server ultimately sends a network response message to the dedicated processing chip after completing data read and write processing. In practice, before sending this network response message, the target storage server can also send another type of network message—a receipt confirmation message—to indicate that it has received the network request message sent by the dedicated processing chip. Based on this receipt confirmation message, the general-purpose processing chip can perform network retransmission control, as shown in the embodiment shown in Figure 4.
[0108] FIG4 is an interactive flow chart of a cloud storage processing method provided by an embodiment of the present invention. As shown in FIG4 , the method includes the following steps:
[0109] 401. The target storage server sends a reception confirmation message to the dedicated processing chip, wherein the message includes read / write request identification information, second message type information corresponding to the reception confirmation message, and message sequence number information.
[0110] 402. The dedicated processing chip sends a second message response control signal including read / write request identification information, second message type information, and message sequence number information to the general processing chip.
[0111] 403. The general processing chip regenerates message sending control signals corresponding to other read / write request control signals according to the second message response control signal, where the other read / write request control signals correspond to other data read / write requests before the data read / write request.
[0112] 404. The general processing chip sends the regenerated message sending control signal to the dedicated processing chip.
[0113] 405. The dedicated processing chip sends a control signal according to the regenerated message to regenerate a corresponding network request message.
[0114] 406. The dedicated processing chip sends the regenerated network request message to the corresponding storage server.
[0115] For ease of description, in this embodiment, it is assumed that the same client virtual machine triggers data read and write request 1, data read and write request 2, and data read and write request 3. The sending process of each data read and write request can refer to the processing process of the embodiment shown in Figure 2. It is assumed that the general processing chip sequentially sends corresponding message sending control signals to the dedicated processing chip for these three data read and write requests, wherein the target storage server corresponding to these three data read and write requests is assumed to be the same.
[0116] Based on the three sequentially received message transmission control signals, the dedicated processing chip generates three corresponding network request messages and sends them sequentially to the target storage server. Each time the target storage server receives a network request message, it generates a corresponding second message response control signal and sends it to the dedicated processing chip. The second message response control signal includes the message sequence number corresponding to the network request message. The dedicated processing chip compares the message sequence numbers in the sequentially received second message response control signals to determine whether any network request messages need to be retransmitted.
[0117] Assume that data read / write request 1 corresponds to network request message 1, sent at time T1; data read / write request 2 corresponds to network request message 2, sent at time T2; and data read / write request 3 corresponds to network request message 3, sent at time T3. For ease of description, assume that the time it takes for the dedicated processing chip to send these network request messages to the target storage server is ignored.
[0118] Assume that the target storage server currently receives network request message 3, thereby generating a reception confirmation message 3 corresponding to the network request message 3, which includes the I / O identifier carried in the network request message 3, the second message type information indicating that it is a reception confirmation message, and the message sequence number information corresponding to the network request message 3 (sequence number 3 in this example).
[0119] After the general processing chip receives the second message response control signal containing the above information, it determines that the target storage server has received network request message 3. However, based on the second message response control signals it has received, the general processing chip discovers that it has not yet received the second message response control signals corresponding to network request message 1 and network request message 2. This indicates that network request message 1 and network request message 2 have not been received by the target storage server, which means that these two network request messages have been lost. At this time, the general processing chip triggers retransmission processing for these two network request messages: based on the previously received read and write request control signals corresponding to the two corresponding data read and write requests, the corresponding message sending control signal is regenerated and sent to the dedicated processing chip, so that the dedicated processing chip regenerates the above two network request messages according to the received message sending control signal and sends them to the target storage server.
[0120] In summary, in the embodiment of the present invention, the cloud storage system is disassembled into an architecture with a separate control plane and data plane. The data plane is implemented in a dedicated processing chip, and the control plane is implemented in a general-purpose processing chip. The programming capabilities of dedicated processing chips are limited and are not suitable for processing complex states and logics. However, their performance for simple processing logic is better than that of general-purpose processing chips, which can improve the processing performance of I / O. The data-independent I / O and transport layer control planes provided can realize complete network transport layer functions with congestion control and reliable transmission capabilities. The routing, congestion control and retransmission processing of I / O are handled by the control plane, which has high flexibility and reliability and simplifies the design of the data plane. Only control signals are transmitted between the data plane and the control plane, and no data is carried, which reduces the overhead of the control plane. The construction of the header information is completed by the control plane, and it can switch to different network transport layer protocols at a low cost.
[0121] The above describes the coordination process between the general-purpose processing chip and the dedicated processing chip. The following describes the structure of the data plane function on the dedicated processing chip and the structure of the control plane function on the general-purpose processing chip with examples.
[0122] Figure 5 is a schematic diagram of the composition structure of a data plane provided by an embodiment of the present invention. As shown in Figure 5, a client virtual machine triggers a data read / write request, i.e., an I / O request. Specifically, it is assumed that an I / O request triggered by the NVMe specification (referred to as an NVMe request) will first enter the NVMe request queue. The NVMe request processing module will consume the NVMe request queue, i.e., read an NVMe request in sequence from it, extract the I / O information (such as LBA, memory address), generate an I / O request control signal (i.e., the read / write request control signal mentioned above), and send the I / O request control signal to the control signal sending module, which will then send it to the control plane.
[0123] After the control signal receiving module receives the message sending control signal sent by the control plane, it sends the message sending control signal to the network message assembly module. The network message assembly module constructs a network message header according to the message sending control signal, obtains the data to be written through DMA (assuming that the NVMe request is a data write request), assembles and generates a network request message, and sends the network request message to the message sending module, so that the message sending module can send it to the target storage server. After the network response message of the target storage server arrives at the message receiving module of the data plane, it will be sent to the network message parsing module. After the network message parsing module determines that the received network message meets the set characteristics (for example, the received message type information indicates that the message type is a network response message), it will generate a message response control signal and send the message response control signal to the control signal sending module, so that the control signal sending module can send it to the control plane. After the control signal receiving module receives the I / O completion control signal (i.e., the read and write completion control signal mentioned above) sent by the control plane, it sends the I / O completion control signal to the NVMe response processing module. The NVMe response processing module constructs an NVMe request completion command (i.e., the data read and write response mentioned above) and sends it to the NVMe request completion queue.
[0124] Figure 6 is a schematic diagram of the structure of a control plane according to an embodiment of the present invention. As shown in Figure 6, the control plane receives various control signals from the data plane through a control signal receiving module.
[0125] For the I / O request control signal, it will enter the I / O processing module. The I / O processing module will check the I / O request, assign a unique identifier for the I / O request, and write it into the I / O table. Then the I / O request will enter the routing table to find the target storage server corresponding to this I / O request. Finally, the I / O request enters the transport layer control module, performs congestion control, and generates a message sending control signal to be sent to the data plane through the control signal sending module. Among them, the I / O request control signal includes LBA and memory address. The inspection of the I / O request includes, for example: determining whether the amount of data to be read and written is consistent based on these two addresses, and determining whether the amount of data to be read and written exceeds the upper limit of the capacity that can be used by the client virtual machine. For example, if 500MB of data is to be written, the address range described by the above two addresses should be consistent with the amount of 500MB of data, and the storage space available to the client virtual machine must be greater than the 500MB capacity.
[0126] The message response control signal enters the message processing module. After parsing the signal, the module sends it to the transport layer control module. The transport layer control module determines the network message type and makes a retransmission decision. Finally, the message response control signal enters the I / O table. Based on the I / O identifier, it finds the corresponding I / O information and generates an I / O completion signal, which is then sent to the data plane via the control signal sending module.
[0127] 7 and 8 illustrate the processing of the transport layer control module in the control plane during the network message sending and receiving process.
[0128] Figure 7 is a schematic diagram of the control plane processing process during a network message transmission process provided by an embodiment of the present invention. As shown in Figure 7, the I / O request control signal, retransmission signal and window update signal will trigger the transmission process of the transport layer control module.
[0129] Specifically, for the I / O request control signal received from the data plane, it is first added to the sending queue, and then the congestion status of the network connection is checked. If the network connection is congested, it will end directly (wait for the set time and then make the next judgment). Otherwise, the transport layer control module will consume the sending queue, that is, take out an I / O request control signal from it, generate header information, generate a message sending control signal and send it to the data plane, and update the connection table.
[0130] The transport layer control module can maintain a connection table that records the congestion status of network connections between different computing servers and storage servers, such as how many message sending control signals have been sent on a certain network connection (assuming the current number is N1) and how many message response control signals indicating receipt confirmation messages have been received (assuming the current number is N2). Based on this, the above congestion judgment can be implemented by determining whether the difference between N1 and N2 is greater than a set threshold. If so, it indicates that the network connection between the corresponding computing server and storage server is in a congested state; otherwise, it is in a non-congested state.
[0131] The above-mentioned updating of the connection table can be simply understood as adding one to the above-mentioned value of N1 corresponding to the network connection between the corresponding computing server and the storage server after the message sending control signal is sent.
[0132] FIG8 is a schematic diagram of the control plane processing process during a network message reception process provided by an embodiment of the present invention. As shown in FIG8 , after the transport layer control module receives a certain message response control signal fed back by the data plane, it first determines whether it is a reception confirmation message. Specifically, as described above, it is determined based on the message type information carried in the message response control signal. If not, it means that the received message is a network response message, and a window update signal is generated. If so, it is first checked whether the message is out of order. Among them, the window update signal refers to the generation of a consumption signal to consume an I / O request control signal waiting in the sending queue.
[0133] If there is no disorder, the connection table is directly updated. The updating of the connection table may be, for example, adding one to the value of N2 corresponding to the network connection between the corresponding computing server and the storage server.
[0134] If the messages are out of order, the I / O request control signals corresponding to the network request messages that have not been confirmed to be received are re-added to the sending queue shown in Figure 7, and a retransmission signal is generated to retransmit these I / O request control signals. Finally, the connection table is updated, for example, the value of the above-mentioned N1 is updated according to the retransmission situation, and the size of the above-mentioned set threshold for comparison with the difference between N1-N2 can also be adjusted.
[0135] The communication devices of one or more embodiments of the present invention are described in detail below. Those skilled in the art will appreciate that these devices can be constructed using commercially available hardware components and configured according to the steps taught in this solution.
[0136] FIG9 is a schematic structural diagram of a cloud storage processing device provided by an embodiment of the present invention. The device is applied to the above-mentioned dedicated processing chip. As shown in FIG9 , the device includes: a receiving module 11 , a sending module 12 , and a generating module 13 .
[0137] The receiving module 11 is configured to receive a data read / write request sent by a client virtual machine, wherein the data read / write request includes a logical disk storage address corresponding to the data to be read / written.
[0138] The sending module 12 is used to send a read / write request control signal containing the logical disk storage address to a general-purpose processing chip in the computing server that is configured to provide a control plane function, so that the general-purpose processing chip generates header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address.
[0139] The receiving module 11 is further configured to receive a message sending control signal sent by the universal processing chip, where the message sending control signal includes the header information.
[0140] The generating module 13 is configured to generate a network request message according to the header information and the data read / write request.
[0141] The sending module 12 is further configured to send the network request message to the target storage server, so that the target storage server processes the data read and write request.
[0142] The device shown in FIG9 can execute the steps executed by the dedicated processing chip in the aforementioned embodiment. The detailed execution process and technical effects are described in the aforementioned embodiment and will not be repeated here.
[0143] FIG10 is a schematic structural diagram of a cloud storage processing device provided by an embodiment of the present invention. The device is applied to the above-mentioned general processing chip. As shown in FIG10 , the device includes: a receiving module 21 , a generating module 22 , and a sending module 23 .
[0144] The receiving module 21 is used to receive a read / write request control signal sent by a dedicated processing chip in the computing server that is configured to provide data plane functions. The read / write request control signal is sent by the dedicated processing chip after receiving a data read / write request sent by a client virtual machine. The data read / write request includes a logical disk storage address corresponding to the data to be read / written, and the read / write request control signal includes the logical disk storage address.
[0145] The generating module 22 is configured to generate header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address.
[0146] The sending module 23 is used to send a message sending control signal containing the header information to the dedicated processing chip, so that the dedicated processing chip generates a network request message according to the header information and the data read and write request, and sends the network request message to the target storage server, so that the target storage server processes the data read and write request.
[0147] The device shown in FIG10 can execute the steps executed by the general processing chip in the aforementioned embodiment. The detailed execution process and technical effects are described in the aforementioned embodiment and will not be repeated here.
[0148] An embodiment of the present invention further provides a computing server, as shown in FIG11 , which may include a dedicated processing chip 31, a general-purpose processing chip 32, a memory 33, and a communication interface 34. Memory 33 stores executable code, which, when executed by dedicated processing chip 31 and general-purpose processing chip 32, implements the cloud storage processing method described in the aforementioned embodiment.
[0149] In addition, an embodiment of the present invention provides a non-temporary machine-readable storage medium, on which executable code is stored. When the executable code is executed by a dedicated processing chip and a general-purpose processing chip in a computing server, the cloud storage processing method provided in the aforementioned embodiment can be implemented.
[0150] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separate. Some or all of the modules may be selected based on actual needs to achieve the objectives of the present embodiment. Those skilled in the art can understand and implement the present invention without inventive effort.
[0151] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by adding a necessary general hardware platform, and of course can also be implemented by a combination of hardware and software. Based on this understanding, the above technical solution, or the part that contributes to the prior art, can be embodied in the form of a computer product. The present invention can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0152] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the various embodiments of the present invention.
Claims
1. A cloud storage processing method, characterized in that: A dedicated processing chip configured to provide data plane functions is applied to a computing server, and the method includes: Receive a data read / write request sent by a client virtual machine, wherein the data read / write request includes a logical disk storage address corresponding to the data to be read / written; Sending a read / write request control signal including the logical disk storage address to a general-purpose processing chip in the computing server configured to provide a control plane function, so that the general-purpose processing chip generates header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address; receiving a message sending control signal sent by the general processing chip, wherein the message sending control signal includes the header information; A network request message is generated according to the header information and the data read / write request, and the network request message is sent to the target storage server so that the target storage server processes the data read / write request.
2. The method according to claim 1, characterized in that The message sending control signal also includes read / write request identification information corresponding to the read / write request control signal and allocated by the general processing chip; and the network request message includes the read / write request identification information.
3. The method according to claim 1, characterized in that: The data read / write request is a data write request, and the data write request includes a memory address corresponding to the data to be written; The generating a network request message according to the header information and the data read and write request comprises: Reading the data to be written from the memory address; A network request message is generated according to the header information and the data to be written.
4. The method according to claim 2, characterized in that: The method further comprises: Receive a network response message sent by the target storage server, wherein the network response message includes the read / write request identification information and first message type information corresponding to the network response message; Sending a first message response control signal including the read / write request identification information and the first message type information to the general processing chip; receiving a read / write completion control signal generated by the general processing chip according to the first message type information, wherein the read / write completion control signal includes the read / write request identification information; Generate a data read / write response including the read / write request identification information, and send the data read / write response to the client virtual machine.
5. The method according to claim 4, characterized in that The data read and write request is a data read request, and the data read request includes a memory address corresponding to the read data; The network response message includes the read data; The method further comprises: In response to the read / write completion control signal, the read data is stored in the memory address.
6. The method according to claim 2, characterized in that The method further comprises: receiving a reception confirmation message sent by the target storage server, wherein the reception confirmation message includes the read / write request identification information, second message type information corresponding to the reception confirmation message, and message sequence number information; the reception confirmation message is used to indicate that the network request message has been received; Sending a second message response control signal including the read / write request identification information, the second message type information and the message sequence number information to the general processing chip; Receiving a message sending control signal corresponding to other read / write request control signals regenerated by the general processing chip according to the second message response control signal; wherein the other read / write request control signals correspond to other data read / write requests before the data read / write request; A control signal is sent according to the regenerated message, and a corresponding network request message is regenerated and sent to a corresponding storage server.
7. A cloud storage processing method, characterized in that: A general-purpose processing chip configured to provide a control plane function applied to a computing server, the method comprising: Receiving a read / write request control signal sent by a dedicated processing chip in the computing server that is configured to provide a data plane function, wherein the read / write request control signal is sent by the dedicated processing chip after receiving a data read / write request sent by a client virtual machine, wherein the data read / write request includes a logical disk storage address corresponding to the data to be read / written, and the read / write request control signal includes the logical disk storage address; Generate header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address; A message sending control signal containing the header information is sent to the dedicated processing chip, so that the dedicated processing chip generates a network request message according to the header information and the data read and write request, and sends the network request message to the target storage server, so that the target storage server processes the data read and write request.
8. The method according to claim 7, characterized in that The method further comprises: Allocate read / write request identification information corresponding to the read / write request control signal; the message sending control signal and the network request message include the read / write request identification information.
9. The method according to claim 7, characterized in that: The step of sending a message sending control signal including the header information to the dedicated processing chip includes: Determine a congestion status of a network connection between the computing server and the target storage server; Determining a sending time of the message sending control signal according to the congestion state; The message sending control signal is sent to the dedicated processing chip according to the sending time.
10. The method according to claim 8, characterized in that The method further comprises: Receive a first message response control signal sent by the dedicated processing chip, wherein the first message response control signal includes the read / write request identification information and first message type information corresponding to the network response message, and the first message response control signal is sent by the dedicated processing chip after receiving a network response message corresponding to the network request message sent by the target storage server, and the network response message includes the read / write request identification information and the first message type information; Generate a read / write completion control signal according to the first message type information, wherein the read / write completion control signal includes the read / write request identification information; The read / write completion control signal is sent to the dedicated processing chip, so that the dedicated processing chip generates a data read / write response including the read / write request identification information, and sends the data read / write response to the client virtual machine.
11. The method according to claim 8, characterized in that The method further comprises: Receive a second message response control signal sent by the dedicated processing chip, wherein the second message response control signal includes the read / write request identification information, the second message type information corresponding to the reception confirmation message, and the message sequence number information, and the second message response control signal is sent by the dedicated processing chip after receiving the reception confirmation message corresponding to the network request message sent by the target storage server, and the reception confirmation message includes the read / write request identification information, the second message type information, and the message sequence number information; the reception confirmation message is used to indicate that the network request message has been received; If it is determined that the network request message is out of order based on the second message type information and the message sequence number information, a message sending control signal corresponding to other read and write request control signals is regenerated, and the regenerated message sending control signal is sent to the dedicated processing chip so that the dedicated processing chip regenerates the corresponding network request message; wherein the other read and write request control signals correspond to other data read and write requests before the data read and write request.
12. A computing server, characterized in that: include: A memory, a general-purpose processing chip, a dedicated processing chip, and a communication interface; wherein the memory stores executable code, and when the executable code is executed by the general-purpose processing chip and the dedicated processing chip, the cloud storage processing method as described in any one of claims 1 to 6 is executed, or the cloud storage processing method as described in any one of claims 7 to 11 is executed.
13. A non-transitory machine-readable storage medium, characterized in that: The non-temporary machine-readable storage medium stores executable code, and when the executable code is executed by a general-purpose processing chip and a dedicated processing chip in a computing server, the cloud storage processing method as described in any one of claims 1 to 6 is executed, or the cloud storage processing method as described in any one of claims 7 to 11 is executed.
14. A cloud storage system, characterized in that: include: A computing server cluster and a storage server cluster, wherein any computing server in the computing server cluster includes a client virtual machine, a dedicated processing chip configured to provide data plane functions, and a general-purpose processing chip configured to provide control plane functions; The dedicated processing chip is used to execute the cloud storage processing method according to any one of claims 1 to 6; The general processing chip is used to execute the cloud storage processing method according to any one of claims 7 to 11.
Citation Information
Patent Citations
Distributed block device driving method and system for cloud storage
CN104636076A
Server, storage system and related method
CN107145304A
Virtual storage system architecture
CN114041112A
Virtual non-volatile memory express drive
US20160127468A1
Cited By
Data access method and device
CN119814881A
Data processing method and device, equipment and medium
CN122160429A
Data processing methods, devices, equipment and media
CN122160429B
