Cloud storage processing method, device, storage medium, and system
By adopting an architecture that separates the control plane and data plane in the cloud storage system, and by using a combination of dedicated processing chips and general-purpose processing chips, the problem of insufficient CPU resource utilization is solved, and faster data read and write processing and higher throughput performance are achieved.
Patent Information
- Application Number
- CN202310646348.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-01
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2043-06-01
AI Technical Summary
In traditional cloud storage systems, the CPU resources of computing servers are not fully utilized, and the data processing and network transmission processes take a long time, resulting in large processing delays and poor throughput performance for data read and write requests.
The architecture separates the control plane and the data plane. The data plane functions are handled by a dedicated processing chip (such as a DPU), while the control plane functions are handled by a general-purpose processing chip (such as a CPU). The dedicated processing chip receives data read and write requests and generates network request messages, while the general-purpose processing chip generates header information and network transmission control signals, reducing data conversion operations.
It reduces the processing latency of data read and write requests, improves throughput performance, optimizes CPU resource utilization, simplifies network transmission processes, and improves the processing efficiency of computing servers.
Smart Images

Figure CN119071310B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of cloud computing, and particularly relates to a cloud storage processing method, device, storage medium and system. BACKGROUND
[0002] With the continuous evolution of storage technology, the storage medium has evolved from the traditional hard disk drive (HDD) to the solid state drive (SSD), and then to the Optane SSD. The write delay of the storage medium has been reduced from the millisecond level to the microsecond level, and the throughput has been increased from the MB / s level to the GB / s level. At the same time, the network bandwidth of the data center of the cloud vendor is also continuously improving.
[0003] The cloud storage system such as cloud disk is sensitive to the delay of data read and write, and the cloud storage system with low delay and high throughput is the design goal. At present, the cloud storage system mostly adopts the architecture of separating computing and storage. In general, it is composed of a computing server cluster and a storage server cluster. The storage server cluster provides a physical storage space for data storage. One or more virtual machines can be deployed in each computing server, which correspond to different users respectively. The application programs of the corresponding users run in the virtual machines. In addition, the cloud storage service runs in the computing server. The virtual machine triggers the data read and write request to the storage server cluster through the cloud storage service.
[0004] In the traditional cloud storage system, after the data read and write request generated by the customer virtual machine is sent to the CPU in the computing server, the CPU performs related data processing, and based on the network protocol type between the storage server cluster and the computing server, some network transmission control strategies are used to generate network messages sent to a certain storage server, so as to send the network messages to the storage server through the network card, so that the storage server completes the corresponding data read and write operation. The data processing process performed by the CPU often needs to go through the processes of virtualization software stack, storage software stack, network protocol stack, etc. Multiple related data copying and conversion operations (such as reading data from memory or writing data to memory, copying data to the network card, and performing encryption and decryption for data security processing, etc.) will occur in the middle. The processing time is relatively long.
[0005] In fact, multiple CPUs are often included in a computing server, and the above data processing process and network transmission process need to occupy several CPUs to complete, which means that sufficient CPUs need to be reserved to complete these processing processes, and the remaining CPUs can be used to build the above customer virtual machine, and CPU resources cannot be better utilized. Moreover, the overall time consumed by the CPUs to complete the above data processing process and network transmission process (such as the copying of the above data on the memory and the network card, the encapsulation of the network message, and the like) is relatively long, which leads to a large processing delay of the data read / write request, and ultimately leads to poor throughput performance. SUMMARY
[0006] Embodiments of the present application provide a cloud storage processing method, device, storage medium and system to reduce the data read / write processing delay of cloud storage and improve the throughput performance.
[0007] In a first aspect, embodiments of the present application provide a cloud storage processing method applied to a special processing chip configured to provide data plane function in a computing server, and the method comprises:
[0008] receiving a data read / write request sent by a customer virtual machine, wherein the data read / write request comprises a logical disk storage address corresponding to to-be-read / written data;
[0009] sending a read / write request control signal comprising the logical disk storage address to a general processing chip configured to provide control plane function in the computing server, so that the general processing chip generates header information, wherein the header information comprises identification information of a target storage server corresponding to the logical disk storage address;
[0010] receiving a message sending control signal sent by the general processing chip, wherein the message sending control signal comprises the header information;
[0011] generating a network request message according to the header information and the data read / write request, and sending the network request message to the target storage server, so that the target storage server processes the data read / write request.
[0012] In a second aspect, embodiments of the present application provide a cloud storage processing device applied to a special processing chip configured to provide data plane function in a computing server, and the device comprises:
[0013] a receiving module configured to receive a data read / write request sent by a customer virtual machine, wherein the data read / write request comprises a logical disk storage address corresponding to to-be-read / written data;
[0014] The sending module is configured to send a read-write request control signal containing the logical disk storage address to a general processing chip configured to provide a control plane function in the computing server, so that the general processing chip generates header information, and the header information includes identification information of a target storage server corresponding to the logical disk storage address;
[0015] The receiving module is further configured to receive a packet sending control signal sent by the general processing chip, and the packet sending control signal includes the header information.
[0016] The generating module is configured to generate a network request packet according to the header information and the data read-write request.
[0017] The sending module is further configured to send the network request packet to the target storage server, so that the target storage server processes the data read-write request.
[0018] In a third aspect, an embodiment of the present application provides a cloud storage processing method applied to a general processing chip configured to provide a control plane function in a computing server, and the method comprises the following steps:
[0019] Receiving a read-write request control signal sent by a special processing chip configured to provide a data plane function in the computing server, the read-write request control signal being sent by the special processing chip after receiving a data read-write request sent by a customer virtual machine, the data read-write request including a logical disk storage address corresponding to to-be-read or to-be-written data, and the read-write request control signal containing the logical disk storage address.
[0020] Generating header information, and the header information includes identification information of a target storage server corresponding to the logical disk storage address.
[0021] The packet sending control signal containing the header information is sent to the special processing chip, so that the special processing chip generates a network request packet according to the header information and the data read-write request, and sends the network request packet to the target storage server, so that the target storage server processes the data read-write request.
[0022] In a fourth aspect, an embodiment of the present application provides a cloud storage processing device applied to a general processing chip configured to provide a control plane function in a computing server, and the device comprises:
[0023] The receiving module is configured to receive a read-write request control signal sent by a special processing chip configured to provide a data plane function in the computing server, wherein the read-write request control signal is sent by the special processing chip after receiving a data read-write request sent by a customer virtual machine, the data read-write request comprises a logical disk storage address corresponding to to-be-read / written data, and the read-write request control signal comprises the logical disk storage address.
[0024] The generating module is configured to generate header information, wherein the header information comprises identification information of a target storage server corresponding to the logical disk storage address.
[0025] The sending module is configured to send a message containing the header information to the special processing chip, so that the special processing chip generates a network request message according to the header information and the data read-write request, and sends the network request message to the target storage server, so that the target storage server processes the data read-write request.
[0026] In a fifth aspect, an embodiment of the present application provides a computing server, comprising: a memory, a general processing chip, a special processing chip, and a communication interface; wherein the memory stores executable code, and when the executable code is executed by the general processing chip and the special processing chip, the cloud storage processing method in the first aspect or the third aspect is executed.
[0027] In a sixth aspect, an embodiment of the present application provides a non-transitory machine readable storage medium, wherein the non-transitory machine readable storage medium stores executable code, and when the executable code is executed by a general processing chip and a special processing chip in a computing server, at least the cloud storage processing method in the first aspect or the third aspect is implemented.
[0028] In a seventh aspect, an embodiment of the present application provides a cloud storage system, comprising:
[0029] A computing server cluster and a storage server cluster, wherein any computing server in the computing server cluster comprises a customer virtual machine, a special processing chip configured to provide a data plane function, and a general processing chip configured to provide a control plane function.
[0030] The special processing chip is configured to execute the cloud storage processing method in the first aspect.
[0031] The general processing chip is configured to execute the cloud storage processing method in the third aspect.
[0032] In the cloud storage processing scheme provided in the embodiments of the present application, a distributed cloud storage system composed of a computing server cluster and a storage server cluster is provided. Any computing server in the computing server cluster includes a customer virtual machine using cloud storage services, a special-purpose processing chip configured to provide data plane functions, and a general-purpose processing chip configured to provide control plane functions. The special-purpose processing chip is, for example, a data processing unit (DPU), and the general-purpose processing chip is, for example, a CPU. In general, the control plane functions mainly include network transmission control functions, such as network sending control logic of data read / write requests to the storage server and verification logic of network response messages fed back by the storage server; and the data plane functions mainly include data processing logic, such as data copying, encryption, network message encapsulation, etc. The special-purpose processing chip is better at simple data processing work, and is not good at complex network transmission protocol processing work, while the general-purpose processing chip is the opposite. Therefore, by combining the advantages of the general-purpose processing chip and the special-purpose processing chip, the two chips work together to complete the processing task of the data read / write request triggered by the customer virtual machine, better performance can be obtained, and for the computing server, only a small amount of general-purpose processing chips can be allocated to provide the control plane functions, and more general-purpose processing chips can be used to build more customer virtual machines, so that the resources of the general-purpose processing chips can be more fully utilized.
[0033] Specifically, after receiving the data read / write request sent by the customer virtual machine, the special-purpose processing chip parses the data read / write request and generates a read / write request control signal containing a logical disk storage address corresponding to the to-be-read / written data in the data read / write request and sends the read / write request control signal to the general-purpose processing chip. The general-purpose processing chip generates header information based on a set network transmission strategy, the header information includes identification information of a target storage server corresponding to the logical disk storage address, and sends a message containing the header information to the special-purpose processing chip. The special-purpose processing chip encapsulates the data read / write request according to 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, i.e., completes the corresponding data read / write operation.
[0034] As can be seen, the special-purpose processing chip actually integrates a network card function, can directly encapsulate the data read / write request into a network request message based on the header information fed back by the general-purpose processing chip, reduces the data conversion operation (for example, for a data write request, the to-be-written data is directly encapsulated into a network request message after being copied out of the memory, without being copied to the network card, reducing the data copying operation), thereby reducing the data read / write request processing delay and improving the processing throughput. BRIEF DESCRIPTION OF DRAWINGS
[0035] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments description will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without any creative effort based on these drawings.
[0036] Figure 1 A schematic diagram of a cloud storage processing system provided by an embodiment of the present application is shown in the figure.
[0037] Figure 2 An interaction flow chart of a cloud storage processing method provided by an embodiment of the present application is shown in the figure.
[0038] Figure 3 An interaction flow chart of a cloud storage processing method provided by an embodiment of the present application is shown in the figure.
[0039] Figure 4 An interaction flow chart of a cloud storage processing method provided by an embodiment of the present application is shown in the figure.
[0040] Figure 5 A schematic diagram of a data plane composition structure provided by an embodiment of the present application is shown in the figure.
[0041] Figure 6 A schematic diagram of a control plane composition structure provided by an embodiment of the present application is shown in the figure.
[0042] Figure 7 A schematic diagram of a control plane processing process in a network message sending process provided by an embodiment of the present application is shown in the figure.
[0043] Figure 8 A schematic diagram of a control plane processing process in a network message receiving process provided by an embodiment of the present application is shown in the figure.
[0044] Figure 9 A schematic diagram of a cloud storage processing device structure provided by an embodiment of the present application is shown in the figure.
[0045] Figure 10 A schematic diagram of a cloud storage processing device structure provided by an embodiment of the present application is shown in the figure.
[0046] Figure 11 A schematic diagram of a computing server structure provided by an embodiment of the present application is shown in the figure. DETAILED DESCRIPTION
[0047] In order to make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are some but not all of the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative work fall within the protection scope of the present application. In addition, the step sequence in each method embodiment below is only an example, not a strict limitation.
[0048] It should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the embodiments of the present application are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal.
[0049] Some concepts involved in the embodiments of the present application will be explained and described first.
[0050] Data Processing Unit (DPU): is a large category of special-purpose processors, which is another important computing chip in the data center scenario after CPU (Central Processing Unit) and GPU (Graphics Processing Unit), providing a computing engine for high-bandwidth, low-latency, data-intensive computing scenarios.
[0051] Non-Volatile Memory Express (NVMe): NVMe is designed for high-performance devices, and its data access protocol is more concise and lightweight. With multi-queue technology, it can greatly improve storage performance.
[0052] Virtio: Virtio is an IO semi-virtualization solution that provides a communication framework and programming interface between the guest OS (guest operating system) and the hypervisor (a virtualization management program). The benefits are to improve performance and reduce compatibility problems caused by cross-platform, and it is widely used in cloud computing.
[0053] Direct Memory Access (DMA): is a function provided by some computer bus architectures, which enables an attached device (such as a disk drive) to send or read data directly from the computer's mainboard memory.
[0054] Figure 1 A schematic diagram of a cloud storage processing system provided by an embodiment of the present application is shown in FIG. 1, which includes a computing server cluster and a storage server cluster. Figure 1
[0055] The computing server cluster and the storage server cluster can be physically isolated, i.e., the cloud storage system provided by an embodiment of the present application can adopt an architecture separating storage from computing.
[0056] Each of the storage servers can include various types of physical storage media, such as disks, and only general-purpose processing chips can be deployed in the storage servers for local data access processing.
[0057] Each of the computing servers can include a customer virtual machine, a dedicated processing chip configured to provide data plane functions (schematically shown as I / O data plane in FIG. 1), and a general-purpose processing chip configured to provide control plane functions (schematically shown as I / O control plane in FIG. 1). Figure 1 Figure 1 In practice, a cloud storage service, such as a common cloud disk service, is also running in the computing servers, and each customer virtual machine invokes the cloud storage service to perform data read / write processing with the storage server cluster.
[0058] Each of the customer virtual machines can be virtualized based on hardware resources, such as general-purpose processing chips, in the corresponding computing servers. At least one customer virtual machine can be constructed in each computing server to be assigned to different users for use, and the users can run their various application programs in the corresponding customer virtual machines. The customer virtual machines can generate data read / write requests during the running of the application programs, and can invoke the cloud storage service provided by the computing servers to access the storage server cluster to perform read / write processing on the to-be-read / written data.
[0059] The dedicated processing chip can include, but is not limited to, a DPU schematically shown in FIG. 1. The dedicated processing chip is used to implement accelerated processing of data read / write requests triggered by the customer virtual machines, and thus other dedicated processing chips capable of providing accelerated computing functions can also be applicable. Figure 1 Figure 1 The general-purpose processing chip can include, but is not limited to, a CPU schematically shown in FIG. 1.
[0060] In fact, each computing server may include multiple general-purpose processing chips (such as multiple CPUs, usually referring to multiple CPU cores). These general-purpose processing chips are used to build one or more guest virtual machines and to provide the aforementioned control plane functions.
[0061] Compared to traditional solutions that use only general-purpose processing chips for data read / write requests, this invention divides the data read / write request processing into two parts: a data plane and a control plane. The control plane primarily refers to the network transport layer functions, used for network transmission control processing. The data plane primarily performs data transmission and reception and related computations based on the network transmission control processing results. The control plane functions are provided by a general-purpose processing chip, while the data plane functions are provided by a dedicated processing chip. Dedicated processing chips (such as DPUs), limited by their programmability, are not suitable for handling complex states and logic (such as complex network transmission protocol processing), but their performance for simple logic processing is superior to that of general-purpose processing chips (CPUs). Conversely, general-purpose processing chips need to interact with network cards, memory, and other related devices when performing these data processing tasks, resulting in longer processing times. Therefore, in this invention, only a small number of general-purpose processing chips are needed in the computing server to provide control plane functions, allowing more general-purpose processing chips to be used to build guest virtual machines for user use, thereby improving the utilization rate of general-purpose processing chips.
[0062] Furthermore, based on the architecture of separating the control plane and data plane, the logic in the cloud storage system that is simple but requires processing large amounts of data is separated to the data plane and implemented in a dedicated processing chip (such as a DPU). This can improve I / O processing performance, that is, improve the processing performance of data read and write requests. I / O routing, congestion control, and retransmission mechanisms are all handled by the control plane, which can simplify the design of the data plane and realize complete network transport layer functions.
[0063] Furthermore, by adopting the aforementioned architecture that separates the control plane and data plane, the control plane function is independent of the data, providing greater flexibility. For example, when the network protocol used between the compute server cluster and the storage server cluster needs to be updated, only the general-purpose processing chip needs to be adapted and updated, resulting in lower costs.
[0064] like Figure 1 As shown, based on the aforementioned architecture that separates the control plane and data plane, a client virtual machine in a computing server can send data read / write requests to a dedicated processing chip that provides data plane functionality, based on the interface specification corresponding to a certain virtualization software. For example... Figure 1The NVMe request sent by the NVMe specification is shown in the middle. The control signals are transmitted between the special processing chip and the general processing chip (CPU), and do not carry the data content to be read and written, thereby reducing the overhead of the control plane. Based on the control plane processing result of the general processing chip, the special processing chip can transmit network messages with a certain storage server.
[0065] The working processes of the special processing chip and the general processing chip in a certain computing server will be described below in conjunction with the following embodiments.
[0066] Figure 2 An interaction flowchart of a cloud storage processing method provided by the embodiment of the application is shown in FIG. 1. Figure 2 The method comprises the following steps:
[0067] 201. The customer virtual machine sends a data read / write request to the special processing chip, and the data read / write request comprises a logical disk storage address corresponding to the data to be read and written.
[0068] 202. The special processing chip sends a read / write request control signal comprising the logical disk storage address to the general processing chip.
[0069] 203. The general processing chip generates header information, and the header information comprises identification information of a target storage server corresponding to the logical disk storage address.
[0070] 204. The general processing chip sends a message sending control signal comprising the header information to the special processing chip.
[0071] 205. The special processing chip generates a network request message according to the header information and the data read / write request.
[0072] 206. The special processing chip sends the network request message to the target storage server, so that the target storage server processes the data read / write request.
[0073] A certain application program running in the customer virtual machine will generate a data read / write requirement, thereby triggering the above-mentioned data read / write request. The data read / write request is a general term for data read request and data write request.
[0074] In actual application, the communication between the special processing chip and the customer virtual machine will conform to a certain interface specification, such as the Virtio, NVMe, etc. interface specification. Taking the NVMe specification as an example, the customer virtual machine will encapsulate the data read / write request triggered by the application program according to the interface specification, obtain an NVMe request, and send it to the special processing chip.
[0075] The data read-write request includes a logical disk storage address corresponding to the data to be read or written, which is a logic block address (LBA). For a cloud storage service (usually referred to as a cloud disk service) provided by a cloud storage system, a user using the cloud storage service is allocated an LBA address range corresponding to a certain capacity (such as 1 TB), and the LBA needs to be carried when a client virtual machine triggers a data read-write request. Specifically, if the current data read-write request is a data read request, the LBA indicates a logical storage address corresponding to the data to be read in the storage server cluster, and the required data needs to be read from the address; if the current data read-write request is a data write request, the LBA indicates the logical storage address in the storage server cluster to which the data to be written needs to be written.
[0076] In fact, the data read request also includes a memory address. For a data write request, the memory address indicates that the data to be written has been written to the memory address, and the dedicated processing chip needs to copy the data to be written from the memory address to finally transmit it to a storage server. For a data read request, the memory address indicates that the data read from the storage server cluster needs to be written to the memory address by the dedicated processing chip so that the client virtual machine can obtain the data therefrom.
[0077] After receiving the above NVMe request, the dedicated processing chip parses it to extract the logical disk storage address therefrom, and can also extract the memory address, generates a read-write request control signal including the logical disk storage address (or also including the memory address), and sends it to the general-purpose processing chip.
[0078] The general-purpose processing chip generates header information corresponding to the data read-write request based on a locally configured network transmission strategy, and the header information includes identification information of a target storage server corresponding to the logical disk storage address, such as an IP address and a port number of the target storage server.
[0079] The above network transmission strategy can include a preconfigured routing table, which records routing information of different logical disk storage addresses of different client virtual machines in the storage server cluster, and the routing information includes identification information of the storage server and can also include a corresponding physical storage address in the corresponding storage server.
[0080] For example, assuming that the data read / write request triggered by the client virtual machine A includes the logical disk storage address LBA=X, according to the routing table, it is determined that the 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 packet information generated by the general processing chip for the data read / write request includes the identification information (IP address, etc.) of the target storage server Z1 and the physical storage address Y.
[0081] In addition, the network transmission strategy can optionally include an I / O table. After receiving the read / write request control signal, the general processing chip can assign an I / O identifier corresponding to the read / write request control signal (for convenience, referred to as I / O identifier), which is used to uniquely identify a data read / write request. Since the control signal is transmitted between the special processing chip and the general processing chip, rather than the original data, i.e., the data read / write request is not transmitted between the two chips, in order to indicate that the control signal transmitted between the two chips is related to the same data read / write request, the I / O identifier is used as a representation.
[0082] After generating the I / O identifier, the general processing chip can store the I / O identifier in the I / O table. In fact, the information stored in the I / O table together with the I / O identifier can also include the logical disk storage address, the memory address, and the reception time (indicating when the data read / write request is triggered) extracted by the general processing chip from the received read / write request control signal. The state information corresponding to the I / O identifier can also be recorded, which is used to indicate the processing state of the data read / write request, such as the reception state, the state of sending to the storage server, the state of receiving the network response packet from the storage server, the state of timeout without receiving the network response packet, etc. When the I / O identifier is generated and stored in the I / O table, the initial state can be the reception state, indicating that the data read / write request triggered by the client virtual machine is received.
[0083] In addition, the general processing chip can also determine network transmission parameters based on the network transmission control strategy, such as data encryption parameters, checksum parameters, etc.
[0084] In summary, the header information generated by the general processing chip based on the network transmission control strategy for the data read / write request includes but is not limited to the identification information of the target storage server, and can also include the I / O identifier and other network transmission parameters, and can even include the extracted memory address. The general processing chip organizes the generated header information into a packet transmission control signal and sends it to the special processing chip.
[0085] It should be noted that the general processing chip can determine the congestion state of the network connection between the computing server and the target storage server in the process of sending the above message sending control signal to the special processing chip, determine the sending time of the message sending control signal according to the congestion state, and send the message sending control signal to the special processing chip according to the sending time. In short, if the above network connection is in a non-congestion state, the message sending control signal can be sent to the special processing chip immediately, otherwise the judgment of whether the network connection is in a congestion state can be made after waiting for a set time. That is, the network transmission control strategy of the general processing chip also includes network congestion control.
[0086] After the special processing chip receives the above message sending control signal, the network request message is encapsulated according to the above header information carried therein.
[0087] For example, if the data read-write request is a data write request, the data write request includes the memory address corresponding to the to-be-written data, so that the memory address can also be included in the read-write request control signal and the message sending control signal. At this time, the special processing chip can read the to-be-written data from the memory address based on DMA, generate a network request message according to the header information and the to-be-written data, and the header part of the network request message includes the identification information of the target storage server and other information such as I / O identification. When the above header information includes the data encryption parameter, the special processing chip also performs encryption processing on the to-be-written data based on the data encryption parameter, and the encryption result is filled in the payload part of the network request message.
[0088] The special processing chip then sends the encapsulated network request message to the target storage server, so that the target storage server performs corresponding data read-write processing.
[0089] In summary, based on the architecture of separating the control plane and the data plane, the logic of processing a large amount of data with simple processing logic is separated to the data plane and implemented in the special processing chip, and the complex network transmission control function is separated to the control plane and implemented in the general processing chip. In a computing server, only a small number of general processing chips can be allocated to handle the control plane function, and a small number of special processing chips can be deployed to handle the data plane function, the overall cost is lower, and the special processing chip can realize the acceleration processing of the data plane function (such as integrating the network card function, so only one read or write memory address is needed). The processing time of the data read-write request can be reduced, and the throughput performance can be improved.
[0090] The above introduces the process of sending the data read-write request to the storage server cluster by the special processing chip and the general processing chip, and the following introduces the process of the special processing chip and the general processing chip in the computing server receiving the data read-write request from the storage server cluster. Figure 3 and Figure 4The embodiment shown introduces the processing procedure of the target storage server feedback network response message.
[0091] Figure 3 An interactive flowchart of a cloud storage processing method provided by the embodiment is shown in the figure. Figure 3 The method comprises the following steps.
[0092] 301. The target storage server sends a network response message to the special processing chip, wherein the network response message contains read-write request identification information and first message type information corresponding to the network response message.
[0093] 302. The special processing chip sends a first message response control signal containing the read-write request identification information and the first message type information to the general processing chip.
[0094] 303. The general processing chip generates a read-write completion control signal according to the first message type information, wherein the read-write completion control signal contains the read-write request identification information.
[0095] 304. The general processing chip sends the read-write completion control signal to the special processing chip.
[0096] 305. The special processing chip generates a data read-write response containing the read-write request identification information.
[0097] 306. The special processing chip sends the data read-write response to the customer virtual machine.
[0098] After the target storage server receives the network request message, it will perform corresponding data read-write processing, and then generate a network response message to feedback to the special processing chip.
[0099] It can be understood that if the customer virtual machine triggers a data write request, the target storage server completes the write processing of the data to be written, and 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.
[0100] The header part of the network response message generated by the target storage server will carry the above-mentioned I / O identification and first message type information, in addition to which it will also contain identification information of the target storage server, etc. Among them, the first message type information is used to represent that the message sent is a network response message of this type. This type of information indicates that the target storage server has successfully completed the corresponding data read-write processing.
[0101] The special-purpose processing chip receives the network response message, 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 the first message response control signal to the general-purpose processing chip to inform the general-purpose processing chip that the network response message fed back by the target storage server has been received.
[0102] The general-purpose processing chip determines, based on the first message type information, that the network response message fed back by the target storage server has been received by the special-purpose processing chip. Thus, a read / write completion control signal can be generated and sent to the special-purpose processing chip. In practice, the general-purpose processing chip can update the congestion state information of the network connection between the computing server and the target storage server based on the received first message response control signal.
[0103] The special-purpose processing chip receives the read / write completion control signal, performs data read / write response processing, and generates a data read / write response containing the I / O identifier and sends the data read / write response to the guest virtual machine. If the guest virtual machine triggers a data read request, the data read / write response processing includes: in response to the read / write completion control signal, storing the read data in a memory address, which is the memory address contained in the data read / write request.
[0104] Specifically, assuming that the interface specification between the special-purpose processing chip and the guest virtual machine is NVMe, the data read / write response generated by the special-purpose processing chip is an NVMe response. For a data read request, the NVMe response can further include the memory address, so that the guest virtual machine reads the data in the memory address.
[0105] The above Figure 3 The embodiments described above introduce a case where the target storage server sends a network response message to the special-purpose processing chip after completing data read / write processing. In practice, before sending the network response message, the target storage server can also send another type of network message, a reception confirmation message, to indicate that the network request message sent by the special-purpose processing chip has been received. Based on the reception confirmation message, the general-purpose processing chip can perform network retransmission control, as described in the embodiments shown in Figure 4
[0106] Figure 4 An interaction flowchart of a cloud storage processing method provided by an embodiment of the present application is shown in Figure 4 The method includes the following steps:
[0107] 401. The target storage server sends a reception confirmation message to the special-purpose processing chip, wherein the reception confirmation message contains read / write request identifier information, second message type information corresponding to the reception confirmation message, and message sequence number information.
[0108] 402、The special-purpose processing chip sends a second message response control signal containing read-write request identification information, second message type information, and message sequence number information to the general-purpose processing chip.
[0109] 403、The general-purpose processing chip regenerates message sending control signals corresponding to other read-write request control signals according to the second message response control signal, the other read-write request control signals corresponding to other data read-write requests before the data read-write request.
[0110] 404、The general-purpose processing chip sends the regenerated message sending control signals to the special-purpose processing chip.
[0111] 405、The special-purpose processing chip regenerates corresponding network request messages according to the regenerated message sending control signals.
[0112] 406、The special-purpose processing chip sends the regenerated network request messages to the corresponding storage server.
[0113] For ease of description, it is assumed in this embodiment that the same customer virtual machine triggers data read-write request 1, data read-write request 2, and data read-write request 3 before and after, and the sending process for each data read-write request can refer to the processing process of the embodiment shown in Figure 2 It is assumed that the general-purpose processing chip sends corresponding message sending control signals to the special-purpose processing chip in sequence for the three data read-write requests, and it is assumed that the target storage servers corresponding to the three data read-write requests are the same.
[0114] The special-purpose processing chip generates corresponding three network request messages according to the three message sending control signals received in sequence and sends them to the target storage server in sequence. The target storage server generates corresponding second message response control signals and sends them to the special-purpose processing chip whenever it receives a network request message. The second message response control signal contains the message sequence number corresponding to the corresponding network request message. The special-purpose processing chip compares the size order of the message sequence numbers in the second message response control signals received in sequence to determine whether some network request messages need to be retransmitted.
[0115] It is assumed that data read-write request 1 corresponds to network request message 1, the sending time is T1; data read-write request 2 corresponds to network request message 2, the sending time is T2; and data read-write request 3 corresponds to network request message 3, the sending time is T3. For ease of description, it is assumed that the time consumed by the special-purpose processing chip for sending the above network request messages to the target storage server is ignored.
[0116] Suppose that the target storage server currently receives the network request message 3, thereby generating a receiving confirmation message 3 corresponding to the network request message 3, which contains the I / O identifier carried in the network request message 3, the second message type information indicating that it is a receiving confirmation message, and the message serial number information (serial number 3 in this example) corresponding to the network request message 3.
[0117] After the general processing chip receives the second message response control signal containing the above information, it is determined that the target storage server has received the network request message 3. However, the general processing chip discovers that the second message response control signals corresponding to the network request message 1 and the network request message 2 have not been received based on the received second message response control signals, which indicates that the network request message 1 and the network request message 2 have not been received by the target storage server, i.e., the two network request messages are lost. At this time, the general processing chip triggers the retransmission processing for the two network request messages: based on the read / write request control signals corresponding to the corresponding two data read / write requests received previously, the corresponding message sending control signals are regenerated and sent to the special processing chip, so that the special processing chip regenerates the above two network request messages according to the received message sending control signals and sends them to the target storage server.
[0118] In summary, in the embodiment of the present application, the cloud storage system is disassembled into the architecture with separated control plane and data plane, the data plane is implemented in the special processing chip, and the control plane is implemented in the general processing chip. The special processing chip has limited programming capability and is not suitable for processing complex states and logics, but has better performance than the general processing chip for simple processing logic, and can improve the processing performance of I / O. The provided data-independent I / O and transport layer control plane can implement the complete network transport layer function with congestion control and reliable transmission capability, the routing, congestion control and retransmission processing of I / O are processed by the control plane, and the flexibility and reliability are high, and the design of the data plane is simplified. Only control signals are transmitted between the data plane and the control plane, and no data is carried, thereby reducing the overhead of the control plane. The construction of the header information is completed by the control plane, and different network transport layer protocols can be switched at low cost.
[0119] The cooperation process of the general processing chip and the special processing chip is described above, and the constituent structure of the data plane function on the special processing chip and the constituent structure of the control plane function on the general processing chip are described below.
[0120] Figure 5 A constituent structure diagram of a data plane provided in the embodiment of the present application is shown in FIG. 3. Figure 5As shown in the figure, the customer virtual machine triggers data read-write request, i.e. I / O request, and it is assumed that the I / O request triggered through the NVMe specification (referred to as NVMe request) will first enter the NVMe request queue, and the NVMe request processing module will consume the NVMe request queue, i.e. read an NVMe request from it in sequence, extract the I / O information (such as LBA, memory address) therein, 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 for sending to the control plane by the control signal sending module.
[0121] After the control signal receiving module receives the message sending control signal sent by the control plane, the message sending control signal is sent to the network message assembling module. The network message assembling module constructs a network message header according to the message sending control signal, and obtains the data to be written (assuming that the NVMe request is a data write request) through DMA, assembles a network request message, and sends the network request message to the message sending module for sending to the target storage server by the message sending module. After the network response message of the target storage server reaches the data plane message receiving module, it is sent to the network message parsing module. After the network message parsing module determines that the received network message meets the set characteristics (such as the first message type information indicating that the message type is a network response message is received), a message response control signal is generated, and the message response control signal is sent to the control signal sending module for sending to the control plane by the control signal sending module. After the control signal receiving module receives the I / O completion control signal (i.e. the read-write completion control signal mentioned above) sent by the control plane, the I / O completion control signal is sent to the NVMe response processing module. The NVMe response processing module constructs an NVMe request completion command (i.e. the data read-write response mentioned above) and sends it to the NVMe request completion queue.
[0122] Figure 6 A schematic diagram of the composition structure of the control plane provided by the embodiment of the application is shown in the figure. Figure 6 As shown in the figure, the control plane receives various control signals from the data plane from the control signal receiving module.
[0123] For I / O request control signal, it will enter I / O processing module. I / O processing module will check I / O request, assign unique identification of I / O request, and write into I / O table. Then I / O request will enter routing table to find target storage server corresponding to the I / O request. Finally, I / O request enters transmission layer control module to perform congestion control, generates message sending control signal, and sends to data plane through control signal sending module. In the I / O request control signal, LBA and memory address are included, and the checking of I / O request includes, for example, determining whether the data amount to be read or written is consistent according to the two addresses, and determining whether the data amount to be read or written exceeds the upper limit of the capacity available to the customer virtual machine. For example, if 500MB of data is to be written, the address ranges described by the above two addresses should both be consistent with the data amount of 500MB, and the storage space available to the customer virtual machine should be greater than the capacity of 500MB.
[0124] For message response control signal, it will enter message processing module. After message processing module analyzes message response control signal, it sends message response control signal to transmission layer control module. Transmission layer control module performs type judgment of network message and retransmission judgment. Finally, message response control signal will enter I / O table to find corresponding I / O information according to I / O identification, generate I / O completion signal, and send to data plane through control signal sending module.
[0125] The following will be described in combination with Figure 7 and Figure 8 which respectively illustrate the processing process of transmission layer control module in control plane in network message sending and receiving process.
[0126] Figure 7 A processing process diagram of control plane in network message sending process is provided for the embodiment of the present application. As shown in Figure 7 , I / O request control signal, retransmission signal and window update signal will trigger the sending process of transmission layer control module.
[0127] Specifically, for I / O request control signal received from data plane, it is first added to sending queue, and then the congestion state of network connection is checked. If network connection is congested, it is directly ended (waiting for a set time length before next judgment), otherwise, transmission layer control module will consume sending queue, i.e. taking out an I / O request control signal from it, generating header information, generating message sending control signal to send to data plane, and updating connection table.
[0128] The transport layer control module can maintain a connection table that records congestion status information of network connections between different compute servers and storage servers. For example, it records how many control signals have been sent (currently N1) and how many control signals indicating acknowledgment have been received (currently N2). Based on this, the congestion determination can be implemented as follows: determine whether the difference between N1 and N2 is greater than a set threshold. If it is, the network connection between the corresponding compute server and storage server is congested; otherwise, it is in a non-congested state.
[0129] The above-mentioned update connection table can be simply understood as incrementing the value of N1 corresponding to the network connection between the corresponding computing server and storage server by one after the message sending control signal is issued.
[0130] Figure 8 This is a schematic diagram illustrating the control plane processing procedure during network packet reception, provided as an embodiment of the present invention. For example... Figure 8 As shown, after the transport layer control module receives a message response control signal from the data plane, it first determines whether it is a receive acknowledgment message. Specifically, as mentioned above, this is determined based on the message type information carried in the message response control signal. If not, it indicates that a network response message has been received, and a window update signal is generated. If so, it first checks whether the message is out of order. The window update signal refers to generating a consumption signal to consume an I / O request control signal waiting in the send queue.
[0131] If there is no out-of-order issue, the connection table is updated directly. Updating the connection table, for example, involves incrementing the value of N2 corresponding to the network connection between the corresponding compute server and storage server by one.
[0132] If the messages are out of order, the I / O request control signal corresponding to the unacknowledged network request message will be re-added. Figure 7 The transmit queue shown in the diagram generates retransmission signals to retransmit these I / O request control signals, and finally updates the connection table. For example, it updates the value of N1 based on the retransmission status, and can also adjust the size of the set threshold that is compared with the difference between N1 and N2.
[0133] The following describes in detail one or more embodiments of a communication device according to the present invention. Those skilled in the art will understand that these devices can all be configured using commercially available hardware components through the steps taught in this solution.
[0134] Figure 9 This is a schematic diagram of a cloud storage processing device provided in an embodiment of the present invention. This device is applied to the aforementioned dedicated processing chip, such as... Figure 9As shown, the device comprises a receiving module 11, a sending module 12, and a generating module 13.
[0135] The receiving module 11 is configured to receive a data read-write request sent by a customer virtual machine, wherein the data read-write request comprises a logical disk storage address corresponding to data to be read or written.
[0136] The sending module 12 is configured to send a read-write request control signal comprising the logical disk storage address to a general processing chip configured to provide a control plane function in the computing server, so that the general processing chip generates header information, wherein the header information comprises identification information of a target storage server corresponding to the logical disk storage address.
[0137] The receiving module 11 is further configured to receive a packet sending control signal sent by the general processing chip, wherein the packet sending control signal comprises the header information.
[0138] The generating module 13 is configured to generate a network request packet according to the header information and the data read-write request.
[0139] The sending module 12 is further configured to send the network request packet to the target storage server, so that the target storage server processes the data read-write request.
[0140] Figure 9 The device shown can perform the steps performed by the special processing chip in the foregoing embodiments, and the detailed execution process and technical effects are described in the foregoing embodiments, which will not be described here.
[0141] Figure 10 A structural schematic diagram of a cloud storage processing device provided by an embodiment of the present application is shown, which is applied to the general processing chip as described above, and the device comprises a receiving module 21, a generating module 22, and a sending module 23. Figure 10 As shown, the device comprises a receiving module 11, a sending module 12, and a generating module 13.
[0142] The receiving module 21 is configured to receive a read-write request control signal sent by a special processing chip configured to provide a data plane function in the computing server, wherein the read-write request control signal is sent by the special processing chip after receiving a data read-write request sent by a customer virtual machine, the data read-write request comprises a logical disk storage address corresponding to data to be read or written, and the read-write request control signal comprises the logical disk storage address.
[0143] The generating module 22 is configured to generate header information, wherein the header information comprises identification information of a target storage server corresponding to the logical disk storage address.
[0144] The sending module 23 is configured to send a message sending control signal containing the header information to the special-purpose processing chip, so that the special-purpose processing chip generates a network request message according to the header information and the data read / write request, and sends the network request message to the target storage server, so that the target storage server processes the data read / write request.
[0145] Figure 10 The device shown can perform the steps performed by the general-purpose processing chip in the foregoing embodiments, and the detailed execution process and technical effects are described in the foregoing embodiments, which will not be described here again.
[0146] The embodiment of the present application also provides a computing server, as shown in the figure. Figure 11 The computing server can include a special-purpose processing chip 31, a general-purpose processing chip 32, a memory 33, and a communication interface 34. The memory 33 stores executable codes, and when the executable codes are executed by the special-purpose processing chip 31 and the general-purpose processing chip 32, the cloud storage processing method as described in the foregoing embodiments is realized.
[0147] In addition, the embodiment of the present application provides a non-transitory machine-readable storage medium, which stores executable codes, and when the executable codes are executed by the special-purpose processing chip and the general-purpose processing chip in the computing server, the cloud storage processing method as described in the foregoing embodiments can be realized.
[0148] The device embodiments described above are only schematic, and the units described as separate components can or can not be physically separate. Some or all of the modules can be selected according to actual needs to achieve the purpose of the embodiment. Those skilled in the art can understand and implement without creative labor.
[0149] From the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be realized by means of a general hardware platform if necessary, and of course can also be realized by means of a combination of hardware and software. Based on such understanding, the above technical solutions can be embodied in the form of a computer product, and the present application can be embodied in 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 codes.
[0150] It should be pointed out finally that the above embodiments are only used to illustrate the technical solutions of the present application, but not to limit the same; and although the present application has been described in detail with reference to the foregoing embodiments, it should be appreciated by those skilled in the art that the technical solutions recorded in the foregoing embodiments can be modified, or some technical features thereof can be replaced equivalently; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.
Claims
1. A cloud storage processing method, characterized by, A method applied to a special processing chip configured to provide data plane functions in a computing server, the method comprising: receiving a data read / write request sent by a guest virtual machine, the data read / write request comprising a logical disk storage address corresponding to to-be-read / written data; sending a read / write request control signal comprising the logical disk storage address to a general processing chip configured to provide control plane functions in the computing server, so that the general processing chip generates header information, the header information comprising identification information of a target storage server corresponding to the logical disk storage address; receiving a packet sending control signal sent by the general processing chip, the packet sending control signal comprising the header information; generating a network request packet according to the header information and the data read / write request, and sending the network request packet to the target storage server, so that the target storage server processes the data read / write request.
2. The method of claim 1, wherein, The packet sending control signal further comprises read / write request identification information allocated by the general processing chip corresponding to the read / write request control signal; and the network request packet comprises the read / write request identification information.
3. The method of claim 1, wherein, The data read / write request is a data write request, and the data write request comprises a memory address corresponding to to-be-written data; The method further comprises: receiving a network response packet sent by the target storage server, the network response packet comprising the read / write request identification information and first packet type information corresponding to the network response packet; sending a first packet response control signal comprising the read / write request identification information and the first packet type information to the general processing chip; 4. The method of claim 2, wherein, receiving a read / write completion control signal generated by the general processing chip according to the first packet type information, the read / write completion control signal comprising the read / write request identification information; generating a data read / write response comprising the read / write request identification information, and sending the data read / write response to the guest virtual machine. The data read / write request is a data read request, and the data read request comprises a memory address corresponding to read data; The network response packet comprises the read data; The method further comprises:
5. The method of claim 4, wherein, in response to the read / write completion control signal, storing the read data in the memory address. The method further comprises: receiving a reception confirmation packet sent by the target storage server, the reception confirmation packet comprising the read / write request identification information, second packet type information corresponding to the reception confirmation packet, and packet sequence number information; the reception confirmation packet is used to indicate that the network request packet has been received; sending a second packet response control signal comprising the read / write request identification information, the second packet type information, and the packet sequence number information to the general processing chip; and 6. The method of claim 2, wherein, receiving a read / write completion control signal generated by the general processing chip according to the second packet type information, the read / write completion control signal comprising the read / write request identification information. receive a message sending control signal corresponding to other read-write request control signals re-generated 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; re-generate a corresponding network request message according to the re-generated message sending control signal and send the network request message to a corresponding storage server.
7. A cloud storage processing method, characterized by, The method applied to a general processing chip configured to provide control plane functions in a computing server, comprises: receiving a read-write request control signal sent by a special processing chip configured to provide data plane functions in the computing server, wherein the read-write request control signal is sent by the special processing chip after receiving a data read-write request sent by a customer virtual machine, the data read-write request includes a logical disk storage address corresponding to to-be-read / written data, and the read-write request control signal contains the logical disk storage address; generating header information, wherein the header information includes identification information of a target storage server corresponding to the logical disk storage address; sending a message sending control signal containing the header information to the special processing chip, so that the special processing chip generates a network request message according to the header information and the data read-write request, and sends the network request message to the target storage server, so that the target storage server processes the data read-write request.
8. The method of claim 7, wherein, The method further comprises: allocating read-write request identification information corresponding to the read-write request control signal; and the read-write request identification information is contained in the message sending control signal and the network request message.
9. The method of claim 7, wherein, The sending of the message sending control signal containing the header information to the special processing chip comprises: determining a congestion state 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; sending the message sending control signal to the special processing chip according to the sending time.
10. The method of claim 8, wherein, The method further comprises: receiving a first message response control signal sent by the special processing chip, wherein the first message response control signal contains the read-write request identification information and first message type information corresponding to a network response message, the first message response control signal is sent by the special 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 contains the read-write request identification information and the first message type information; generating a read-write completion control signal according to the first message type information, wherein the read-write completion control signal contains the read-write request identification information; sending the read-write completion control signal to the special processing chip, so that the special processing chip generates a data read-write response containing the read-write request identification information and sends the data read-write response to the customer virtual machine.
11. The method of claim 8, wherein, The method further comprises: receive a second packet response control signal sent by the special processing chip, the second packet response control signal containing the read-write request identification information, second packet type information corresponding to the receiving confirmation packet, and packet sequence number information, the second packet response control signal being sent by the special processing chip after receiving the receiving confirmation packet corresponding to the network request packet sent by the target storage server, the receiving confirmation packet containing the read-write request identification information, the second packet type information, and the packet sequence number information; the receiving confirmation packet being used to indicate that the network request packet has been received; if it is determined according to the second packet type information and the packet sequence number information that there is a network request packet out-of-order situation, re-generate a packet sending control signal corresponding to other read-write request control signals, and send the re-generated packet sending control signal to the special processing chip to make the special processing chip re-generate a corresponding network request packet; wherein the other read-write request control signals correspond to other data read-write requests before the data read-write request.
12. A computing server, comprising: comprise: a memory, a general processing chip, a special processing chip, and a communication interface; wherein the memory stores executable code, when the executable code is executed by the general processing chip and the special processing chip, the cloud storage processing method according to any one of claims 1 to 6 is executed, or the cloud storage processing method according to any one of claims 7 to 11 is executed.
13. A non-transitory machine-readable storage medium, comprising: The non-transitory machine-readable storage medium stores executable code, when the executable code is executed by the general processing chip and the special processing chip in the computing server, the cloud storage processing method according to any one of claims 1 to 6 is executed, or the cloud storage processing method according to any one of claims 7 to 11 is executed.
14. A cloud storage system, characterized by comprise: a computing server cluster and a storage server cluster, wherein any computing server in the computing server cluster comprises a customer virtual machine, a special processing chip configured to provide data plane functions, and a general processing chip configured to provide control plane functions; the special processing chip is configured to execute the cloud storage processing method according to any one of claims 1 to 6; the general processing chip is configured to execute the cloud storage processing method according to any one of claims 7 to 11.
Citation Information
Patent Citations
Method for improving telemetering technical performance of intelligent network adapter / DPU network
CN113810791A
Data transmission method, device and system and storage medium
CN116166198A