CN117278505B - Message transmission method, system, equipment and medium between RAID card nodes - Google Patents

Message transmission method, system, equipment and medium between RAID card nodes Download PDF

Info

Publication number
CN117278505B
CN117278505B CN202311558765.2A CN202311558765A CN117278505B CN 117278505 B CN117278505 B CN 117278505B CN 202311558765 A CN202311558765 A CN 202311558765A CN 117278505 B CN117278505 B CN 117278505B
Authority
CN
China
Prior art keywords
message
module
queue
function
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311558765.2A
Other languages
Chinese (zh)
Other versions
CN117278505A (en
Inventor
李飞龙
王见
刘涛
钟戟
孙明刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311558765.2A priority Critical patent/CN117278505B/en
Publication of CN117278505A publication Critical patent/CN117278505A/en
Application granted granted Critical
Publication of CN117278505B publication Critical patent/CN117278505B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

The invention discloses a message transmission method, a system, equipment and a medium between RAID card nodes, which relate to the field of storage and comprise the following steps: acquiring a message to be processed by using a first receiving queue of a first module in a first RAID card node serving as an initiator, determining the type of the message to be processed based on the identification of the first receiving queue, and calling an interface function corresponding to the type of the message to be processed in the first module to analyze the message to be processed; responding to the analysis, and calling an interface function corresponding to the type of the message to be processed in a second module in the first RAID card node by using the first module to send the message to the second module; and sending the message to be processed to a second RAID card node serving as a target party by utilizing a second module. Compared with the communication method between RAID card nodes in the prior art, the scheme provided by the invention reduces the message forwarding times, thereby improving the communication speed and reducing the complexity of the system.

Description

Message transmission method, system, equipment and medium between RAID card nodes
Technical Field
The present invention relates to the field of storage, and in particular, to a method, a system, an apparatus, and a medium for transmitting a message between RAID card nodes.
Background
At present, there are two main communication modes between cluster nodes in RAID (Redundant Array of Independent Disks ) cards: inter-node communication based on PCIe bus and inter-node communication based on SAS bus. The PCIe bus is fast in communication mode, but requires DMA (Direct Memory Access ) technology or RDMA (remote direct data access) technology, and requires additional hardware devices and network devices to support DMA or RDMA, which increases complexity and overhead of the system. The SAS bus is relatively simple in communication mode, but has a low speed, and cannot meet the requirements of a high-performance data storage system.
Disclosure of Invention
In view of this, in order to overcome at least one aspect of the above-mentioned problems, an embodiment of the present invention proposes a method for transmitting a message between RAID card nodes, the method being applied to a first RAID card node as an initiator, comprising the steps of:
acquiring a message to be processed by using a first receiving queue of a first module in a first RAID card node serving as an initiator, and determining the type of the message to be processed based on an identifier of the first receiving queue to call an interface function corresponding to the type of the message to be processed in the first module to analyze the message to be processed, wherein the identifier is associated with the type of the message to be processed;
Responding to the analysis, and calling an interface function corresponding to the type of the message to be processed in a second module in the first RAID card node by using the first module so as to send the message to the second module;
and sending the message to be processed to a second RAID card node serving as a target party by utilizing the second module.
In some embodiments, before the step of obtaining the pending message with the first receive queue of the first module in the first RAID card node acting as the initiator, further comprises:
judging whether the first module and the second module are registered with the corresponding interface function or not;
in response to the first module and the second module not registering the interface function, registering the interface function to the first module by using a service module in the first RAID card node and saving a pointer of the interface function to a first function queue created in advance in the first module, and registering the interface function to the second module by using the first module and saving a pointer of the interface function to a second function queue created in advance in the second module.
In some embodiments, the step of obtaining a message to be processed with a first receive queue of a first module in a first RAID card node serving as an initiator, and determining a type of the message to be processed based on an identifier of the first receive queue to invoke an interface function corresponding to the type of the message to be processed in the first module to parse the message to be processed further includes:
the service module determines the corresponding interface function according to the type of the message to be processed, and further calls the corresponding interface function according to the pointer in the first function queue to send the message to be processed to a first receiving queue corresponding to the interface function in the first module;
the first module determines the type of the message to be processed according to the identification of the first receiving queue, so as to determine the corresponding interface function according to the type of the message to be processed, and further analyze the message to be processed according to the corresponding interface function called by the pointer in the first function queue.
In some embodiments, the parsing the message to be processed according to the interface function corresponding to the pointer call in the first function queue further includes:
Judging whether parameters obtained by analyzing the message to be processed are reasonable or not;
and responding to unreasonable, and feeding back to the business module.
In some embodiments, the step of calling, with a first module, an interface function in a second module in the first RAID card node corresponding to the type of the message to be processed to send the message to the second module further comprises:
and the first module calls a corresponding interface function according to the pointer in the second function queue so as to send the message to be processed to a second receiving queue corresponding to the interface function in the second module.
In some embodiments, the step of sending the pending message to a second RAID card node that is a target using the second module further comprises:
calling a corresponding interface function according to a pointer in the second function queue to take out the message to be processed from the second receiving queue and setting a corresponding first global sequence number according to the type of the message to be processed;
and packaging the message to be processed, which is provided with the first global serial number, into a sending queue, which is used for placing a message body into the second module, sequentially sending the message body to the second RAID card node, and placing the message body into a first recycling queue in the second module after sending the message body.
In some embodiments, the step of encapsulating the pending message with the first global sequence number into a message body and placing the message body into a sending queue in the second module to send the message body to the second RAID card node in sequence further comprises:
allocating channel numbers according to the positions of pointers of the interface functions in the second function queue;
and when the channel corresponding to the channel number is detected to be idle, the message body is sent to the second RAID card node by utilizing the channel.
In some embodiments, further comprising:
receiving a response message fed back by the second RAID card node based on the message to be processed by utilizing a third receiving queue corresponding to the interface function in the second module;
matching in the first recovery queue based on a second global sequence number carried in the response message;
responsive to matching the same first global sequence number, deleting a corresponding message body from the first reclamation queue;
and generating a feedback message carrying the second global serial number and sending the feedback message to the second RAID card node.
In some embodiments, further comprising:
and receiving a heartbeat message carrying a second global sequence number sent by the second RAID card node and marking a message body in the first recovery queue based on the heartbeat message.
In some embodiments, further comprising:
and in response to the second module receiving the error message fed back by the second RAID card node, placing all the unlabeled message bodies in the first recovery queue into a first retransmission queue in the second module for retransmission.
In some embodiments, further comprising:
and acquiring the response message in the third receiving queue by using the first module and feeding back the response message to the service module.
In some embodiments, further comprising:
in response to the first module and the second module registering the pointers of the interface functions and the first function queue and the second function queue not storing the pointers of the interface functions, directly storing the pointers of the interface functions into the first function queue and directly storing the pointers of the interface functions into the second function queue.
In some embodiments, further comprising:
judging whether the first function queue and/or the second function queue are/is full or not respectively;
responsive to the first and/or second function queues being less than full, saving a pointer to the interface function into the first and/or second function queues;
And responding to the fact that the first function queue and/or the second function queue are full, recycling a plurality of pointers stored currently in the first function queue and/or the second function queue according to a preset algorithm, and storing the pointers of the interface function into the first function queue and/or the second function queue.
Based on the same inventive concept, according to another aspect of the present invention, there is also provided a method of transmitting a message between RAID card nodes, the method being applied to a second RAID card node as a target, including the steps of:
receiving a message body sent by a first RAID card node serving as an initiator by using a second module in a second RAID card node serving as a target, and decapsulating the message body to obtain a message to be processed and a first global serial number;
determining the type of the message to be processed according to the first global serial number and notifying a first module in the second RAID card node;
calling a corresponding interface function in the second module by using the first module according to the type of the message to be processed so as to acquire the message to be processed;
and calling a corresponding interface function in the first module by using a service module in the second RAID card node to acquire the message to be processed and process the message.
In some embodiments, before the step of receiving, by the second module in the second RAID card node serving as the target, a message body sent by the first RAID card node serving as the initiator and decapsulating the message body to obtain the pending message and the first global sequence number, the method further includes:
receiving a notification sent by the first RAID card node by using a second module of the second RAID card node;
judging whether the corresponding interface function is registered in the first module and the second module according to the notification;
in response to the first module or the second module not registering the corresponding interface function, registering the corresponding interface function with the second module and saving a pointer of the corresponding interface function with the first RAID card node to a second function queue created in advance in the first module, and registering the corresponding interface function with the first module and saving a pointer of the corresponding interface function with the second module to a first function queue created in advance in the first module.
In some embodiments, further comprising:
in response to the first module and/or the second module registering the corresponding interface function and the first function queue and the second function queue not storing pointers of the interface function, directly storing pointers of the corresponding interface function into the first function queue and directly storing pointers of the interface function into the second function queue.
In some embodiments, further comprising:
judging whether the first function queue and/or the second function queue are/is full or not respectively;
responsive to the first and/or second function queues being less than full, saving pointers to the respective interface functions in the first and/or second function queues;
and responding to the fact that the first function queue and/or the second function queue are full, recycling a plurality of pointers stored currently in the first function queue and/or the second function queue according to a preset algorithm, and storing the pointers of the corresponding interface functions into the first function queue and/or the second function queue.
In some embodiments, the step of receiving, by the second module in the second RAID card node, a message body sent by the first RAID card node serving as an initiator, and decapsulating the message body to obtain a pending message and a first global sequence number further includes:
acquiring a first global sequence number of a last message to be processed, which is received and has the same type as the message to be processed;
comparing the first global sequence number of the last message to be processed with the first global sequence number of the current message to be processed after adding one;
In response to equality, placing the current message to be processed into a fifth receiving queue corresponding to the corresponding interface function in the second module;
discarding the current message to be processed in response to the first global sequence number of the last message to be processed being greater than the first global sequence number of the current message to be processed;
and in response to the fact that the first global sequence number of the last message to be processed is less than the first global sequence number of the current message to be processed after being added, the current message to be processed is put into the fifth receiving queue and is ordered according to the first global sequence number.
In some embodiments, the step of calling, by the first module, a corresponding interface function in the second module according to the type of the message to be processed to obtain the message to be processed further includes:
and the first module calls a corresponding interface function according to the pointer in the second function queue to acquire the message to be processed in the fifth receiving queue and puts the message to be processed in a sixth receiving queue corresponding to the corresponding interface function in the first module.
In some embodiments, the step of calling, by the service module in the second RAID card node, a corresponding interface function in the first module to obtain the message to be processed and process the message further includes:
And calling a corresponding interface function by using the service module according to the pointer in the first function queue to acquire the message to be processed in the sixth receiving queue for processing and generating a response message.
In some embodiments, further comprising:
calling a corresponding interface function by the service module according to the pointer in the first function queue to send the response message to a seventh receiving queue corresponding to the corresponding interface function in the first module;
calling a corresponding interface function by the first module according to the pointer in the second function queue to send the response message to an eighth receiving queue corresponding to the corresponding interface function in the second module;
calling a corresponding interface function according to a pointer in the second function queue to take out the response message from the eighth receiving queue and setting a corresponding second global sequence number according to the message to be processed corresponding to the response message;
and packaging the response message with the second global serial number into a message body, placing the message body into a sending queue to be sequentially sent to the first RAID card node, and placing the message body into a second recycling queue in the second module after sending.
In some embodiments, the step of encapsulating the response message with the second global sequence number into a message body and placing the message body into a sending queue to be sequentially sent to the first RAID card node further comprises:
allocating channel numbers according to the positions of pointers of the corresponding interface functions in the second function queue;
and when the channel corresponding to the channel number is detected to be idle, the message body is sent to the first RAID card node by utilizing the channel.
In some embodiments, further comprising:
responsive to receiving a feedback message carrying the second global sequence number sent by the first RAID card node, deleting a corresponding message body from the second reclamation queue;
and in response to receiving the error message fed back by the first RAID card node, placing all message bodies in the second recovery queue into a second retransmission queue in the second module for retransmission.
Based on the same inventive concept, according to another aspect of the present invention, there is further provided a storage system, where the storage system includes a plurality of RAID cards, each RAID card includes a plurality of RAID card nodes, and the RAID card nodes are directly connected to each other by optical fibers, and the method according to any one of the foregoing embodiments is used to implement inter-node communication.
Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a computer apparatus, including:
at least one processor; and
a memory storing a computer program executable on the processor, the processor executing steps of a method of message transfer between any of the RAID card nodes described above.
Based on the same inventive concept, according to another aspect of the present invention, there is also provided a computer readable storage medium storing a computer program which, when executed by a processor, performs the steps of the message transmission method between any of the RAID card nodes described above.
The invention has one of the following beneficial technical effects: according to the scheme provided by the invention, the first module is responsible for interacting with the service module so as to receive and analyze the message to be processed, then the analyzed message to be processed is sent to the second module, and the message to be processed is sent to the target node by using the second module.
Drawings
In order to more clearly illustrate the embodiments of the invention or the technical solutions in the prior art, the drawings that are necessary for the description of the embodiments or the prior art will be briefly described, it being obvious that the drawings in the following description are only some embodiments of the invention and that other embodiments may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a flow chart of a message transmission method between RAID card nodes according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a RAID card according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of an interaction flow between a first RAID card node and a second RAID card node according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of another interaction flow between a first RAID card node and a second RAID card node according to embodiments of the present invention;
FIG. 5 is a schematic diagram of another interaction flow between a first RAID card node and a second RAID card node according to embodiments of the present invention;
FIG. 6 is a schematic diagram of a computer device according to an embodiment of the present invention;
fig. 7 is a schematic structural diagram of a computer-readable storage medium according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the following embodiments of the present invention will be described in further detail with reference to the accompanying drawings.
It should be noted that, in the embodiments of the present invention, all the expressions "first" and "second" are used to distinguish two entities with the same name but different entities or different parameters, and it is noted that the "first" and "second" are only used for convenience of expression, and should not be construed as limiting the embodiments of the present invention, and the following embodiments are not described one by one.
According to an aspect of the present invention, an embodiment of the present invention proposes a method for transmitting a message between RAID card nodes, the method being applied to a first RAID card node as an initiator, as shown in fig. 1, which may include the steps of:
s1, acquiring a message to be processed by using a first receiving queue of a first module in a first RAID card node serving as an initiator, and determining the type of the message to be processed based on an identifier of the first receiving queue to call an interface function corresponding to the type of the message to be processed in the first module to analyze the message to be processed, wherein the identifier is associated with the type of the message to be processed;
S2, responding to the analysis, and calling an interface function corresponding to the type of the message to be processed in a second module in the first RAID card node by using the first module so as to send the message to the second module;
and S3, the message to be processed is sent to a second RAID card node serving as a target party by utilizing the second module.
According to the scheme provided by the invention, the first module is responsible for interacting with the service module so as to receive and analyze the message to be processed, then the analyzed message to be processed is sent to the second module, and the message to be processed is sent to the target node by using the second module.
In some embodiments, as shown in FIG. 2, a RAID card architecture in a storage system, the present invention adds a first module 110 and a second module 120 at the firmware level of the RAID card node, relative to prior art RAID. The second module sends/receives messages 150 between the two RAID card nodes 160, 170 in fig. 2 to enable inter-node communication. The firmware layer in the RAID card also includes drivers, RAID card kernels, file systems, business modules, etc. (other parts are not illustrated in FIG. 2), which can provide access to files and logical unit numbers LUNs, as well as management of these functions. The drivers and processors at the firmware layer in the RAID card execute program instructions for handling host I/O requests. Disk group 1 (130) in FIG. 2 forms a RAID array number 1, disk group 2 forms a RAID array number 2, and so on, disk group N forms a RAID array number N. RAID array No. 1, RAID array No. 2. The RAID card controller 140 is responsible for the software processing function in the RAID card, the RAID card controller specially implements the software function, the hardware module executes some algorithms, data management and other functions, so as to implement the separation of soft and hard, the hardware and the software work independently and in parallel, and the performance of hanging the disk under the RAID card management is improved through the design of the soft and hard separation system architecture. In addition, the first module and the second module added in the invention can be made into a hardware integrated circuit or a software unit module,
In fig. 2, the host system may be a PC, a host, a data center, a mobile phone, or the like, where storage resources in the storage system are shared between multiple host systems through a network, and the network may use a Storage Area Network (SAN), a Local Area Network (LAN) connection, a Wide Area Network (WAN) connection, a wireless WIFI connection, or the like. The network may include one or more wired, wireless connected networks, as shown in fig. 2, one of which may be connected to other external networks through a switch. The storage systems formed by a plurality of RAID cards can be connected through PCIe buses, ethernet, SAS buses, optical fiber channels and the like to form a large storage environment. It should be noted that the number and types of host systems, networks, and RAID cards are not limited to those shown in FIG. 2. One or more host systems may be offline for different periods of time, and during use of the storage environment, a user may operate the host systems to connect, disconnect, and reconnect to the storage environment, so the connection status of each host system may change. Each host system may perform traffic processing using a plurality of RAID card nodes, and inter-node communication may be achieved between the plurality of RAID card nodes using 150 to send/receive messages through the second module based on the address/number of each node. It should be noted that because the inter-node communication is bi-directional, each node is both an initiator and a target.
In some embodiments, S1, before the step of obtaining the pending message with the first receive queue of the first module in the first RAID card node acting as the initiator, further comprises:
judging whether the first module and the second module are registered with the corresponding interface function or not;
in response to the first module and the second module not registering the interface function, registering the interface function to the first module by using a service module in the first RAID card node and saving a pointer of the interface function to a first function queue created in advance in the first module, and registering the interface function to the second module by using the first module and saving a pointer of the interface function to a second function queue created in advance in the second module.
Specifically, as shown in fig. 3, in the first RAID card node serving as the initiator, before the first module is used to obtain the message to be processed, it is first determined whether a corresponding interface function is registered in the first module and the second module, if no corresponding interface function is registered, the service module is used to register the interface function in the first module, the pointer of the interface function is stored in the first function queue of the first module, then the first module is used to register the interface function in the transmission module, and the pointer of the interface function is also stored in the second function queue of the second module. Then, a first receiving queue corresponding to the interface function is created in the first module to receive the information sent by calling the interface function, and the type of the information can be used as the identification of the first receiving queue, so that after the first module detects that the information exists in the first receiving queue, the type of the information can be determined through the identification of the first receiving queue, and then the corresponding interface function is called for processing, so that the first receiving queue corresponds to the interface function. A second receiving queue corresponding to the interface function is created in the second module to receive the message sent by calling the interface function, and the type of the message is used as the identification of the second receiving queue.
In some embodiments, further comprising:
in response to the first module and the second module registering the pointers of the interface functions and the first function queue and the second function queue not storing the pointers of the interface functions, directly storing the pointers of the interface functions into the first function queue and directly storing the pointers of the interface functions into the second function queue.
Specifically, in the first RAID card node serving as the initiator, if the first module and the second module have registered an interface function, it is not necessary to register the interface function again in the first module and the second module, only it is necessary to determine whether pointers of the interface function exist in the first function queue and the second function queue, if the pointers do not exist, the pointers of the interface function are directly saved in the first function queue, and if the pointers of the interface function are directly saved in the second function queue, the corresponding interface function is directly called according to the pointers in the two function queues, if the pointers exist.
In some embodiments, further comprising:
judging whether the first function queue and/or the second function queue are/is full or not respectively;
Responsive to the first and/or second function queues being less than full, saving a pointer to the interface function into the first and/or second function queues;
and responding to the fact that the first function queue and/or the second function queue are full, recycling a plurality of pointers stored currently in the first function queue and/or the second function queue according to a preset algorithm, and storing the pointers of the interface function into the first function queue and/or the second function queue.
Specifically, in the first RAID card node serving as the initiator, in order to save resources, the lengths of the two function queues may be limited, so when there is no pointer of a corresponding interface function in the two function queues, whether the two function queues have free positions is first determined, if not, it is required to delete a plurality of pointers in the function queues, for example, according to enqueuing time, a plurality of pointers with long enqueuing time may be selected to be deleted, and according to the usage rate, a plurality of pointers with low usage rate may be selected to be deleted. Thus, pointers of corresponding interface functions can be saved to the function queue.
In some embodiments, S1, the step of obtaining a message to be processed with a first receive queue of a first module in a first RAID card node serving as an initiator, and determining a type of the message to be processed based on an identifier of the first receive queue, so as to invoke an interface function corresponding to the type of the message to be processed in the first module to parse the message to be processed, further includes:
the service module determines the corresponding interface function according to the type of the message to be processed, and further calls the corresponding interface function according to the pointer in the first function queue to send the message to be processed to a first receiving queue corresponding to the interface function in the first module;
the first module determines the type of the message to be processed according to the identification of the first receiving queue, so as to determine the corresponding interface function according to the type of the message to be processed, and further analyze the message to be processed according to the corresponding interface function called by the pointer in the first function queue.
Specifically, in the first RAID card node serving as the initiator, when sending a message to be processed to the first module, for example, sending a message (which may carry signaling, without big block data) or a bulk (with data) message, the service module may determine the corresponding interface function according to the type of the message to be processed, so that the corresponding interface function is called according to a pointer in a first function queue of the first module to send the message to be processed to a first receiving queue corresponding to the interface function in the first module, after detecting that the message to be processed is received in the first receiving queue, the first module may determine the type of the message to be processed according to an identifier of the first receiving queue, thereby determining the corresponding interface function, and further analyzing the message to be processed according to the interface function corresponding to the pointer call in the first function queue.
In some embodiments, the parsing the message to be processed according to the interface function corresponding to the pointer call in the first function queue further includes:
judging whether parameters obtained by analyzing the message to be processed are reasonable or not;
and responding to unreasonable, and feeding back to the business module.
Specifically, in a first RAID card node serving as an initiator, after a first module takes out a message to be processed from a first receiving queue, analyzing the message to be processed by utilizing an interface function, judging whether the message to be processed is reasonable or not according to parameters obtained through analysis, if so, sending the message to be processed to a second module, and if not, returning the message to a service module.
In some embodiments, S2, the step of calling, with a first module, an interface function in a second module in the first RAID card node corresponding to the type of the message to be processed to send the message to the second module further comprises:
and the first module calls a corresponding interface function according to the pointer in the second function queue so as to send the message to be processed to a second receiving queue corresponding to the interface function in the second module.
Specifically, in the first RAID card node serving as the initiator, when it is determined that the parameters obtained by analysis are reasonable, that is, after the analysis is passed, the first module sends the message to be processed to the second module, and at this time, the first module may call a corresponding interface function according to a pointer in a second function queue of the second module, so that the message to be processed can be sent to a second receiving queue corresponding to the interface function in the second module. Since the second receive queues use the same identification, the corresponding interface function is called according to the type of the message to be processed, so that the message to be processed is sent to the corresponding second receive queues in the second module.
In some embodiments, S3, the step of sending, with the second module, the pending message to a second RAID card node that is a target, further includes:
calling a corresponding interface function according to a pointer in the second function queue to take out the message to be processed from the second receiving queue and setting a corresponding first global sequence number according to the type of the message to be processed;
and packaging the message to be processed, which is provided with the first global serial number, into a sending queue, which is used for placing a message body into the second module, sequentially sending the message body to the second RAID card node, and placing the message body into a first recycling queue in the second module after sending the message body.
Specifically, in the first RAID card node serving as the initiator, when the second module receives a message to be processed in the second receiving queue, a corresponding interface function is called according to a pointer in the second function queue to take out the message to be processed from the second receiving queue, and then a corresponding first global sequence number is set according to the type of the message to be processed, where it is required to be noted that the first global sequence number includes an identification bit for indicating the type of the message to be processed and a sequence number of the message to be processed. And then packaging the message to be processed provided with the first global serial number into a message body, putting the message body into a sending queue, sequentially sending the message body to the second RAID card node, and putting the message body into a first recycling queue in the second module after sending the message body.
In some embodiments, the step of encapsulating the pending message with the first global sequence number into a message body and placing the message body into a sending queue in the second module to send the message body to the second RAID card node in sequence further comprises:
allocating channel numbers according to the positions of pointers of the interface functions in the second function queue;
And when the channel corresponding to the channel number is detected to be idle, the message body is sent to the second RAID card node by utilizing the channel.
Specifically, as shown in fig. 3, in the first RAID card node serving as the initiator, a channel number may be allocated according to the position of the pointer of the interface function in the second function queue, for example, one position corresponds to one or more fixed channel numbers, and a message is sent to the second RAID card node of the opposite end through a channel corresponding to the one or more channel numbers.
In some embodiments, further comprising:
receiving a response message fed back by the second RAID card node based on the message to be processed by utilizing a third receiving queue corresponding to the interface function in the second module;
matching in the first recovery queue based on a second global sequence number carried in the response message;
responsive to matching the same first global sequence number, deleting a corresponding message body from the first reclamation queue;
and generating a feedback message carrying the second global serial number and sending the feedback message to the second RAID card node.
In some embodiments, further comprising:
and acquiring the response message in the third receiving queue by using the first module and feeding back the response message to the service module.
Specifically, as shown in fig. 3 and 4, in the first RAID card node serving as the initiator, the service module may send a message to the first module in an asynchronous manner. In the second RAID card node serving as the destination, the first module sends the message to be processed to the service module in a synchronous mode, after the service module of the second RAID card node finishes processing the message to be processed, a response message is generated, the response message is sent to the first module and the second module of the second RAID card node in a synchronous mode, the second module of the first RAID card node receives the response message sent by the second module of the second RAID card node by using a third receiving queue, the first module of the first RAID card node also obtains the response message from the third receiving queue of the second module of the first RAID card node in a synchronous mode, and the first module of the first RAID card node sends the response message to the service module of the first RAID card node in a synchronous mode.
The second global serial number can be carried in the response message generated by the second RAID card node, so that the second RAID card node is matched in a first recovery queue of a second module of the first RAID card node based on the second global serial number carried in the response message, if the second global serial number is matched, the corresponding message body is deleted from the first recovery queue, and a feedback message carrying the second global serial number is generated and sent to the second RAID card node so as to inform the second RAID card node that the response message is received.
In some embodiments, further comprising:
and receiving a heartbeat message carrying a second global sequence number sent by the second RAID card node and marking a message body in the first recovery queue based on the heartbeat message.
In some embodiments, further comprising:
and in response to the second module receiving the error message fed back by the second RAID card node, placing all the unlabeled message bodies in the first recovery queue into a first retransmission queue in the second module for retransmission.
Specifically, if the second RAID card node does not send a response message for a long time, sending a heartbeat message to the first RAID card node, and marking a message body in the first recovery queue based on the heartbeat message. Thus, when the first RAID card node receives the feedback error message sent by the second RAID card at the opposite end, all the unlabeled message bodies in the first recovery queue are put into the first retransmission queue in the second module to be retransmitted and re-participate in the scheduling, so that the messages are ensured not to be lost in the first module and the second module.
Based on the same inventive concept, according to another aspect of the present invention, there is also provided a method of transmitting a message between RAID card nodes, the method being applied to a second RAID card node as a target, including the steps of:
Receiving a message body sent by a first RAID card node serving as an initiator by using a second module in a second RAID card node serving as a target, and decapsulating the message body to obtain a message to be processed and a first global serial number;
determining the type of the message to be processed according to the first global serial number and notifying a first module in the second RAID card node;
calling a corresponding interface function in the second module by using the first module according to the type of the message to be processed so as to acquire the message to be processed;
and calling a corresponding interface function in the first module by using a service module in the second RAID card node to acquire the message to be processed and process the message.
In some embodiments, before the step of receiving, by the second module in the second RAID card node serving as the target, a message body sent by the first RAID card node serving as the initiator and decapsulating the message body to obtain the pending message and the first global sequence number, the method further includes:
receiving a notification sent by the first RAID card node by using a second module of the second RAID card node;
judging whether the corresponding interface function is registered in the first module and the second module according to the notification;
In response to the first module or the second module not registering the corresponding interface function, registering the corresponding interface function with the second module and saving a pointer of the corresponding interface function with the first RAID card node to a second function queue created in advance in the first module, and registering the corresponding interface function with the first module and saving a pointer of the corresponding interface function with the second module to a first function queue created in advance in the first module.
In some embodiments, further comprising:
in response to the first module and/or the second module registering the corresponding interface function and the first function queue and the second function queue not storing pointers of the interface function, directly storing pointers of the corresponding interface function into the first function queue and directly storing pointers of the interface function into the second function queue.
In some embodiments, further comprising:
judging whether the first function queue and/or the second function queue are/is full or not respectively;
responsive to the first and/or second function queues being less than full, saving pointers to the respective interface functions in the first and/or second function queues;
And responding to the fact that the first function queue and/or the second function queue are full, recycling a plurality of pointers stored currently in the first function queue and/or the second function queue according to a preset algorithm, and storing the pointers of the corresponding interface functions into the first function queue and/or the second function queue.
Specifically, as shown in fig. 5, when there is a message body that needs to be sent to the second RAID card node in the second module of the first RAID card node, the second module of the first RAID card node notifies the second module of the second RAID card node to determine whether the second module of the second RAID card node and the first module register corresponding interface functions, if not, the second module of the first RAID card node registers the interface functions with the second module of the second RAID card node, and the second module of the second RAID card node registers the interface functions with the first module of the second RAID card node, and also there are a first function queue and a second function queue in the first module and the second module of the second RAID card node.
In some embodiments, the step of receiving, by the second module in the second RAID card node, a message body sent by the first RAID card node serving as an initiator, and decapsulating the message body to obtain a pending message and a first global sequence number further includes:
Acquiring a first global sequence number of a last message to be processed, which is received and has the same type as the message to be processed;
comparing the first global sequence number of the last message to be processed with the first global sequence number of the current message to be processed after adding one;
in response to equality, placing the current message to be processed into a fifth receiving queue corresponding to the corresponding interface function in the second module;
discarding the current message to be processed in response to the first global sequence number of the last message to be processed being greater than the first global sequence number of the current message to be processed;
and in response to the fact that the first global sequence number of the last message to be processed is less than the first global sequence number of the current message to be processed after being added, the current message to be processed is put into the fifth receiving queue and is ordered according to the first global sequence number.
Specifically, as shown in fig. 5, the second module of the first RAID card node continuously and circularly uses channels to send an encapsulated message body based on the number of channels, after the second RAID card node receives the message body sent by the first RAID card node, the second RAID card node checks the first global sequence number of the received message body, compares the first global sequence number with the first global sequence number +1 of the previous message of the same type, if the two are equal, indicates that the message is an expected message, puts the current message to be processed into a fifth receiving queue corresponding to the corresponding interface function in the second module, and notifies the first module to obtain the message from the fifth receiving queue; if the first global sequence number of the last message to be processed is added with one and is larger than the first global sequence number of the current message to be processed, the message is received, and the message is repeated and is directly discarded; if the first global sequence number of the last message to be processed is less than the first global sequence number of the current message to be processed after being added by one, the message is stated to arrive in an unordered way, and the message is put into the fifth receiving queue and ordered according to the first global sequence number, and waiting for the next scheduling.
In some embodiments, the step of calling, by the first module, a corresponding interface function in the second module according to the type of the message to be processed to obtain the message to be processed further includes:
and the first module calls a corresponding interface function according to the pointer in the second function queue to acquire the message to be processed in the fifth receiving queue and puts the message to be processed in a sixth receiving queue corresponding to the corresponding interface function in the first module.
Specifically, as shown in fig. 5, in the second RAID card node serving as the destination, after the second module detects that the message body sent by the first RAID card node exists in the fifth receiving queue, the second module decapsulates the message body and notifies the first module, and the first module calls a corresponding interface function according to the pointer in the second function queue to obtain the message to be processed in the fifth receiving queue and puts the message to be processed in a sixth receiving queue corresponding to the corresponding interface function in the first module.
In some embodiments, the step of calling, by the service module in the second RAID card node, a corresponding interface function in the first module to obtain the message to be processed and process the message further includes:
And calling a corresponding interface function by using the service module according to the pointer in the first function queue to acquire the message to be processed in the sixth receiving queue for processing and generating a response message.
In some embodiments, further comprising:
calling a corresponding interface function by the service module according to the pointer in the first function queue to send the response message to a seventh receiving queue corresponding to the corresponding interface function in the first module;
calling a corresponding interface function by the first module according to the pointer in the second function queue to send the response message to an eighth receiving queue corresponding to the corresponding interface function in the second module;
calling a corresponding interface function according to a pointer in the second function queue to take out the response message from the eighth receiving queue and setting a corresponding second global sequence number according to the message to be processed corresponding to the response message;
and packaging the response message with the second global serial number into a message body, placing the message body into a sending queue to be sequentially sent to the first RAID card node, and placing the message body into a second recycling queue in the second module after sending.
In some embodiments, the step of encapsulating the response message with the second global sequence number into a message body and placing the message body into a sending queue to be sequentially sent to the first RAID card node further comprises:
allocating channel numbers according to the positions of pointers of the corresponding interface functions in the second function queue;
and when the channel corresponding to the channel number is detected to be idle, the message body is sent to the first RAID card node by utilizing the channel.
In some embodiments, further comprising:
responsive to receiving a feedback message carrying the second global sequence number sent by the first RAID card node, deleting a corresponding message body from the second reclamation queue;
and in response to receiving the error message fed back by the first RAID card node, placing all message bodies in the second recovery queue into a second retransmission queue in the second module for retransmission.
Specifically, as shown in fig. 5, in the second RAID card node serving as the destination, after the first module acquires the message to be processed from the second module, the service module is notified to acquire the message to be processed to process the message. The service module generates a response message after finishing processing, and based on the same flow, the service module sends the response message to the second module, the second module allocates channel numbers at positions in the second function queue according to pointers of corresponding interface functions, and then the encapsulated response message provided with the second global serial numbers is sent to the first RAID card node by utilizing channels corresponding to the channel numbers. And after the corresponding message body is sent, the corresponding message body is put into a second recovery queue, when the second RAID card node receives a feedback message generated by the first RAID card node based on the response message, the corresponding message body is deleted from the second recovery queue, and if the error message fed back by the first RAID card node is received, all the message bodies in the second recovery queue are put into a second retransmission queue in the second module for retransmission.
Based on the same inventive concept, according to another aspect of the present invention, there is further provided a storage system, where the storage system includes a plurality of RAID cards, each RAID card includes a plurality of RAID card nodes, and the RAID card nodes are directly connected to each other by optical fibers, and the method according to any one of the foregoing embodiments is used to implement inter-node communication.
Based on the same inventive concept, according to another aspect of the present invention, as shown in fig. 6, an embodiment of the present invention further provides a computer apparatus 501, including:
at least one processor 520; and
the memory 510, the memory 510 stores a computer program 511 executable on a processor, and the processor 520 executes the steps of any of the above-described message transmission methods between RAID card nodes when executing the program.
According to another aspect of the present invention, as shown in fig. 7, based on the same inventive concept, an embodiment of the present invention further provides a computer readable storage medium 601, where the computer readable storage medium 601 stores a computer program 610, and the computer program 610 when executed by a processor performs the steps of the message transmission method between any of the RAID card nodes as above.
Finally, it should be noted that, as will be appreciated by those skilled in the art, all or part of the procedures in implementing the methods of the embodiments described above may be implemented by a computer program for instructing relevant hardware, and the program may be stored in a computer readable storage medium, and the program may include the procedures of the embodiments of the methods described above when executed.
Further, it should be appreciated that the computer-readable storage medium (e.g., memory) herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as software or hardware depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The foregoing is an exemplary embodiment of the present disclosure, but it should be noted that various changes and modifications could be made herein without departing from the scope of the disclosure as defined by the appended claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. Furthermore, although elements of the disclosed embodiments may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
It should be understood that as used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly supports the exception. It should also be understood that "and/or" as used herein is meant to include any and all possible combinations of one or more of the associated listed items.
The foregoing embodiment of the present invention has been disclosed with reference to the number of embodiments for the purpose of description only, and does not represent the advantages or disadvantages of the embodiments.
It will be understood by those skilled in the art that all or part of the steps for implementing the above embodiments may be implemented by hardware, or may be implemented by a program for instructing relevant hardware, and the program may be stored in a computer readable storage medium, where the storage medium may be a read-only memory, a magnetic disk or an optical disk, etc.
Those of ordinary skill in the art will appreciate that: the above discussion of any embodiment is merely exemplary and is not intended to imply that the scope of the disclosure of embodiments of the invention, including the claims, is limited to such examples; combinations of features of the above embodiments or in different embodiments are also possible within the idea of an embodiment of the invention, and many other variations of the different aspects of the embodiments of the invention as described above exist, which are not provided in detail for the sake of brevity. Therefore, any omission, modification, equivalent replacement, improvement, etc. of the embodiments should be included in the protection scope of the embodiments of the present invention.

Claims (26)

1. A method for transmitting messages between RAID card nodes, the method being applied to a first RAID card node acting as an initiator, comprising the steps of:
acquiring a message to be processed by using a first receiving queue of a first module in a first RAID card node serving as an initiator, and determining the type of the message to be processed based on an identifier of the first receiving queue to call an interface function corresponding to the type of the message to be processed in the first module to analyze the message to be processed, wherein the identifier is associated with the type of the message to be processed; responding to the analysis, and calling an interface function corresponding to the type of the message to be processed in a second module in the first RAID card node by using the first module so as to send the message to the second module;
And sending the message to be processed to a second RAID card node serving as a target party by utilizing the second module.
2. The method of claim 1, further comprising, prior to the step of obtaining the pending message with the first receive queue of the first module in the first RAID card node acting as the initiator:
judging whether the first module and the second module are registered with the corresponding interface function or not;
in response to the first module and the second module not registering the interface function, registering the interface function to the first module by using a service module in the first RAID card node and saving a pointer of the interface function to a first function queue created in advance in the first module, and registering the interface function to the second module by using the first module and saving a pointer of the interface function to a second function queue created in advance in the second module.
3. The method of claim 2, wherein the steps of obtaining a message to be processed using a first receive queue of a first module in a first RAID card node acting as an initiator, and determining a type of the message to be processed based on an identification of the first receive queue to invoke an interface function in the first module corresponding to the type of the message to be processed to parse the message to be processed, further comprise:
The service module determines the corresponding interface function according to the type of the message to be processed, and further calls the corresponding interface function according to the pointer in the first function queue to send the message to be processed to a first receiving queue corresponding to the interface function in the first module;
the first module determines the type of the message to be processed according to the identification of the first receiving queue, so as to determine the corresponding interface function according to the type of the message to be processed, and further analyze the message to be processed according to the corresponding interface function called by the pointer in the first function queue.
4. The method of claim 3, wherein parsing the message to be processed according to the interface function corresponding to the pointer call in the first function queue further comprises:
judging whether parameters obtained by analyzing the message to be processed are reasonable or not;
and responding to unreasonable, and feeding back to the business module.
5. The method of claim 2, wherein the step of invoking, with a first module, an interface function in a second module in the first RAID card node corresponding to the type of the message to be processed to send the message to the second module further comprises:
And the first module calls a corresponding interface function according to the pointer in the second function queue so as to send the message to be processed to a second receiving queue corresponding to the interface function in the second module.
6. The method of claim 5, wherein the step of sending the pending message with the second module to a second RAID card node that is a target, further comprises:
calling a corresponding interface function according to a pointer in the second function queue to take out the message to be processed from the second receiving queue and setting a corresponding first global sequence number according to the type of the message to be processed;
and packaging the message to be processed, which is provided with the first global serial number, into a sending queue, which is used for placing a message body into the second module, sequentially sending the message body to the second RAID card node, and placing the message body into a first recycling queue in the second module after sending the message body.
7. The method of claim 6, wherein the encapsulating the pending message with the first global sequence number into a message body is placed into a transmit queue in the second module for sequential transmission to the second RAID card node, further comprising:
Allocating channel numbers according to the positions of pointers of the interface functions in the second function queue;
and when the channel corresponding to the channel number is detected to be idle, the message body is sent to the second RAID card node by utilizing the channel.
8. The method as recited in claim 6, further comprising:
receiving a response message fed back by the second RAID card node based on the message to be processed by utilizing a third receiving queue corresponding to the interface function in the second module;
matching in the first recovery queue based on a second global sequence number carried in the response message;
responsive to matching the same first global sequence number, deleting a corresponding message body from the first reclamation queue;
and generating a feedback message carrying the second global serial number and sending the feedback message to the second RAID card node.
9. The method as recited in claim 8, further comprising:
and receiving a heartbeat message carrying a second global sequence number sent by the second RAID card node and marking a message body in the first recovery queue based on the heartbeat message.
10. The method as recited in claim 9, further comprising:
And in response to the second module receiving the error message fed back by the second RAID card node, placing all the unlabeled message bodies in the first recovery queue into a first retransmission queue in the second module for retransmission.
11. The method as recited in claim 8, further comprising:
and acquiring the response message in the third receiving queue by using the first module and feeding back the response message to the service module.
12. The method as recited in claim 2, further comprising:
in response to the first module and the second module registering the pointers of the interface functions and the first function queue and the second function queue not storing the pointers of the interface functions, directly storing the pointers of the interface functions into the first function queue and directly storing the pointers of the interface functions into the second function queue.
13. The method as recited in claim 2, further comprising:
judging whether the first function queue and/or the second function queue are/is full or not respectively;
responsive to the first and/or second function queues being less than full, saving a pointer to the interface function into the first and/or second function queues;
And responding to the fact that the first function queue and/or the second function queue are full, recycling a plurality of pointers stored currently in the first function queue and/or the second function queue according to a preset algorithm, and storing the pointers of the interface function into the first function queue and/or the second function queue.
14. A method for transmitting messages between RAID card nodes, wherein the method is applied to a second RAID card node as a target, comprising the steps of:
receiving a message body sent by a first RAID card node serving as an initiator by using a second module in a second RAID card node serving as a target, and decapsulating the message body to obtain a message to be processed and a first global serial number;
determining the type of the message to be processed according to the first global serial number and notifying a first module in the second RAID card node;
calling a corresponding interface function in the second module by using the first module according to the type of the message to be processed so as to acquire the message to be processed;
and calling a corresponding interface function in the first module by using a service module in the second RAID card node to acquire the message to be processed and process the message.
15. The method of claim 14, further comprising, prior to the step of receiving a message body sent by the first RAID card node acting as an initiator with the second module in the second RAID card node acting as a target and decapsulating the message body to obtain a pending message and a first global sequence number:
receiving a notification sent by the first RAID card node by using a second module of the second RAID card node;
judging whether the corresponding interface function is registered in the first module and the second module according to the notification;
in response to the first module or the second module not registering the corresponding interface function, registering the corresponding interface function with the second module and saving a pointer of the corresponding interface function with the first RAID card node to a second function queue created in advance in the first module, and registering the corresponding interface function with the first module and saving a pointer of the corresponding interface function with the second module to a first function queue created in advance in the first module.
16. The method as recited in claim 15, further comprising:
In response to the first module and/or the second module registering the corresponding interface function and the first function queue and the second function queue not storing pointers of the interface function, directly storing pointers of the corresponding interface function into the first function queue and directly storing pointers of the interface function into the second function queue.
17. The method as recited in claim 16, further comprising:
judging whether the first function queue and/or the second function queue are/is full or not respectively;
responsive to the first and/or second function queues being less than full, saving pointers to the respective interface functions in the first and/or second function queues;
and responding to the fact that the first function queue and/or the second function queue are full, recycling a plurality of pointers stored currently in the first function queue and/or the second function queue according to a preset algorithm, and storing the pointers of the corresponding interface functions into the first function queue and/or the second function queue.
18. The method of claim 17, wherein the step of receiving a message body sent by a first RAID card node acting as an initiator using a second module in the second RAID card node and decapsulating the message body to obtain a pending message and a first global sequence number further comprises:
Acquiring a first global sequence number of a last message to be processed, which is received and has the same type as the message to be processed;
comparing the first global sequence number of the last message to be processed with the first global sequence number of the current message to be processed after adding one;
in response to equality, placing the current message to be processed into a fifth receiving queue corresponding to the corresponding interface function in the second module;
discarding the current message to be processed in response to the first global sequence number of the last message to be processed being greater than the first global sequence number of the current message to be processed;
and in response to the fact that the first global sequence number of the last message to be processed is less than the first global sequence number of the current message to be processed after being added, the current message to be processed is put into the fifth receiving queue and is ordered according to the first global sequence number.
19. The method of claim 18, wherein the step of invoking, with the first module, a corresponding interface function in the second module according to the type of the message to be processed to obtain the message to be processed, further comprises:
And the first module calls a corresponding interface function according to the pointer in the second function queue to acquire the message to be processed in the fifth receiving queue and puts the message to be processed in a sixth receiving queue corresponding to the corresponding interface function in the first module.
20. The method of claim 19, wherein the step of using a traffic module in a second RAID card node to call a corresponding interface function in the first module to obtain the message to be processed and process further comprises:
and calling a corresponding interface function by using the service module according to the pointer in the first function queue to acquire the message to be processed in the sixth receiving queue for processing and generating a response message.
21. The method as recited in claim 20, further comprising:
calling a corresponding interface function by the service module according to the pointer in the first function queue to send the response message to a seventh receiving queue corresponding to the corresponding interface function in the first module;
calling a corresponding interface function by the first module according to the pointer in the second function queue to send the response message to an eighth receiving queue corresponding to the corresponding interface function in the second module;
Calling a corresponding interface function according to a pointer in the second function queue to take out the response message from the eighth receiving queue and setting a corresponding second global sequence number according to the message to be processed corresponding to the response message;
and packaging the response message with the second global serial number into a message body, placing the message body into a sending queue to be sequentially sent to the first RAID card node, and placing the message body into a second recycling queue in the second module after sending.
22. The method of claim 21, wherein the step of encapsulating the reply message with the second global sequence number set into a message body for placement into a transmit queue for sequential transmission to the first RAID card node further comprises:
allocating channel numbers according to the positions of pointers of the corresponding interface functions in the second function queue;
and when the channel corresponding to the channel number is detected to be idle, the message body is sent to the first RAID card node by utilizing the channel.
23. The method as recited in claim 21, further comprising:
responsive to receiving a feedback message carrying the second global sequence number sent by the first RAID card node, deleting a corresponding message body from the second reclamation queue;
And in response to receiving the error message fed back by the first RAID card node, placing all message bodies in the second recovery queue into a second retransmission queue in the second module for retransmission.
24. A storage system comprising a plurality of RAID cards, each RAID card comprising a plurality of RAID card nodes, the RAID card nodes being directly connected to each other by optical fibers, and communicating between nodes based on the steps of the method of any of claims 1-23.
25. A computer device, comprising:
at least one processor; and
a memory storing a computer program executable on the processor, wherein the processor performs the steps of the method of any one of claims 1-23 when the program is executed.
26. A computer readable storage medium storing a computer program, which when executed by a processor performs the steps of the method according to any one of claims 1-23.
CN202311558765.2A 2023-11-21 2023-11-21 Message transmission method, system, equipment and medium between RAID card nodes Active CN117278505B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311558765.2A CN117278505B (en) 2023-11-21 2023-11-21 Message transmission method, system, equipment and medium between RAID card nodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311558765.2A CN117278505B (en) 2023-11-21 2023-11-21 Message transmission method, system, equipment and medium between RAID card nodes

Publications (2)

Publication Number Publication Date
CN117278505A CN117278505A (en) 2023-12-22
CN117278505B true CN117278505B (en) 2024-02-09

Family

ID=89220002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311558765.2A Active CN117278505B (en) 2023-11-21 2023-11-21 Message transmission method, system, equipment and medium between RAID card nodes

Country Status (1)

Country Link
CN (1) CN117278505B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058821A (en) * 2019-04-24 2019-07-26 苏州浪潮智能科技有限公司 A kind of method and device of query service device storage information
CN113067882A (en) * 2021-03-31 2021-07-02 建信金融科技有限责任公司 Message processing method and device, electronic equipment and medium
CN115576501A (en) * 2022-12-06 2023-01-06 苏州浪潮智能科技有限公司 Node updating method, system and related device of RAID card
CN116301596A (en) * 2023-02-10 2023-06-23 山东云海国创云计算装备产业创新中心有限公司 Software RAID construction method, device, equipment and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058821A (en) * 2019-04-24 2019-07-26 苏州浪潮智能科技有限公司 A kind of method and device of query service device storage information
CN113067882A (en) * 2021-03-31 2021-07-02 建信金融科技有限责任公司 Message processing method and device, electronic equipment and medium
CN115576501A (en) * 2022-12-06 2023-01-06 苏州浪潮智能科技有限公司 Node updating method, system and related device of RAID card
CN116301596A (en) * 2023-02-10 2023-06-23 山东云海国创云计算装备产业创新中心有限公司 Software RAID construction method, device, equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于对象存储文件系统的文件级RAID机制研究;熊安萍等;《湖南师范大学自然科学学报》;第33卷(第4期);第41-45页 *

Also Published As

Publication number Publication date
CN117278505A (en) 2023-12-22

Similar Documents

Publication Publication Date Title
US11876701B2 (en) System and method for facilitating operation management in a network interface controller (NIC) for accelerators
CN110177118B (en) RDMA-based RPC communication method
EP2647163B1 (en) A method and system for improved multi-cell support on a single modem board
KR930010915B1 (en) Computer network system for multiple processing element
US20040017819A1 (en) Receive queue descriptor pool
US9736034B2 (en) System and method for small batching processing of usage requests
CN104796337A (en) Method and device for forwarding message
CN110661725A (en) Techniques for reordering network packets on egress
JPH03130863A (en) Control-element transfer system
CN102801737B (en) A kind of asynchronous network communication means and device
EP4357901A1 (en) Data writing method and apparatus, data reading method and apparatus, and device, system and medium
CN105141603A (en) Communication data transmission method and system
CN103986585A (en) Message preprocessing method and device
EP0871307A2 (en) Apparatus for flexible control of interrupts in multiprocessor systems
CN113157465B (en) Message sending method and device based on pointer linked list
CN117278505B (en) Message transmission method, system, equipment and medium between RAID card nodes
CN116471242A (en) RDMA-based transmitting end, RDMA-based receiving end, data transmission system and data transmission method
US7796645B2 (en) Technique for controlling selection of a write adapter from multiple adapters connected to a high speed switch
CN115344522A (en) Message conversion channel, message conversion device, electronic equipment and switching equipment
CN113626221B (en) Message enqueuing method and device
WO2019015487A1 (en) Data retransmission method, rlc entity and mac entity
CN111314272B (en) Task processing method and device
KR930004909B1 (en) Controller for controlling mutiple lan types
CN111130968A (en) Method and terminal for solving Modbus bus communication packet sticking
CN117041186B (en) Data transmission method, chip system, computing device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant