Performance balancing scheduling method, device, equipment and storage medium for HBA IOC
By receiving and using the physical topology and bandwidth performance information of the disk in the HBA IOC, and combining actual read and write request monitoring, balancing scheduling and arbitration between disks, the performance imbalance caused by inconsistent disk topology connected to the HBA IOC is solved, and the overall performance of the storage system is improved.
Patent Information
- Application Number
- CN202410914654.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-08
- Publication Date
- 2025-04-29
- Estimated Expiration
- 2044-07-08
AI Technical Summary
The actual dynamic working topology and physical topology of the disks connected to HBA IOC are inconsistent, resulting in unbalanced performance between disks, thereby reducing the performance of the entire storage system.
By receiving the physical topology information of each disk pre-configured in the enumeration stage and the relative proportional relationship between the physical topology information and bandwidth performance of each disk, and combining the actual read and write request data monitoring information, the read and write requests of each disk are balanced to ensure that the bandwidth between disks is balanced and competes for the host interface.
It realizes that the bandwidth between disks is balanced under actual dynamic working conditions, solves the problem of degradation in storage system performance caused by unbalanced performance between disks, and improves the performance of the entire system.
Smart Images

Figure CN118838546B_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of disk scheduling, and in particular relates to a performance balancing scheduling method, device, equipment and storage medium for HBA IOC. Background Art
[0002] In the server storage system architecture, the host bus adapter HBA (Host Bus Adapter) usually serves as a bridge between the host and peripheral storage devices. It can not only expand the number of server peripheral storage device connections, but also support conversion between different interface protocols, enriching the functions of the server system while meeting diverse system application scenarios. HBA's input and output controller IOC (I / O Controller, referred to as controller) is widely used in computer network storage systems for communication between host servers and expanded storage devices. HBA IOC can not only simplify the peripheral interface design of the host server system, but also provide processor-related functions, such as processing data transmission and data management-related functions. The typical connection diagram of HBA IOC is as follows: Figure 1 As shown. Among them, HBA IOC HI0 is used for communication between the host server HS0 and the expansion disk (D0, D1, D2...DN). The underlying interface between HI0 and the host server is PCIe, which is connected to the host through the upper PCIe interface controller UP0 for communication. The communication interface between HI0 and the disk is the SAS / SATA / PCIe and other serial deserializer SERDES interface, which is connected to the corresponding SERDES disk through the lower SERDES interface controller (CTRL) DS_0, DS_1, DS_2,...DM_M-1, DS_M for communication. A lower SERDES interface controller may have multi-mode capabilities, such as PCIe, SAS, SATA, etc., and can support multiple topological methods to connect disks.
[0003] In general, if the disks access the host server through HBA IOC at the same time, the bandwidth of the downstream connection is greater than the bandwidth of the upstream PCIe, and there is resource competition for the access to the upstream connection. Due to the diversity of the types of disks connected to the downstream SERDES interface controller and the topological methods of connecting the disks, the topology used in actual data transmission may be different from the topology of the actual connected disks and the actual running topology may change dynamically. This will make it difficult to ensure the balance of data communication between the disks connected to the HBA IOC and the host. For the scenario where the connected disks are used as disk groups, if the performance between the disks is not balanced, the "barrel effect" will occur, resulting in reduced performance of the entire storage system. Therefore, when multiple disks compete to access the host, performance balancing scheduling between the disks is crucial to optimizing and improving the performance of the entire storage system. Summary of the invention
[0004] The purpose of the present application is to provide a performance balancing scheduling method, apparatus, device and storage medium for HBA IOC, aiming to solve the problem of potential performance imbalance between disks when the topology used in the actual dynamic operation of the disk connected to the HBA IOC is inconsistent with the physical topology, resulting in reduced performance of the entire storage system.
[0005] According to a first aspect of the present application, a performance balancing scheduling method for HBA IOC is provided, comprising:
[0006] Receive the physical topology information and bandwidth performance relative ratio relationship information of each disk pre-configured by the software during the enumeration phase;
[0007] When the disk initiates data read and write access to the host, the disk's read and write request and related data are stored in the read and write request buffer corresponding to the disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk is counted;
[0008] Based on the relative proportional relationship between the physical topology information and bandwidth performance of each disk, as well as the monitoring information of the read and write request data volume in the read and write buffers corresponding to each disk, the read and write requests of each disk are balanced and scheduled and arbitrated, and the read and write requests of the disk are sent to the host according to the scheduling and arbitration results.
[0009] In an optional implementation manner, storing the read and write requests and related data of the disk in the read and write request buffer corresponding to the disk, and counting the monitoring information of the amount of read and write request data in the read and write buffer corresponding to each disk, further includes:
[0010] The disk's read requests are stored in the read request buffer in the flow control buffer cluster through the SERDES controller, the disk's write requests and write data are stored in the write request buffer in the flow control buffer cluster, and the monitoring information of the read request data volume and write request data volume in the read request buffer and write request buffer corresponding to each disk is fed back to the scheduling arbitrator in the IOC.
[0011] In an optional implementation manner, sending the read and write request of the disk to the host further includes:
[0012] The read response or write response returned by the host is transmitted to the read and write response buffer corresponding to the disk through the response path dispatcher, and finally reaches each disk, completing the disk's data read and write access operation to the host.
[0013] In an optional implementation manner, the balanced scheduling arbitration of the read and write requests of each disk based on the relative proportional relationship information between the physical topology information and the bandwidth performance of each disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, further includes:
[0014] When the disk reads data from the host, the following bandwidth scheduling allocation strategy is used:
[0015]
[0016] Where: D i is the disk i connected to the HBA IOC; UP_BW_Rd(Di) is the bandwidth allocated by disk i to read the host through the upper PCIe; UP_BW_Rd_All is the theoretical total bandwidth of the upper PCIe reading host; BWCfg_Rd(D i ) is the bandwidth ratio of the read host of disk i configured by the software; Di_En is used to identify whether disk i is enumerated and enabled; Di_Run_Rd_En is used to identify whether disk i has a read request to be scheduled in the flow control buffer; N represents the total number of all enumerated disks.
[0017] In an optional implementation manner, the balanced scheduling arbitration of the read and write requests of each disk based on the relative proportional relationship information between the physical topology information and the bandwidth performance of each disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, further includes:
[0018] When the disk writes data to the host channel, the following bandwidth scheduling and allocation strategy is used:
[0019]
[0020] Where: D i The disk i connected to the HBA IOC; UP_BW_Wr(D i ) is the bandwidth allocated by disk i to write to the host through the uplink PCIe; UP_BW_Wr_All is the theoretical total bandwidth of the uplink PCIe write to the host; BWCfg_Wr(D i ) is the bandwidth ratio of the write host of disk i configured by the software; Di_En is used to identify whether disk i is enumerated and enabled; Di_Run_Wr_En is used to identify whether disk i has write requests and write data to be scheduled in the flow control buffer, and N represents the total number of all enumerated disks.
[0021] According to a second aspect of the present application, a performance balancing scheduling device for HBA IOC is provided, comprising:
[0022] The disk topology and performance configuration information storage unit is used to receive the physical topology information and bandwidth performance relative ratio relationship information of each disk pre-configured by the software in the enumeration stage;
[0023] The flow control buffer cluster is used to store the disk's read and write requests and related data in the read and write request buffer corresponding to the disk when the disk initiates data read and write access to the host, and to count the read and write request data volume monitoring information in the read and write buffer corresponding to each disk;
[0024] The scheduling arbitrator is used to balance the read and write requests of each disk based on the relative proportional relationship between the physical topology information and bandwidth performance of each disk, as well as the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, and send the read and write requests of the disk to the host according to the scheduling arbitration result.
[0025] A third aspect of the present application provides an electronic device, including a processor and a memory, wherein the memory stores a plurality of instructions, and the processor is used to read the instructions and execute the method of the first aspect.
[0026] A fourth aspect of the present application provides a computer-readable storage medium, which stores a plurality of instructions, and the plurality of instructions can be read by a processor to execute the method of the first aspect.
[0027] Compared with the related art, the technical solution of this application has the following advantages:
[0028] Considering both the physical topology of the connected disks and the actual dynamic working topology, the system dynamically schedules the access host in accordance with the ratio of the read and write performance of each disk configured by the software in the system enumeration phase and the amount of data requested by the actual read and write hosts of each disk, so that the actual dynamic working disks can always compete for the read and write bandwidth of the host interface with a relatively balanced bandwidth ratio, solving the problem of potential performance imbalance between disks leading to reduced performance of the entire storage system when the actual dynamic working topology and physical topology of the disk connected to the HBA IOC are inconsistent, thereby improving the performance of the entire system. In addition, in the scenario where the host interface releases the back pressure on the disk, when the bandwidth of the host interface is greater than or equal to the sum of the bandwidths of the actual working disks to be scheduled for arbitration, the access requests of the read and write hosts previously accumulated in the buffer to be scheduled for arbitration are transmitted from the host interface at a bandwidth greater than or equal to the access request bandwidth of the disk, thereby improving the utilization efficiency of the host interface.
[0029] Other features and advantages of the present application will be described in the following description, and partly become apparent from the description, or be understood by practicing the present application. The purpose and other advantages of the present application can be realized and obtained through the structures and processes indicated in the description and the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related technologies, the drawings required for use in the embodiments or the related technical descriptions are briefly introduced below. It is obvious that the drawings described below are certain embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0031] Figure 1 This is a typical connection architecture diagram of HBA IOC according to the related technology.
[0032] Figure 2 It is a schematic diagram of an implementation method of an HBA IOC scheduling strategy according to related technologies.
[0033] Figure 3 is a flow chart of a performance balancing scheduling method for HBA IOC according to an exemplary embodiment of the present application.
[0034] Figure 4 Schematic diagram of HBA IOC connection architecture according to an exemplary embodiment of the present application.
[0035] Figure 5 FIG. 4 is a flow chart of HBA IOC performance balancing scheduling according to an exemplary embodiment of the present application. DETAILED DESCRIPTION
[0036] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0037] The method provided in the present application can be implemented in the following terminal environment, and the terminal may include one or more of the following components: a processor, a memory, and a display screen. The memory stores at least one instruction, and the instruction is loaded and executed by the processor to implement the method described in the following embodiments.
[0038] The processor may include one or more processing cores. The processor uses various interfaces and lines to connect various parts of the entire terminal, and executes various functions of the terminal and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory, and calling data stored in the memory.
[0039] The memory may include random access memory (RAM) or read-only memory (ROM). The memory may be used to store instructions, programs, codes, code sets or instructions.
[0040] The display screen is used to display the user interface of each application.
[0041] In addition, those skilled in the art can understand that the structure of the above terminal does not constitute a limitation on the terminal, and the terminal may include more or fewer components, or combine certain components, or arrange the components differently. For example, the terminal also includes components such as a radio frequency circuit, an input unit, a sensor, an audio circuit, and a power supply, which will not be described in detail here.
[0042] In the related art, the scheduling method used by HBA IOC when the disk accesses the host is a quasi-static scheduling scheme. When the system is enumerated or the disk topology changes, the scheduling arbitration strategy between the disks is set by considering the performance balance ratio between the disks. In the actual system operation, since the business scenarios of the host operation often change dynamically, the I / O sent to the disk will also change dynamically, resulting in differences between the topology of the actual working disk and the physical topology of the disk. However, since the scheduling strategy does not change dynamically in time according to the topology changes of the actual running disk, the HBA IOC cannot achieve balanced scheduling in a large number of actual working scenarios, which ultimately leads to a reduction in the performance of the entire storage system.
[0043] Figure 2 This is a conceptual diagram of a possible implementation of the above scheduling strategy. In order to facilitate the description of the potential problems of the above scheduling strategy, it is assumed that: SERDES CTRL0, SERDES CTRL1, SERDES CTRL M-1 、SERDES CTRL M The topology and performance of the connected disks are the same, and the data paths R0, R1, R M-1 , R M Same extreme performance, data path R J , R K , R U Same extreme performance, data paths R0 / R1 / R M-1 / R M The ultimate performance is R J / R K / R U To achieve half of the limit performance, based on the physical topology of the connected disks, configure the weighted round-robin (RR) arbitrator A1_0 (WRR Arbitor) to arbitrate the bandwidth between R0 and R1 to the RJ path in a 1:1 R.R ratio, and arbitrator A1_L to RM-1 and R M Bandwidth 1:1 R.R arbitration to R K Path, arbiter A2_0 will be connected to R K Bandwidth 1:1 RR arbitration to R U path. HBA IOC SERDES CTRL0, SERDES CTRL1, SERDE s CTRL M-1 and SERDES CTRL M The connected disk communicates with the host concurrently, SERDES CTRL0, SERDES CTRL1, SERDES CTRL M-1 、SERDES CTRL M The bandwidth requirement for the host is R0 / R1 / R M-1 / R M , communicate with the host at the maximum bandwidth speed.
[0044] when Figure 2 When the HBA IOC in the example works according to the above hypothetical scenario, the arbitration scheduling configuration policy of the total arbiter ARB0 in the HBA IOC can ensure that SERDES CTRL0, SERDES CTRL1, and SERDES CTRL M-1 and SERDES CTR M The bandwidth resources allocated through arbitration scheduling are all 1 / 4 of the host bandwidth (that is, the maximum bandwidth of the RU), and the balance of the disks connected to each SERDES CTRL is guaranteed by the SERDES CTRL itself.
[0045] However, when the actual working topology is inconsistent with the physical topology, unbalanced scheduling may occur. Figure 2 In this example, assume that SERDES CTRL M-1 The connected disk stops working, but SERDES CTRL0, SERDES CTRL1, and SERDES CTRL M The connected disks are still accessing the host concurrently at full speed. According to the above arbitration scheduling configuration, SERDESCTR0 and SERDES CTRL1 each obtain 1 / 4 of the host access bandwidth. M The host access bandwidth is 1 / 2, resulting in imbalanced arbitration scheduling. When the connected disk is used as a disk group, the performance will be significantly reduced.
[0046] Based on the above analysis, the present application proposes a performance balanced scheduling method and device for HBA IOC, which considers both the physical topology of the connected disk and the balanced scheduling of the actual dynamic working topology. Based on the actual dynamic working topology of the disk connected to the HBA IOC, an arbitration scheduling strategy is dynamically scheduled according to the bandwidth ratio relationship of the read and write performance of each disk configured by the software in the system enumeration phase to access the host, so as to maintain the actual working disks to compete for the read and write bandwidth of the host interface with a relative bandwidth balanced ratio relationship; in addition, after the back pressure of the interface between the host and the HBA IOC on the data access of the disk is released, the bandwidth of the host interface is greater than or equal to the sum of the bandwidths of the actual working disks to be arbitrated and scheduled, and the access of the read and write host previously accumulated in the buffer to be arbitrated and scheduled is transmitted from the host interface with a bandwidth greater than or equal to the access request bandwidth of the disk, thereby improving the utilization efficiency of the host interface.
[0047] See also Figure 3 The performance balancing scheduling method for HBA IOC provided in the present application includes:
[0048] Step 301: receiving the physical topology information and bandwidth performance relative ratio relationship information of each disk pre-configured by the software in the enumeration phase.
[0049] The architectural concept of the implementation scheme of this application is shown as follows Figure 4 As shown. The lower SERDES controller DS_i connected to the disk is used to realize the mutual conversion between the underlying high-speed serial physical interface protocol and the parallel bus interface protocol in the chip. The disk topology and performance configuration information storage unit TPCFG0 is used to store the enumerated physical topology configuration information of the disks connected to the HBA IOC and the relative proportion relationship information of the bandwidth performance of each disk.
[0050] Exemplarily, the workflow concept of the performance balancing scheduling method for HBA IOC is as follows: Figure 5 As shown. In step S0, the process starts. In step S1, the system enumeration initialization phase, the software writes the enumerated disk topology and the configuration information of the relative proportion of each disk performance into TPCFG0. This information is quasi-static and is used when ARB0 performs performance balancing scheduling arbitration on each disk access host.
[0051] Among them, for NVMe disks, the disk actively initiates access to the host; for SAS / SATA disks, the corresponding SERDES CTRL in the HBA IOC initiates access to the host, but it is logically equivalent to the disk initiating access to the host, so in this application, it is uniformly expressed as the disk initiating access to the host.
[0052] Step 302: When the disk initiates data read and write access to the host, the disk's read and write request and related data are stored in the read and write request buffer corresponding to the disk, and the read and write request data volume monitoring information in the read and write buffer corresponding to each disk is counted.
[0053] See also Figure 4 , the flow control buffer cluster (FCBC_i) is used to buffer the read request, write request and write data from the SERDES controller DS_i and the read response and write response from the response path dispatcher DP0. The response path dispatcher DP0 receives the response from the upper connected PCIe (UP0) and dispatches it to the corresponding read and write response buffer.
[0054] Figure 4 The internal structure of FCBC_i is further shown. The read request buffer pool RRQBP_i in FCBC_i is used to buffer the SERDES CTRL i For read requests initiated by the host, each disk has a corresponding read request buffer in the read request buffer pool. The write request and write data buffer pool WDBP_i in FCBC_i are used to buffer the SERDES CTRL i For write requests and write data initiated by the host, each disk has a corresponding write request / write data buffer in the write request / write data buffer pool.
[0055] For example, in Figure 5 In step S2, the disk executes the read and write commands issued by the host to the disk, initiates data read and write access to the host, and sends the read request through SERDES CTRL i Bus interface SBI for communication with FCBC_i i Store to RRQBP i The corresponding buffer in the SBI writes the write request / write data i Save to WDBP i FCBC_i feeds back the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk to the arbitrator ARB0. This monitoring information reflects the actual working status of each disk and is used by ARB0 to perform performance balancing scheduling arbitration on the requests of each disk to access the host.
[0056] Step 303: Based on the relative proportional relationship information between the physical topology information and bandwidth performance of each disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, the read and write requests of each disk are balanced and scheduled and arbitrated, and the read and write requests of the disk are sent to the host according to the scheduling and arbitration results.
[0057] Figure 4In the present invention, the scheduling arbitrator ARB0 is used for scheduling and arbitrating the read and write paths of the disk access host. It receives the physical topology information configured by the software in the system enumeration phase, the relative proportional relationship information of the bandwidth performance of each disk, and the request data volume monitoring information of the read request and write request / write data path provided by the flow control cluster (FCBC_0, ... FCBC_M). According to the bandwidth scheduling allocation strategy formula defined in this application, the read and write host access (including read request and write request / write data buffer access request) corresponding to each disk is balanced and scheduled and arbitrated, thereby realizing the flow control balance when each disk connected to the HBA IOC accesses the host, and finally realizing the optimal performance of the storage system.
[0058] The upper PCIe controller UP0 is used for communication between the host and HBA IOC. i For disk and DS_i (SERDES CTRL i ) physical interface for communication. i It is the monitoring information of the data volume carried by the read and write request in the read and write request buffer provided by FCBC_i to ARB0.
[0059] ABDI0 is used by ARB0 to read the read request and write request / write data of the corresponding disk from FCBC_i according to the result of arbitration scheduling. DBRI i Dispatches read and write responses for DP0 to the corresponding buffers in FCBC_i. CFGI0 is the physical topology of the enumerated disks and the configuration information of the relative bandwidth performance ratio of each disk. APDI0 is the bus path for read requests and write requests / write data to the upper PCIe after balanced flow control scheduling arbitration. APRI0 is the bus path for read and write responses returned by the upper PCIe. PHI0 is the physical interface between the host and the upper PCIe.
[0060] exist Figure 5 In step S3, ARB0 uses the physical topology and performance configuration information of the disks actually enumerated in step S1 and the actual performance monitoring information of the read and write request access data volume described in step S2 to schedule each disk in RRQBP according to the balanced scheduling formula. i and WDBP i It performs balanced scheduling and arbitration on the read and write requests accessed by the host, and sends the data read requests and write requests / write data after scheduling and arbitration to the upper connected PCIe UP0 through APDI0.
[0061] In a preferred embodiment, the bandwidth scheduling and allocation strategy for the disk to read data from the host is expressed by the following formula:
[0062]
[0063] The bandwidth allocation strategy for the path from disk writing data to the host is expressed as follows:
[0064]
[0065] Where: D i is the disk i connected to the HBA IOC; UP_BW_Rd(Di) is the host read bandwidth allocated by disk i through the uplink PCIe; UP_BW_Wr(D i ) is the bandwidth allocated by disk i through the uplink PCIe to write to the host; UP_BW_Rd_All is the theoretical total bandwidth of the uplink PCIe to read the host; UP_BW_Wr_All is the theoretical total bandwidth of the uplink PCIe to write to the host; BWCfg_Rd(D i ) is the bandwidth ratio of disk i to the host configured by the software. This configuration value is configured by the software based on the actual enumeration of the physical topology of the disk connected to the HBA IOC; BWCfg_Wr(D i ) is the bandwidth ratio of disk i to the host configured by the software. This configuration value is configured by the software according to the actual enumeration of the physical topology of the disk connected to the HBA IOC; Di_En is used to identify whether disk i is enumerated and enabled, where Di_En=1'b1 indicates that the disk has been enumerated and enabled; Di_En=1'b0 indicates that the disk has not been enumerated and enabled. This parameter indicates the actual physical topology of the disk connected to the HBA IOC, which is configured by the software according to D i Di_Run_Rd_En is used to identify whether there is a read request to be scheduled in the flow control buffer of disk i. This parameter is configured by hardware based on D i Di_Run_Wr_En is used to identify whether there are read data requests to be scheduled in the flow control buffer of disk i. This parameter is generated by the hardware according to D i It is generated based on whether there are actually write requests and write data to be scheduled for arbitration, where Di_Run_Rd_En=1'b1 indicates that there are write requests and write data to be scheduled for arbitration, otherwise they do not exist. N indicates the total number of all enumerated disks.
[0066] In step S4, the uplink PCIe UP0 sends the read request or write request / write data after balanced scheduling arbitration to the host.
[0067] The read response buffer pool RRDBP_i in FCBC_i is used to buffer the response path dispatcher DP0 dispatched to SERDES CTRL iEach disk has a corresponding read response buffer in the read response buffer pool. The write response buffer WRRB_i in FCBC_i is used to buffer the response channel dispatcher DP0 dispatches to SERDES CTRL i Since the write response does not carry data, all disks can share a buffer.
[0068] In step S5, the read and write response returned by the host is transmitted to the corresponding buffer in FCBC_i through UP0 and DP0, and finally reaches each related disk, completing the data read and write access operation of each disk to the host. In step S6, the process ends.
[0069] It can be seen that the performance balanced scheduling method for HBA IOC proposed in this application has the following advantages compared with the related technologies:
[0070] Considering both the physical topology of the connected disks and the actual dynamic working topology, the system dynamically schedules the access host in accordance with the ratio of the read and write performance of each disk configured by the software in the system enumeration phase and the amount of data requested by the actual read and write hosts of each disk, so that the actual dynamic working disks can always compete for the read and write bandwidth of the host interface with a relatively balanced bandwidth ratio, solving the problem of potential performance imbalance between disks leading to reduced performance of the entire storage system when the actual dynamic working topology and physical topology of the disk connected to the HBA IOC are inconsistent, thereby improving the performance of the entire system. In addition, in the scenario where the host interface releases the back pressure on the disk, when the bandwidth of the host interface is greater than or equal to the sum of the bandwidths of the actual working disks to be scheduled for arbitration, the access requests of the read and write hosts previously accumulated in the buffer to be scheduled for arbitration are transmitted from the host interface at a bandwidth greater than or equal to the access request bandwidth of the disk, thereby improving the utilization efficiency of the host interface.
[0071] Accordingly, the present application provides a performance balancing scheduling device for HBA IOC in a second aspect, including:
[0072] The disk topology and performance configuration information storage unit is used to receive the physical topology information and bandwidth performance relative ratio relationship information of each disk pre-configured by the software in the enumeration stage;
[0073] The flow control buffer cluster is used to store the disk's read and write requests and related data in the read and write request buffer corresponding to the disk when the disk initiates data read and write access to the host, and to count the read and write request data volume monitoring information in the read and write buffer corresponding to each disk;
[0074] The scheduling arbitrator is used to balance the read and write requests of each disk based on the relative proportional relationship between the physical topology information and bandwidth performance of each disk, as well as the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, and send the read and write requests of the disk to the host according to the scheduling arbitration result.
[0075] The above device can be implemented by the performance balancing scheduling method for HBA IOC provided by the embodiment of the first aspect. The specific implementation method can refer to the description in the embodiment of the first aspect, which will not be repeated here.
[0076] It is understood that the circuit structures, names and parameters described in the above embodiments are only examples. Those skilled in the art can also easily combine and adjust the structural features of the above embodiments according to the use requirements, and should not limit the concept of the present application to the specific details of the above examples.
[0077] The present application also provides an electronic device, including a processor and a memory, wherein the memory stores a plurality of instructions, and the processor is used to read the instructions and execute any one of the methods in the aforementioned first aspect. The processor and the memory may be connected via a bus or in other ways, taking the bus connection as an example. The processor may be a central processing unit (CPU). The processor may also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components and other chips, or a combination of the above-mentioned various types of chips.
[0078] As a non-transitory computer-readable storage medium, the memory can be used to store non-transitory software programs, non-transitory computer executable programs and modules, such as program instructions / modules corresponding to the method in the embodiment of the present application. The processor executes various functional applications and data processing of the processor by running the non-transitory software programs, instructions and modules stored in the memory, that is, implementing the method in the above method embodiment.
[0079] The memory may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created by the processor, etc. In addition, the memory may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some embodiments, the memory may optionally include a memory remotely arranged relative to the processor, and these remote memories may be connected to the processor via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0080] The present application also provides an electronic device, comprising a processor and a memory connected to the processor, wherein the memory stores a plurality of instructions, and the instructions can be loaded and executed by the processor, so that the processor can perform any one of the methods in the first aspect described above. The computer-readable storage medium can be a tangible storage medium, such as a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a floppy disk, a hard disk, a removable storage disk, a CD-ROM, or any other form of storage medium known in the technical field.
[0081] Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that he or she may still modify the technical solutions described in the aforementioned embodiments, or make equivalent substitutions for some of the technical features therein; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application.
Claims
1. A performance balancing scheduling method for HBA IOC, characterized in that: include: Receive the physical topology information and bandwidth performance relative ratio relationship information of each disk pre-configured by the software during the enumeration phase; When the disk initiates data read and write access to the host, the disk's read and write request and related data are stored in the read and write request buffer corresponding to the disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk is counted; Based on the relative proportional relationship between the physical topology information and bandwidth performance of each disk, as well as the monitoring information of the read and write request data volume in the read and write buffers corresponding to each disk, the read and write requests of each disk are balanced and scheduled and arbitrated, and the read and write requests of the disk are sent to the host according to the scheduling and arbitration results.
2. The performance balancing scheduling method for HBA IOC according to claim 1, characterized in that: The storing of the read / write request and related data of the disk in the read / write request buffer corresponding to the disk, and counting the monitoring information of the amount of read / write request data in the read / write buffer corresponding to each disk, further comprises: The disk's read requests are stored in the read request buffer in the flow control buffer cluster through the SERDES controller, the disk's write requests and write data are stored in the write request buffer in the flow control buffer cluster, and the monitoring information of the read request data volume and write request data volume in the read request buffer and write request buffer corresponding to each disk is fed back to the scheduling arbitrator in the IOC.
3. The performance balancing scheduling method for HBA IOC according to claim 1, characterized in that: The step of sending the read and write request of the disk to the host further comprises: The read response or write response returned by the host is transmitted to the read and write response buffer corresponding to the disk through the response path dispatcher, and finally reaches each disk, completing the disk's data read and write access operation to the host.
4. The performance balancing scheduling method for HBA IOC according to claim 1, characterized in that: The method of performing balanced scheduling and arbitration on the read and write requests of each disk based on the relative proportional relationship information between the physical topology information and the bandwidth performance of each disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, further includes: The following bandwidth scheduling allocation strategy is used when the disk reads data from the host: Where: D i is the disk i connected to the HBA IOC; UP_BW_Rd(Di) is the bandwidth allocated by disk i to read the host through the upper PCIe; UP_BW_Rd_All is the theoretical total bandwidth of the upper PCIe reading host; BWCfg_Rd(D i ) is the bandwidth ratio of the read host of disk i configured by the software; Di_En is used to identify whether disk i is enumerated and enabled; Di_Run_Rd_En is used to identify whether disk i has a read request to be scheduled in the flow control buffer; N represents the total number of all enumerated disks.
5. The performance balanced scheduling method for HBAIOC according to claim 1, characterized in that: The method of performing balanced scheduling and arbitration on the read and write requests of each disk based on the relative proportional relationship information between the physical topology information and the bandwidth performance of each disk, and the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, further includes: When the disk writes data to the host channel, the following bandwidth scheduling and allocation strategy is used: Where: D i The disk i connected to the HBA IOC; UP_BW_Wr(D i ) is the bandwidth allocated by disk i to write to the host through the uplink PCIe; UP_BW_Wr_All is the theoretical total bandwidth of the uplink PCIe write to the host; BWCfg_Wr (D i ) is the bandwidth ratio of the write host of disk i configured by the software; Di_En is used to identify whether disk i is enumerated and enabled; Di_Run_Wr_En is used to identify whether disk i has write requests and write data to be scheduled in the flow control buffer, and N represents the total number of all enumerated disks.
6. A performance balancing scheduling device for HBAIOC, characterized in that: include: The disk topology and performance configuration information storage unit is used to receive the physical topology information and bandwidth performance relative ratio relationship information of each disk pre-configured by the software in the enumeration stage; The flow control buffer cluster is used to store the disk's read and write requests and related data in the read and write request buffer corresponding to the disk when the disk initiates data read and write access to the host, and to count the read and write request data volume monitoring information in the read and write buffer corresponding to each disk; The scheduling arbitrator is used to balance the read and write requests of each disk based on the relative proportional relationship between the physical topology information and bandwidth performance of each disk, as well as the monitoring information of the read and write request data volume in the read and write buffer corresponding to each disk, and send the read and write requests of the disk to the host according to the scheduling arbitration result.
7. The performance balancing scheduling device for HBAIOC according to claim 6, characterized in that: The flow control buffer cluster is further used for: The disk's read requests are stored in the read request buffer in the flow control buffer cluster through the SERDES controller, the disk's write requests and write data are stored in the write request buffer in the flow control buffer cluster, and the monitoring information of the read request data volume and write request data volume in the read request buffer and write request buffer corresponding to each disk is fed back to the scheduling arbitrator in the IOC.
8. The performance balancing scheduling device for HBAIOC according to claim 6, characterized in that: The scheduling arbitrator is further used for: The read response or write response returned by the host is transmitted to the read and write response buffer corresponding to the disk through the response path dispatcher, and finally reaches each disk, completing the disk's data read and write access operation to the host.
9. The performance balancing scheduling device for HBAIOC according to claim 6, characterized in that: The scheduling arbitrator is further used for: The following bandwidth scheduling allocation strategy is used when the disk reads data from the host: Where: D i is the disk i connected to the HBA IOC; UP_BW_Rd(Di) is the bandwidth allocated by disk i to read the host through the upper PCIe; UP_BW_Rd_All is the theoretical total bandwidth of the upper PCIe reading host: BWCfg_Rd(D i ) is the bandwidth ratio of the read host of disk i configured by the software; Di_En is used to identify whether disk i is enumerated and enabled; Di_Run_Rd_En is used to identify whether disk i has a read request to be scheduled in the flow control buffer; N represents the total number of all enumerated disks.
10. The performance balancing scheduling device for HBA IOC according to claim 6, characterized in that: The scheduling arbitrator is further used for: When the disk writes data to the host channel, the following bandwidth scheduling and allocation strategy is used: Where: D i The disk i connected to the HBA IOC; UP_BW_Wr(D i ) is the bandwidth allocated by disk i to write to the host through the uplink PCIe; UP_BW_Wr_All is the theoretical total bandwidth of the uplink PCIe write to the host; BWCfg_Wr(D i ) is the bandwidth ratio of the write host of disk i configured by the software; Di_En is used to identify whether disk i is enumerated and enabled; Di_Run_Wr_En is used to identify whether disk i has write requests and write data to be scheduled in the flow control buffer, and N represents the total number of all enumerated disks.
11. An electronic device, characterized in that: It comprises a processor and a memory, wherein the memory stores a plurality of instructions, and the processor is used to read the instructions and execute the performance balanced scheduling method for HBAIOC according to any one of claims 1 to 5.
12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a plurality of instructions, and the plurality of instructions can be read by a processor and executed by the performance balanced scheduling method for HBAIOC as described in any one of claims 1 to 5.
Citation Information
Patent Citations
Virtual disk IO port scheduling method and scheduling device
CN104111800A
Read-write cache optimization method and system based on storage pool, terminal and storage medium
CN111338579A