Data transmission method and device based on multiple physical channels of RAID card

Through the virtual RAID card, data transmission is carried out using multiple physical channels for multiple PCIE sub-device, which solves the problems of high transmission cost, high hardware complexity, and limited IO transmission rate in existing RAID card clusters, and realizes efficient data transmission and system expansion.

CN119946162AActive Publication Date: 2025-05-06INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202510121375.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-24
Publication Date
2025-05-06
Estimated Expiration
2045-01-24

AI Technical Summary

Technical Problem

The existing RAID card cluster needs to be equipped with multiple RAID cards, which increases transmission cost, and increases hardware complexity and maintenance difficulty by introducing preset channels and monitoring mechanisms, and only supports single physical channel transmission, resulting in limited IO transmission rate and reducing the performance of RAID cards.

Method used

By receiving the task information and device information requested by the target IO, the virtual RAID card is a number of PCIE sub-devices, and uses multiple physical channels to transmit data to realize parallel data transmission.

Benefits of technology

It significantly improves data transmission rate, reduces transmission bottlenecks, improves system throughput, enhances system reliability and stability, and supports system expansion and upgrades, improving system flexibility and manageability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119946162A_ABST
    Figure CN119946162A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of data processing, in particular to a data transmission method and device based on multiple physical channels of an RAID card, and the method comprises the steps: receiving a target IO request, and determining the number of multiple physical channels of PCIE sub-equipment which is virtualized to meet a certain requirement by the RAID card according to the task information of the target IO request and the equipment information of target equipment; the corresponding RAID card is virtualized into a plurality of corresponding PCIE sub-devices; and the target IO request is transmitted to the target device by using multiple physical channels between the PCIE sub-device and the target device to complete a certain requirement. Therefore, the problems that in the related technology, an RAID card cluster needs to be provided with a plurality of RAID cards, transmission cost is increased, hardware complexity of an RAID card controller is increased by introducing a preset channel and a monitoring mechanism, maintenance difficulty is improved, only single-physical-channel transmission is supported, IO transmission rate is limited due to an IO resource competition mechanism in an operating system, and transmission efficiency is low are solved. And the performance of the RAID card is greatly reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data processing technology, and in particular to a data transmission method and device based on multiple physical channels of a RAID card. Background Art

[0002] In the related art, a RAID (Redundant Array of Independent Disks) card cluster can be used, wherein the RAID card cluster includes multiple RAID cards, and multiple disks are respectively connected to each RAID card. Specifically, when an IO (Input / Output) instruction of the operating system is received, the corresponding RAID card can be determined according to the RAID stripe number corresponding to the IO instruction, so that the RAID card cluster can be used to execute data processing operations corresponding to all IO instructions; the processing cores of the RAID card controller can also be interconnected through a preset channel, and the dynamic allocation of tasks between the processing cores can be achieved by monitoring the IOPS (Input / Output Operations Per Second) load of each processing core.

[0003] However, in the related technology, a RAID card cluster needs to be equipped with multiple RAID cards, which increases the transmission cost. The introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller and increases the difficulty of maintaining the RAID card controller. In addition, both RAID cards only support single physical channel transmission. When data is transmitted at a higher IOPS rate, the IO resource competition mechanism within the operating system limits the IO transmission rate, greatly reducing the performance of the RAID card. Improvement is urgently needed. Summary of the invention

[0004] The present application provides a data transmission method and device based on multiple physical channels of a RAID card, in order to solve the problems in the related art that a RAID card cluster needs to be equipped with multiple RAID cards, which increases the transmission cost, and the introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller, increases the difficulty of maintenance, and only supports single physical channel transmission, resulting in limited IO transmission rate, which greatly reduces the performance of the RAID card.

[0005] A first aspect of the present application provides a data transmission method based on multiple physical channels of a RAID card, comprising the following steps: receiving at least one target IO request, and determining, based on task information of the at least one target IO request and device information of at least one target device, a number of physical channels of a PCIE (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard) sub-device that meets preset requirements for at least one RAID card to be virtualized; based on the number of physical channels, virtualizing a corresponding RAID card into a corresponding number of PCIE sub-devices; and transmitting the at least one target IO request to the at least one target device using multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirements.

[0006] Through the above technical solution, the RAID card can be virtualized into multiple physical channels of the PCIE sub-device that meets certain requirements according to the task information of the received target IO request and the device information of the target device, and then the corresponding RAID card can be virtualized into corresponding multiple PCIE sub-devices, so that the target IO request is transmitted using the multiple physical channels between the PCIE sub-device and the target device. By utilizing the multiple physical channels of the RAID card, parallel data transmission is achieved, thereby significantly improving the data transmission rate, reducing transmission bottlenecks, improving the throughput of the overall system, and enhancing the system reliability and stability. In addition, since it supports multi-physical channel transmission, it can be easier to expand and upgrade the system, improving system flexibility and manageability.

[0007] Optionally, in one embodiment of the present application, virtualizing the corresponding RAID card into corresponding multiple PCIE sub-devices includes: based on the routing identifier function of the RAID card, obtaining at least one bus identifier and at least one function identifier corresponding to the RAID card; and generating a bus identifier and a function identifier corresponding to the at least one PCIE sub-device from the at least one bus identifier and the at least one function identifier, respectively, so as to virtualize the RAID card into the multiple PCIE sub-devices based on the bus identifier and the function identifier.

[0008] Through the above technical solution, the bus identifier and function identifier corresponding to the PCIE sub-device can be generated from the corresponding bus identifier and function identifier according to the routing identifier function of the RAID card, and then the RAID card can be virtualized into multiple PCIE sub-devices, which can more flexibly allocate system resources and improve resource utilization. Virtualization technology enables the RAID card to be compatible with more types of PCIE devices and system architectures, which helps to reduce the cost of hardware upgrades and replacements, improves the maintainability of the system, and allows users to more conveniently manage and monitor the RAID card and its corresponding PCIE sub-devices, thereby reducing maintenance costs.

[0009] Optionally, in one embodiment of the present application, the at least one target IO request is transmitted to the at least one target device using multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirements, including: obtaining a physical channel corresponding to the target IO request transmitted to the at least one target device; and transmitting the target IO request to the at least one target device using the physical channel.

[0010] Through the above technical solution, the physical channel corresponding to the target IO request transmitted to the target device can be obtained, and the target IO request can be transmitted to the target device through the physical channel, which can ensure that the data is accurately sent to the target device and avoid mistransmission or omission during data transmission. In addition, by selecting a suitable physical channel for data transmission, the data transmission path can be optimized, and the delay and loss of data transmission can be reduced, thereby improving the efficiency of data transmission.

[0011] Optionally, in one embodiment of the present application, transmitting the target IO request to the at least one target device using the physical channel includes: determining device information of the target device corresponding to the physical channel based on the physical channel; and transmitting the target IO request to the at least one target device based on the device information, the target device corresponding to the device information, and the physical channel corresponding to the device information.

[0012] Through the above technical solution, the corresponding device information can be determined according to the physical channel, and then the target IO request can be transmitted according to the corresponding device information, which can accurately locate the target device, avoiding errors and confusion in the data transmission process. With accurate device positioning, the target IO request can be accurately transmitted to the target device, thereby ensuring the accuracy and integrity of data transmission, reducing intermediate links and unnecessary delays, improving the utilization efficiency of system resources, and realizing real-time data transmission.

[0013] Optionally, in one embodiment of the present application, the at least one target IO request is transmitted to the at least one target device using multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirements, including: determining, based on the at least one PCIE sub-device, that the at least one target IO request is transmitted to a RAID driver controller corresponding to the at least one target device; and driving the at least one PCIE sub-device using the RAID driver controller to transmit the at least one target IO request to the at least one target device.

[0014] Through the above technical solution, the corresponding RAID driver controller can be used to drive the PCIE sub-device to complete the transmission of the target IO request, and the data transmission between multiple PCIE sub-devices can be effectively managed to achieve parallel processing and load balancing, thereby improving the overall efficiency of data transmission, and being able to ensure data integrity and normal operation of the system when a hard disk fails, significantly reducing the risk of data loss.

[0015] Optionally, in one embodiment of the present application, the using the RAID driver controller to drive the at least one PCIE sub-device to transmit the at least one target IO request to the at least one target device includes: obtaining the IO format driven by the RAID driver controller; based on the IO format and the at least one PCIE sub-device, transmitting the at least one target IO request to the at least one target device.

[0016] Through the above technical solution, the IO format driven by the RAID driver controller can be obtained, and then at least one target IO request can be transmitted to at least one target device based on the IO format and at least one PCIE sub-device. By obtaining the IO format driven by the RAID driver controller, it can be ensured that the format of the target IO request matches the transmission requirements between the RAID controller and the PCIE sub-device, avoiding transmission errors or data loss caused by format mismatch, thereby improving the accuracy of data transmission, and by clarifying and following a specific IO format, it can be ensured that the compatibility of the target IO request between different devices can be ensured, seamless transmission can be achieved, data transmission performance can be optimized, and system reliability and stability can be enhanced.

[0017] Optionally, in one embodiment of the present application, the task information requested by the at least one target IO and the device information of the at least one target device determine the number of multiple physical channels of at least one RAID card virtualized as a PCIE sub-device that meets preset requirements, including: when the preset requirement is that the IO transmission rate is greater than the target transmission rate corresponding to the task information, determining the number of multiple physical channels based on the task information, the device information and the target transmission rate.

[0018] Through the above technical solution, under certain requirements that the IO transmission rate is greater than the target transmission rate, the number of multiple physical channels can be determined based on task information, device information and target transmission rate. According to the task information and device information, the required number of physical channels can be accurately calculated to ensure that the IO transmission rate is greater than the target transmission rate, thereby avoiding waste of resources and bottlenecks, improving the overall transmission efficiency, and being able to dynamically adjust the number of physical channels according to different task information to adapt to different task requirements and be more widely used in various scenarios.

[0019] A second aspect of the present application provides a data transmission device based on multiple physical channels of a RAID card, including: a determination module, used to receive at least one target IO request, and determine the number of multiple physical channels of at least one RAID card virtualized as a PCIE sub-device that meets preset requirements based on task information of the at least one target IO request and device information of at least one target device; a virtualization module, used to virtualize the corresponding RAID card into corresponding multiple PCIE sub-devices based on the multiple physical channel numbers; and a transmission module, used to transmit the at least one target IO request to the at least one target device using multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirements.

[0020] Through the above technical solution, the RAID card can be virtualized into multiple physical channels of the PCIE sub-device that meets certain requirements according to the task information of the received target IO request and the device information of the target device, and then the corresponding RAID card can be virtualized into corresponding multiple PCIE sub-devices, so that the target IO request is transmitted using the multiple physical channels between the PCIE sub-device and the target device. By utilizing the multiple physical channels of the RAID card, parallel data transmission is achieved, thereby significantly improving the data transmission rate, reducing transmission bottlenecks, improving the throughput of the overall system, and enhancing the system reliability and stability. In addition, since it supports multi-physical channel transmission, it can be easier to expand and upgrade the system, improving system flexibility and manageability.

[0021] Optionally, in one embodiment of the present application, the virtual module includes: a first acquisition unit, used to acquire at least one bus identifier and at least one function identifier corresponding to the RAID card based on the routing identifier function of the RAID card; a virtual unit, used to generate a bus identifier and a function identifier corresponding to the at least one PCIE sub-device from the at least one bus identifier and the at least one function identifier, respectively, so as to virtualize the RAID card into the multiple PCIE sub-devices based on the bus identifier and the function identifier.

[0022] Through the above technical solution, the bus identifier and function identifier corresponding to the PCIE sub-device can be generated from the corresponding bus identifier and function identifier according to the routing identifier function of the RAID card, and then the RAID card can be virtualized into multiple PCIE sub-devices, which can more flexibly allocate system resources and improve resource utilization. Virtualization technology enables the RAID card to be compatible with more types of PCIE devices and system architectures, which helps to reduce the cost of hardware upgrades and replacements, improves the maintainability of the system, and allows users to more conveniently manage and monitor the RAID card and its corresponding PCIE sub-devices, thereby reducing maintenance costs.

[0023] Optionally, in one embodiment of the present application, the transmission module includes: a second acquisition unit, used to acquire a physical channel corresponding to the target IO request transmitted to the at least one target device; and a first transmission unit, used to transmit the target IO request to the at least one target device using the physical channel.

[0024] Through the above technical solution, the physical channel corresponding to the target IO request transmitted to the target device can be obtained, and the target IO request can be transmitted to the target device through the physical channel, which can ensure that the data is accurately sent to the target device and avoid mistransmission or omission during data transmission. In addition, by selecting a suitable physical channel for data transmission, the data transmission path can be optimized, and the delay and loss of data transmission can be reduced, thereby improving the efficiency of data transmission.

[0025] Optionally, in one embodiment of the present application, the first transmission unit includes: a determination subunit, used to determine device information of a target device corresponding to the physical channel based on the physical channel; and a first transmission subunit, used to transmit the target IO request to the at least one target device based on the device information, the target device corresponding to the device information, and the physical channel corresponding to the device information.

[0026] Through the above technical solution, the corresponding device information can be determined according to the physical channel, and then the target IO request can be transmitted according to the corresponding device information, which can accurately locate the target device, avoiding errors and confusion in the data transmission process. With accurate device positioning, the target IO request can be accurately transmitted to the target device, thereby ensuring the accuracy and integrity of data transmission, reducing intermediate links and unnecessary delays, improving the utilization efficiency of system resources, and realizing real-time data transmission.

[0027] Optionally, in one embodiment of the present application, the transmission module includes: a second transmission unit, used to determine, based on the at least one PCIE sub-device, that the at least one target IO request is transmitted to a RAID driver controller corresponding to the at least one target device; and a third transmission unit, used to drive the at least one PCIE sub-device using the RAID driver controller to transmit the at least one target IO request to the at least one target device.

[0028] Through the above technical solution, the corresponding RAID driver controller can be used to drive the PCIE sub-device to complete the transmission of the target IO request, and the data transmission between multiple PCIE sub-devices can be effectively managed to achieve parallel processing and load balancing, thereby improving the overall efficiency of data transmission, and being able to ensure data integrity and normal operation of the system when a hard disk fails, significantly reducing the risk of data loss.

[0029] Optionally, in one embodiment of the present application, the third transmission unit includes: an acquisition subunit, used to acquire the IO format driven by the RAID drive controller; and a second transmission subunit, used to transmit the at least one target IO request to the at least one target device based on the IO format and the at least one PCIE sub-device.

[0030] Through the above technical solution, the IO format driven by the RAID driver controller can be obtained, and then at least one target IO request can be transmitted to at least one target device based on the IO format and at least one PCIE sub-device. By obtaining the IO format driven by the RAID driver controller, it can be ensured that the format of the target IO request matches the transmission requirements between the RAID controller and the PCIE sub-device, avoiding transmission errors or data loss caused by format mismatch, thereby improving the accuracy of data transmission, and by clarifying and following a specific IO format, it can be ensured that the compatibility of the target IO request between different devices can be ensured, seamless transmission can be achieved, data transmission performance can be optimized, and system reliability and stability can be enhanced.

[0031] Optionally, in one embodiment of the present application, the determination module includes: a determination unit, used to determine the number of multiple physical channels based on the task information, the device information and the target transmission rate when the preset requirement is that the IO transmission rate is greater than the target transmission rate corresponding to the task information.

[0032] Through the above technical solution, under certain requirements that the IO transmission rate is greater than the target transmission rate, the number of multiple physical channels can be determined based on task information, device information and target transmission rate. According to the task information and device information, the required number of physical channels can be accurately calculated to ensure that the IO transmission rate is greater than the target transmission rate, thereby avoiding waste of resources and bottlenecks, improving the overall transmission efficiency, and being able to dynamically adjust the number of physical channels according to different task information to adapt to different task requirements and be more widely used in various scenarios.

[0033] The third aspect of the present application provides an electronic device, comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the data transmission method based on multiple physical channels of a RAID card as described in the above embodiment.

[0034] A fourth aspect of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, which, when executed by a processor, implements the above-mentioned data transmission method based on multiple physical channels of a RAID card.

[0035] A fifth aspect of the present application provides a computer program product, including a computer program, which, when executed, implements the above-mentioned data transmission method based on multiple physical channels of a RAID card.

[0036] The embodiment of the present application can virtualize the RAID card into multiple physical channel numbers of the PCIE sub-device that meet certain requirements according to the task information of the received target IO request and the device information of the target device, and then virtualize the corresponding RAID card into corresponding multiple PCIE sub-devices, so that the target IO request is transmitted using multiple physical channels between the PCIE sub-device and the target device. By using the multiple physical channels of the RAID card, parallel transmission of data is achieved, thereby significantly improving the data transmission rate, reducing transmission bottlenecks, improving the throughput of the overall system, and enhancing system reliability and stability. In addition, since it supports multi-physical channel transmission, it is easier to expand and upgrade the system, and improve system flexibility and manageability. Thus, the problems in the related art that the RAID card cluster needs to be equipped with multiple RAID cards, which increases the transmission cost, and the introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller, increases the difficulty of maintenance, and only supports single physical channel transmission, resulting in limited IO transmission rate, greatly reducing the performance of the RAID card, etc.

[0037] Additional aspects and advantages of the present application will be given in part in the description below, and in part will become apparent from the description below, or will be learned through the practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] The above and / or additional aspects and advantages of the present application will become apparent and easily understood from the following description of the embodiments in conjunction with the accompanying drawings, in which:

[0039] Figure 1 A flowchart of a data transmission method based on multiple physical channels of a RAID card provided according to an embodiment of the present application;

[0040] Figure 2 A flowchart of a RAID card virtualized as multiple PCIE sub-devices according to an embodiment of the present application;

[0041] Figure 3 A block diagram of a multi-channel mapping topology for implementing an operating system and one or more RAID arrays with too many physical channels in a RAID card provided according to an embodiment of the present application;

[0042] Figure 4 A flowchart of an IO request transmission optimization process when the multi-physical channel function of a RAID card is enabled according to an embodiment of the present application;

[0043] Figure 5 A block diagram of a data transmission device based on multiple physical channels of a RAID card provided according to an embodiment of the present application;

[0044] Figure 6 It is a schematic diagram of the structure of an electronic device provided according to an embodiment of the present application.

[0045] Reference numerals:

[0046] Among them, 10 is a data transmission device based on multiple physical channels of a RAID card; 100 is a determination module, 200 is a virtual module, 300 is a transmission module; 601 is a memory, 602 is a processor, and 603 is a communication interface. DETAILED DESCRIPTION

[0047] Embodiments of the present application are described in detail below, and examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended to be used to explain the present application, and should not be construed as limiting the present application.

[0048] The following describes the data transmission method and device based on the multi-physical channels of the RAID card of the embodiment of the present application with reference to the accompanying drawings. In view of the fact that the RAID card cluster mentioned in the above background technology needs to be equipped with multiple RAID cards, which increases the transmission cost, and the introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller, increases the maintenance difficulty, and only supports single physical channel transmission, resulting in limited IO transmission rate, which greatly reduces the performance of the RAID card, the present application provides a data transmission method based on the multi-physical channels of the RAID card, in which the RAID card can be virtualized as a number of physical channels of the PCIE sub-device that meets certain requirements according to the task information of the received target IO request and the device information of the target device, and then the corresponding RAID card is virtualized as a corresponding number of PCIE sub-devices, so that the target IO request is transmitted using the multi-physical channels between the PCIE sub-device and the target device, and the multi-physical channels of the RAID card are used to realize parallel transmission of data, thereby significantly improving the data transmission rate, reducing the transmission bottleneck, improving the throughput of the overall system, and enhancing the system reliability and stability. In addition, since multi-physical channel transmission is supported, it is easier to achieve system expansion and upgrade, and improve system flexibility and manageability. This solves the problems in the related technology that a RAID card cluster needs to be equipped with multiple RAID cards, which increases the transmission cost, and the introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller, increases the difficulty of maintenance, and only supports single physical channel transmission, resulting in limited IO transmission rate and greatly reducing the performance of the RAID card.

[0049] Specifically, Figure 1 The present invention provides a flowchart of a data transmission method based on multiple physical channels of a RAID card according to an embodiment of the present application.

[0050] like Figure 1 As shown, the data transmission method based on multiple physical channels of the RAID card includes the following steps:

[0051] In step S101, at least one target IO request is received, and the number of multiple physical channels of at least one RAID card virtualized as a PCIE sub-device that meets preset requirements is determined based on task information of the at least one target IO request and device information of at least one target device.

[0052] It can be understood that the target IO request of the embodiment of the present application can be understood as an IO request initiated by an application, service or user in a storage system or server environment, which is intended to access or modify data stored on a target device (such as a hard disk, SSD, RAID card, etc., which is not specifically limited in this application).

[0053] Furthermore, in an embodiment of the present application, the type of target IO request may include but is not limited to read request, write request, delete request, update request or query request, etc., which can be specifically set by technicians in this field according to actual conditions, and this application does not impose specific restrictions.

[0054] In addition, it should be noted that the task information of the target IO request in the embodiment of the present application may include but is not limited to the type of target IO request, such as read request, write request, etc., which is not specifically limited in the present application; data location, such as logical address, physical address, etc., which is not specifically limited in the present application; data size, such as the amount of data read or written, etc., which is not specifically limited in the present application; priority, metadata, throughput, IOPS (Input / Output Operations Per Second, the amount of data input / output per second), etc., which can be specifically set by technical personnel in this field according to actual conditions, and are not specifically limited in the present application.

[0055] As a possible implementation method, after receiving the target IO request, the embodiment of the present application can automatically parse these requests, and according to the task information of the target IO request and the device information of the target device, such as device name, manufacturer, memory size, network interface, operating system, usage rate, encryption status, etc., the present application does not make specific restrictions, and virtualizes the RAID card into multiple physical channels of the PCIE sub-device that meet certain requirements. Among them, the certain requirements can be set by technicians in this field according to actual conditions, and the present application does not make specific restrictions.

[0056] In some embodiments, the RAID card of the embodiment of the present application can implement multi-physical channel function according to the target IO request and the target device by using a virtual switch topology. This topology is implemented by virtually creating a group of PCIE sub-devices from a PCIE device (RAID card).

[0057] In some embodiments, the RAID card of the embodiment of the present application virtualizes a RAID card into multiple PCIE sub-devices based on the target IO request and the target device by means of a virtual switch topology. Each PCIE sub-device can run and work independently without conflicting with each other. Therefore, each PCIE sub-device can be directly mapped to a virtual machine, and dedicated servers running storage-intensive workloads can be integrated into a single virtualized server equipped with a high-performance RAID card, thereby saving costs and energy consumption.

[0058] For example, assuming that the data throughput of the target IO request is 4GB / s and the bandwidth of each physical channel is 1GB / s, the required number of physical channels is 4. If the RAID card supports 8 physical channels and the server has 4 PCIE slots, then it can be determined that the number of physical channels for virtualizing the RAID card as a PCIE sub-device that meets certain requirements is 4.

[0059] Optionally, in one embodiment of the present application, the number of multiple physical channels of at least one RAID card virtualized as a PCIE sub-device that meets preset requirements is determined based on task information of at least one target IO request and device information of at least one target device, including: when the preset requirement is that the IO transmission rate is greater than the target transmission rate corresponding to the task information, the number of multiple physical channels is determined based on the task information, the device information and the target transmission rate.

[0060] In some embodiments, the embodiments of the present application must require that the IO transmission rate is greater than the target transmission speed, and then ensure that the IO transmission rate is greater than the target transmission speed, and determine the number of multiple physical channels in combination with task information and device information.

[0061] Among them, the IO transmission rate can be an absolute value (such as how many GB per second, etc., which is not specifically limited in this application) or a relative value (such as a percentage increase in the target transmission rate, etc., which is not specifically limited in this application); and the target transmission rate is extracted from the task information of the target IO request, indicating the IO transmission rate that the application or service expects to achieve.

[0062] For example, the embodiment of the present application assumes that there is a target IO request, which requires reading data at a transmission rate of at least 2GB / s. The target device is a server equipped with a RAID card that supports PCIE 4.0. The card can virtualize multiple PCIE sub-devices, and each sub-device can be allocated a different number of physical channels. In this case, the embodiment of the present application can determine the number of physical channels based on the target transmission rate (2GB / s), the bandwidth of each physical channel in the RAID card, and the storage capacity of the server. The number of physical channels calculated through task information and device information can ensure that the IO transmission rate can be greater than the target transmission rate, avoid waste of resources and bottlenecks, improve overall transmission efficiency, and can dynamically adjust the number of physical channels according to different task information to adapt to different task requirements and be more widely used in various scenarios.

[0063] In addition, it should be noted that the embodiment of the present application has a certain requirement that the IO transmission delay is less than the target transmission delay corresponding to the task information. While ensuring that the IO transmission delay is less than the target transmission delay, the number of multiple physical channels is determined in combination with the task information and the device information.

[0064] Among them, IO transmission delay can be understood as the time interval from initiating an IO request to receiving a response, which reflects the response speed and efficiency of the storage system; while the target transmission delay is extracted from the task information of the target IO request, indicating the upper limit of the IO response speed that the application or service expects to achieve.

[0065] For example, the embodiment of the present application assumes that there is an IO request, which requires transmission with an IO transmission delay of less than 10 milliseconds. The target device is a server, which is equipped with a RAID card that supports PCIE 4.0. The card can virtualize multiple PCIE sub-devices, and each sub-device can be allocated a different number of physical channels. In this case, the embodiment of the present application can determine the number of physical channels based on the target transmission delay (10 milliseconds), the bandwidth of each physical channel in the RAID card, and the storage capacity of the server.

[0066] In step S102, based on the number of physical channels, the corresponding RAID card is virtualized into a corresponding plurality of PCIE sub-devices.

[0067] In the actual implementation process, the embodiment of the present application can virtualize the RAID card into a corresponding number of PCIE sub-devices according to the multiple physical channel numbers obtained above.

[0068] For example, an embodiment of the present application can calculate the number of physical channels based on the task information of the target IO request and the device information of the target device. For example, an embodiment of the present application can assume that each node requires 4 physical channels to ensure sufficient storage bandwidth. In the virtualization configuration option, the virtualization function is enabled to virtualize the corresponding RAID card into a virtual PCIE sub-device equal to the number of physical channels.

[0069] Optionally, in one embodiment of the present application, the corresponding RAID card is virtualized into corresponding multiple PCIE sub-devices, including: based on the routing identifier function of the RAID card, obtaining at least one bus identifier and at least one function identifier corresponding to the RAID card; generating a bus identifier and a function identifier corresponding to at least one PCIE sub-device from the at least one bus identifier and the at least one function identifier, respectively, so as to virtualize the RAID card into multiple PCIE sub-devices based on the bus identifier and the function identifier.

[0070] It can be understood that in the embodiment of the present application, the bus identifier is usually a number, which can be used to indicate the position of the RAID card on the PCIE bus to which it is connected; the function identifier is usually also a number, which can be used to distinguish different PCIE sub-devices on the same bus.

[0071] Furthermore, the acquisition of the bus identifier and function identifier corresponding to the RAID card in the embodiment of the present application can be completed by interacting with the management interface of the RAID card (such as BIOS (Basic Input Output System) settings, driver interface or dedicated management software, etc., which is not specifically limited in this application).

[0072] It can be understood by those skilled in the art that the embodiments of the present application can obtain the bus identifier and function identifier corresponding to the RAID card, and then generate the bus identifier and function identifier corresponding to each virtual PCIE sub-device based on these identifiers, thereby virtualizing the RAID card into multiple PCIE sub-devices.

[0073] Exemplary, combined Figure 2 In the embodiment of the present application, according to the routing identifier function of the RAID card, its routing identifier may be, but is not limited to, composed of a bus identifier and a function identifier. The present application does not impose specific restrictions. At the beginning of the system operation, the system level assigns different bus identifiers to each PCIE sub-device. According to the PCIE protocol requirements, the function identifier of the PCIE sub-device presented by the virtual switch hierarchy is always required to be 0. Therefore, in the embodiment of the present application, each PCIE sub-device is assigned a different routing identifier to realize virtualization of the RAID card into multiple PCIE sub-devices. Virtualization technology enables the RAID card to be compatible with more types of PCIE devices and system architectures, which helps to reduce the cost of hardware upgrades and replacements, improves the maintainability of the system, and allows users to more conveniently manage and monitor the RAID card and its corresponding PCIE sub-devices, thereby reducing maintenance costs.

[0074] In step S103, at least one target IO request is transmitted to at least one target device by using multiple physical channels between at least one PCIE sub-device and at least one target device to complete preset requirements.

[0075] As a possible implementation method, in the embodiment of the present application, when the host initiates a target IO request, such as an IO read and write task, the present application does not make specific restrictions, the block data layer in the operating system receives the IO request of the upper layer, sorts or merges the data according to the command priority through the IO scheduler, and completes the IO transfer from the block data layer to the SCSI (Small Computer System Interface) layer (driver) through multiple physical channels in the form of multiple queues; receives the target IO request at each target device (such as a direct hard disk or RAID array, etc., the present application does not make specific restrictions), feedbacks the successful execution of the command, and completes the complete target IO request transmission process. Among them, in the embodiment of the present application, due to the parallel transmission of multiple physical channels, the IO transmission rate can achieve multiple growth, and the performance improvement effect is significant.

[0076] Optionally, in one embodiment of the present application, at least one target IO request is transmitted to at least one target device using multiple physical channels between at least one PCIE sub-device and at least one target device to complete preset requirements, including: obtaining a physical channel corresponding to the target IO request transmitted to at least one target device; and transmitting the target IO request to at least one target device using the physical channel.

[0077] It can be understood that in the embodiment of the present application, there may be one physical channel or multiple physical channels between the target IO request and the target device, and the present application does not impose any specific limitation.

[0078] In some embodiments, the embodiments of the present application can create multiple physical channels by using a RAID card management tool according to the number of target devices (such as RAID arrays, pass-through hard disks, etc., which are not specifically limited in this application) connected to the RAID card, thereby ensuring that data is accurately sent to the target device and avoiding mistransmission or omission during data transmission. If no setting is made, the number of physical channels defaults to 1, that is, single-channel mode; then each physical channel is bound to the RAID array (pass-through hard disk) in turn, and the corresponding relationship can be 1 physical channel corresponding to 1 or more RAID array groups (pass-through hard disks), completing the configuration of multiple physical channels. By selecting appropriate physical channels for data transmission, the data transmission path can be optimized, and the delay and loss of data transmission can be reduced, thereby improving the efficiency of data transmission.

[0079] Optionally, in one embodiment of the present application, the target IO request is transmitted to at least one target device using a physical channel, including: determining device information of the target device corresponding to the physical channel based on the physical channel; and transmitting the target IO request to at least one target device based on the device information, the target device corresponding to the device information, and the physical channel corresponding to the device information.

[0080] In some embodiments, the embodiments of the present application may transmit the target IO request to the corresponding target device according to the target IO request and the device information of the target device corresponding to the physical channel.

[0081] For example, in the embodiment of the present application, each PCIE sub-device provides a physical channel for the target IO request transmission, so the RAID card driver can realize the mapping of the operating system and one or more RAID arrays (or pass-through hard disks) through a specific physical channel, and realize the function of multiple physical channels working in parallel, as shown in the example diagram. Figure 3 As shown, the target device can be accurately located, avoiding errors and confusions in the data transmission process, and then it can be accurately transmitted to the target device, thereby ensuring the accuracy and integrity of data transmission and reducing intermediate links and unnecessary delays.

[0082] Optionally, in one embodiment of the present application, at least one target IO request is transmitted to at least one target device using multiple physical channels between at least one PCIE sub-device and at least one target device to complete preset requirements, including: determining based on at least one PCIE sub-device that at least one target IO request is transmitted to a RAID driver controller corresponding to at least one target device; and using the RAID driver controller to drive at least one PCIE sub-device to transmit at least one target IO request to at least one target device.

[0083] It can be understood that in the embodiment of the present application, one PCIE sub-device corresponds to one RAID driver controller, and when all PCIE sub-devices can be recognized normally, the corresponding RAID driver controller drives to start the RAID device and allocate memory space and DMA (Direct Memory Access) buffer, ensuring that the operating system can effectively manage and control the RAID card, providing a hardware foundation for subsequent command execution and data transmission.

[0084] Exemplarily, the embodiment of the present application can virtualize the RAID card into multiple PCIE sub-devices according to the number of physical channels configured by the user, and at the beginning of system operation, all PCIE sub-devices on the host bus are configured with different routing identifiers to complete the RAID card virtualization process and ensure that all PCIE sub-devices can be normally identified. The RAID driver controller drives, starts the RAID device and allocates memory space and DMA buffer, which can effectively manage the data transmission between multiple PCIE sub-devices, realize parallel processing and load balancing, and thus improve the overall efficiency of data transmission, and can ensure the integrity of data and the normal operation of the system when the hard disk fails, significantly reducing the risk of data loss.

[0085] Optionally, in one embodiment of the present application, a RAID driver controller is used to drive at least one PCIE sub-device to transmit at least one target IO request to at least one target device, including: obtaining an IO format driven by the RAID driver controller; based on the IO format and at least one PCIE sub-device, transmitting at least one target IO request to at least one target device.

[0086] It is understandable that in the embodiment of the present application, the RAID driver controller is responsible for managing a group of physical storage devices (such as hard disk drives or solid-state drives) to provide data redundancy, performance improvement, or both. In order to communicate with these storage devices, the RAID driver controller needs to follow a specific IO format. Among them, the IO format can define how data is organized, packaged, and transmitted, etc., and the present application does not make specific restrictions, thereby ensuring the consistency and integrity of the data. For example, the RAID driver controller driver of the embodiment of the present application can encapsulate the received target IO request into a queue command that can be recognized and processed by the RAID card FW (Firewall), and then merge or split the target IO request and distribute it to each target device (pass-through hard disk or RAID array). Since a multi-physical channel function is set, the data transmission in each physical channel does not affect each other, and data parallel transmission is realized.

[0087] As a possible implementation method, the RAID driver controller of the embodiment of the present application can encapsulate the received target IO request into a queue command that can be recognized and processed by the RAID card FW, which can ensure that the format of the target IO request matches the transmission requirements between the RAID controller and the PCIE sub-device, avoiding transmission errors or data loss caused by format mismatch, thereby improving the accuracy of data transmission, and then transmitting it to the RAID card FW for processing. The FW merges or splits the target IO request and distributes it to each target device (pass-through hard disk or RAID array). The RAID driver controller drives the SCSI module of the upper operating system storage stack to register as multiple host adapters on the SCSI bus, scans the SCSI bus devices, detects the pass-through hard disk or RAID array connected behind the host adapter, adds all SCSI devices (pass-through hard disk or RAID array) to the system, realizes the communication between the system host and multiple target devices (pass-through hard disk or RAID array), and completes the configuration of multiple physical channels in the SCSI module. By clarifying and following the specific IO format, the compatibility of the target IO request between different devices can be ensured, seamless transmission can be achieved, data transmission performance can be optimized, and the reliability and stability of the system can be enhanced.

[0088] The working principle of the data transmission method based on multiple physical channels of a RAID card proposed in the embodiment of the present application is introduced below in conjunction with a specific embodiment.

[0089] in, Figure 4 The present invention is a flowchart of an IO request transmission optimization process when the multi-physical channel function of a RAID card is enabled according to an embodiment of the present application.

[0090] Among them, the embodiment of the present application can divide the working principle of the data transmission method based on multiple physical channels of the RAID card into three parts: a user configuration process, a system self-configuration process and a data transmission process.

[0091] In this embodiment of the present application, the user configuration process may include:

[0092] Step S401: Create multiple physical channels.

[0093] Step S402: Bind the physical channel to the target device.

[0094] Among them, in the user configuration process of the embodiment of the present application, multiple physical channels can be created according to the number of target devices connected to the RAID card by using the RAID card management tool. If no setting is made, the number of physical channels defaults to 1, that is, single-channel mode; then each physical channel is bound to the RAID array (pass-through hard disk) in turn, and the corresponding relationship can be 1 physical channel corresponding to 1 or more RAID array groups (pass-through hard disks), thereby completing the configuration of multiple physical channels.

[0095] The system self-configuration process may include:

[0096] Step S403: multiple PCIE sub-devices are enumerated.

[0097] Step S404: RAID driver controller driver registration.

[0098] Step S405: SCSI bus registration.

[0099] Among them, in the system self-configuration process, the embodiment of the present application can virtualize the RAID card into multiple PCIE sub-devices according to the number of physical channels configured by the user, and at the beginning of the system operation, all PCIE sub-devices on the host bus are configured with different routing identifiers to complete the RAID card virtualization process and ensure that all PCIE sub-devices can be normally identified, driven by the RAID driver controller, start the RAID device and allocate memory space and DMA buffer.

[0100] Furthermore, in an embodiment of the present application, the RAID card driver calls the SCSI module of the upper operating system storage stack, registers as multiple host adapters on the SCSI bus, scans the SCSI bus devices, detects the pass-through hard disk or RAID array connected behind the host adapter, adds all SCSI devices (pass-through hard disk or RAID array) to the system, realizes communication between the system host and multiple target devices, and completes the configuration of multiple physical channels in the SCSI module.

[0101] The data transfer process may include:

[0102] Step S406: Block data layer IO processing.

[0103] Step S407: drive IO packaging.

[0104] Step S408: FW performs IO processing.

[0105] Among them, in the data transmission process of the embodiment of the present application, when the host initiates an IO read or write task, the block data layer in the operating system receives the IO request from the upper layer, sorts or merges the data according to the command priority through the IO scheduler, and completes the IO transfer from the block data layer to the SCSI layer (driver) through multiple physical channels in the form of multiple queues.

[0106] Furthermore, in the embodiment of the present application, the RAID driver controller driver may encapsulate the received target IO request into a queue command that can be recognized and processed by the RAID card FW, and pass it to the FW for processing.

[0107] Then, the FW merges or splits the target IO request and distributes it to each target device. Each target device receives the target IO request and feedbacks that the command is executed successfully, thus completing the complete target IO request transmission process.

[0108] According to the data transmission method based on multiple physical channels of RAID cards proposed in the embodiment of the present application, the RAID card can be virtualized as multiple physical channel numbers of PCIE sub-devices that meet certain requirements according to the task information of the received target IO request and the device information of the target device, and then the corresponding RAID card can be virtualized as corresponding multiple PCIE sub-devices, so that the target IO request is transmitted using multiple physical channels between the PCIE sub-device and the target device. By using the multiple physical channels of the RAID card, parallel transmission of data is achieved, thereby significantly improving the data transmission rate, reducing transmission bottlenecks, improving the throughput of the overall system, and enhancing system reliability and stability. In addition, since it supports multi-physical channel transmission, it is easier to expand and upgrade the system, and improve system flexibility and manageability. Thus, the problems in the related art that the RAID card cluster needs to be equipped with multiple RAID cards, which increases the transmission cost, and the introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller, increases the difficulty of maintenance, and only supports single physical channel transmission, resulting in limited IO transmission rate, greatly reducing the performance of the RAID card, etc.

[0109] Next, a data transmission device based on multiple physical channels of a RAID card proposed according to an embodiment of the present application will be described with reference to the accompanying drawings.

[0110] Figure 5 It is a block diagram of a data transmission device based on multiple physical channels of a RAID card provided according to an embodiment of the present application.

[0111] like Figure 5 As shown, the data transmission device 10 based on multiple physical channels of a RAID card includes: a determination module 100 , a virtual module 200 and a transmission module 300 .

[0112] The determination module 100 is used to receive at least one target IO request, and determine the number of multiple physical channels of at least one RAID card virtualized as a PCIE sub-device that meets preset requirements based on task information of at least one target IO request and device information of at least one target device.

[0113] The virtual module 200 is used to virtualize the corresponding RAID card into a corresponding plurality of PCIE sub-devices based on the number of physical channels.

[0114] The transmission module 300 is used to transmit at least one target IO request to at least one target device by utilizing multiple physical channels between at least one PCIE sub-device and at least one target device to complete preset requirements.

[0115] Optionally, in one embodiment of the present application, the virtual module 200 includes: a first acquisition unit and a virtual unit.

[0116] The first acquisition unit is used to acquire at least one bus identifier and at least one function identifier corresponding to the RAID card based on the routing identifier function of the RAID card.

[0117] The virtual unit is used to generate a bus identifier and a function identifier corresponding to at least one PCIE sub-device respectively from at least one bus identifier and at least one function identifier, so as to virtualize the RAID card into multiple PCIE sub-devices based on the bus identifier and the function identifier.

[0118] Optionally, in one embodiment of the present application, the transmission module 300 includes: a second acquisition unit and a first transmission unit.

[0119] The second acquisition unit is used to acquire a physical channel corresponding to the target IO request transmitted to at least one target device.

[0120] The first transmission unit is used to transmit the target IO request to at least one target device by using a physical channel.

[0121] Optionally, in one embodiment of the present application, the first transmission unit includes: a determination subunit and a first transmission subunit.

[0122] The determination subunit is used to determine device information of a target device corresponding to the physical channel based on the physical channel.

[0123] The first transmission subunit is used to transmit the target IO request to at least one target device based on the device information, the target device corresponding to the device information, and the physical channel corresponding to the device information.

[0124] Optionally, in one embodiment of the present application, the transmission module 300 includes: a second transmission unit and a third transmission unit.

[0125] The second transmission unit is used to determine at least one target IO request based on at least one PCIE sub-device and transmit it to a RAID driver controller corresponding to at least one target device.

[0126] The third transmission unit is used to drive at least one PCIE sub-device by using the RAID driver controller to transmit at least one target IO request to at least one target device.

[0127] Optionally, in one embodiment of the present application, the third transmission unit includes: an acquisition subunit and a second transmission subunit.

[0128] The acquisition subunit is used to acquire the IO format driven by the RAID drive controller.

[0129] The second transmission subunit is used to transmit at least one target IO request to at least one target device based on the IO format and at least one PCIE sub-device.

[0130] Optionally, in one embodiment of the present application, the determination module 100 includes: a determination unit.

[0131] The determination unit is used to determine the number of multiple physical channels based on the task information, the device information and the target transmission rate when the preset requirement is that the IO transmission rate is greater than the target transmission rate corresponding to the task information.

[0132] It should be noted that the above explanation of the data transmission method embodiment based on multiple physical channels of a RAID card is also applicable to the data transmission device based on multiple physical channels of a RAID card of this embodiment, and will not be repeated here.

[0133] According to the data transmission device based on multiple physical channels of the RAID card proposed in the embodiment of the present application, the RAID card can be virtualized as multiple physical channels of the PCIE sub-device that meet certain requirements according to the task information of the received target IO request and the device information of the target device, and then the corresponding RAID card can be virtualized as multiple corresponding PCIE sub-devices, so that the target IO request is transmitted using multiple physical channels between the PCIE sub-device and the target device. By using the multiple physical channels of the RAID card, the parallel transmission of data is realized, thereby significantly improving the data transmission rate, reducing the transmission bottleneck, improving the throughput of the overall system, and enhancing the system reliability and stability. In addition, since it supports multiple physical channel transmission, it can be easier to expand and upgrade the system, and improve the system flexibility and manageability. Therefore, the problems in the related art that the RAID card cluster needs to be equipped with multiple RAID cards, which increases the transmission cost, and the introduction of preset channels and monitoring mechanisms increases the hardware complexity of the RAID card controller, increases the maintenance difficulty, and only supports single physical channel transmission, resulting in limited IO transmission rate and greatly reducing the performance of the RAID card are solved.

[0134] Figure 6 This is a schematic diagram of the structure of an electronic device provided according to an embodiment of the present application. The electronic device may include:

[0135] A memory 601 , a processor 602 , and a computer program stored in the memory 601 and executable on the processor 602 .

[0136] When the processor 602 executes the program, the data transmission method based on multiple physical channels of the RAID card provided in the above embodiment is implemented.

[0137] Furthermore, the electronic device further comprises:

[0138] The communication interface 603 is used for communication between the memory 601 and the processor 602 .

[0139] The memory 601 is used to store computer programs that can be executed on the processor 602 .

[0140] The memory 601 may include a high-speed RAM memory, and may also include a non-volatile memory (non-volatile memory), such as at least one disk memory.

[0141] If the memory 601, the processor 602 and the communication interface 603 are implemented independently, the communication interface 603, the memory 601 and the processor 602 can be connected to each other through a bus and communicate with each other. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0142] Optionally, in a specific implementation, if the memory 601, the processor 602 and the communication interface 603 are integrated on a chip, the memory 601, the processor 602 and the communication interface 603 can communicate with each other through an internal interface.

[0143] The processor 602 may be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application.

[0144] The embodiment of the present application further provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the above-mentioned data transmission method based on multiple physical channels of a RAID card.

[0145] An embodiment of the present application also provides a computer program product, including a computer program, which, when executed, implements the above-mentioned data transmission method based on multiple physical channels of a RAID card.

[0146] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" etc. means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present application. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or N embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine the different embodiments or examples described in this specification and the features of the different embodiments or examples, without contradiction.

[0147] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of this application, "N" means at least two, such as two, three, etc., unless otherwise clearly and specifically defined.

[0148] Any process or method description in a flowchart or otherwise described herein may be understood to represent a module, fragment or portion of code comprising one or N executable instructions for implementing the steps of a custom logical function or process, and the scope of the preferred embodiments of the present application includes alternative implementations in which functions may not be performed in the order shown or discussed, including performing functions in a substantially simultaneous manner or in reverse order depending on the functions involved, which should be understood by technicians in the technical field to which the embodiments of the present application belong.

[0149] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as an ordered list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by an instruction execution system, device or apparatus (such as a computer-based system, a system including a processor, or other system that can fetch instructions from an instruction execution system, device or apparatus and execute instructions), or in combination with these instruction execution systems, devices or apparatuses. For the purpose of this specification, "computer-readable medium" can be any device that can contain, store, communicate, propagate or transmit a program for use by an instruction execution system, device or apparatus, or in combination with these instruction execution systems, devices or apparatuses. More specific examples of computer-readable media (a non-exhaustive list) include the following: an electrical connection with one or N wirings (electronic devices), a portable computer disk box (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), a fiber optic device, and a portable compact disk read-only memory (CDROM). In addition, the computer-readable medium may even be paper or other suitable medium on which the program is printed, since the program may be obtained electronically by optically scanning the paper or other medium and then editing, interpreting or processing in other suitable ways as necessary and then storing it in a computer memory.

[0150] It should be understood that the various parts of the present application can be implemented by hardware, software, firmware or a combination thereof. In the above embodiment, the N steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. If implemented by hardware, as in another embodiment, it can be implemented by any one or a combination of multiple of the following technologies known in the art: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.

[0151] A person skilled in the art may understand that all or part of the steps in the method for implementing the above-mentioned embodiment may be completed by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, which, when executed, includes one or a combination of the steps of the method embodiment.

[0152] In addition, each functional unit in each embodiment of the present application may be integrated into a processing module, or each unit may exist physically separately, or two or more units may be integrated into one module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a computer-readable storage medium.

[0153] The storage medium mentioned above may be a read-only memory, a magnetic disk or an optical disk, etc. Although the embodiments of the present application have been shown and described above, it can be understood that the above embodiments are exemplary and cannot be understood as limiting the present application. A person of ordinary skill in the art may change, modify, replace and modify the above embodiments within the scope of the present application.

Claims

1. A data transmission method based on multiple physical channels of a RAID card, characterized in that: The following steps are involved: Receive at least one target input / output IO request, and determine the number of multiple physical channels of at least one independent hard disk redundant array RAID card virtualized as a high-speed serial computer expansion bus standard PCIE sub-device that meets preset requirements based on task information of the at least one target IO request and device information of at least one target device; Based on the number of physical channels, virtualize the corresponding RAID card into corresponding multiple PCIE sub-devices; The at least one target IO request is transmitted to the at least one target device by utilizing multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirement.

2. The method according to claim 1, characterized in that: The step of virtualizing the corresponding RAID card into a plurality of corresponding PCIE sub-devices includes: Based on the routing identifier function of the RAID card, obtaining at least one bus identifier and at least one function identifier corresponding to the RAID card; A bus identifier and a function identifier corresponding to the at least one PCIE sub-device are generated respectively from the at least one bus identifier and the at least one function identifier, so as to virtualize the RAID card into the multiple PCIE sub-devices based on the bus identifier and the function identifier.

3. The method according to claim 1, characterized in that The step of transmitting the at least one target IO request to the at least one target device by utilizing multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirement includes: Obtain a physical channel corresponding to the target IO request transmitted to the at least one target device; The target IO request is transmitted to the at least one target device using the physical channel.

4. The method according to claim 3, characterized in that: The transmitting the target IO request to the at least one target device using the physical channel includes: Determine, based on the physical channel, device information of a target device corresponding to the physical channel; The target IO request is transmitted to the at least one target device based on the device information, the target device corresponding to the device information, and the physical channel corresponding to the device information.

5. The method according to claim 1, characterized in that The step of transmitting the at least one target IO request to the at least one target device by utilizing multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirement includes: Determine, based on the at least one PCIE sub-device, that the at least one target IO request is transmitted to a RAID driver controller corresponding to the at least one target device; The RAID driver controller is used to drive the at least one PCIE sub-device to transmit the at least one target IO request to the at least one target device.

6. The method according to claim 5, characterized in that The step of using the RAID driver controller to drive the at least one PCIE sub-device to transmit the at least one target IO request to the at least one target device includes: Obtaining the IO format of the RAID driver controller driver; Based on the IO format and the at least one PCIE sub-device, the at least one target IO request is transmitted to the at least one target device.

7. The method according to claim 1, characterized in that The determining, based on the task information of the at least one target IO request and the device information of the at least one target device, of the number of multiple physical channels of the at least one RAID card virtualized as a PCIE sub-device that meets the preset requirements comprises: When the preset requirement is that the IO transmission rate is greater than the target transmission rate corresponding to the task information, the number of the multiple physical channels is determined based on the task information, the device information and the target transmission rate.

8. A data transmission device based on multiple physical channels of a RAID card, characterized in that: include: A determination module, configured to receive at least one target IO request, and determine the number of multiple physical channels of at least one RAID card virtualized as a PCIE sub-device that meets preset requirements based on task information of the at least one target IO request and device information of at least one target device; A virtual module, used for virtualizing a corresponding RAID card into a corresponding plurality of PCIE sub-devices based on the plurality of physical channel quantities; The transmission module is used to transmit the at least one target IO request to the at least one target device by utilizing the multiple physical channels between the at least one PCIE sub-device and the at least one target device to complete the preset requirement.

9. An electronic device, characterized in that: include: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement data transmission based on multiple physical channels of a RAID card as described in any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: The program is executed by a processor to implement data transmission based on multiple physical channels of a RAID card as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • PCIe bus-based extended storage device

    CN108874719A

  • Communication between virtual dual control modules in a virtual machine environment

    CN109213702A

  • Method for efficient inter-processor communication in an active-active RAID system using PCI-express links

    US20060161707A1

  • Redundant array of independent disks (RAID) write cache sub-assembly

    US20110225353A1