Storage access method and storage system

By combining multi-level nodes and cache queues in the scheduling method, the priority of operation requests and service traffic are dynamically adjusted, which solves the problem of granular scheduling in multi-level storage array systems and achieves efficient resource utilization and fast response.

WO2026026745A1PCT designated stage Publication Date: 2026-02-05HANGZHOU FEISHU TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/111058
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-31
Filing Date
2025-07-29
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

Existing single-level scheduling algorithms cannot achieve fine-grained command scheduling in multi-level storage array systems, resulting in the inability to meet QoS guarantees for different storage service characteristics.

Method used

By combining multi-level nodes and cache queues, the scheduling order is dynamically adjusted according to the priority of operation requests and service traffic. Multi-level scheduling and token bucket scheduling algorithms are used to optimize resource utilization, and a timeout mechanism is set to handle timeout requests.

Benefits of technology

It enables fine-grained scheduling of multi-level operation requests, avoids excessive resource consumption, improves scheduling efficiency and system response speed, and enhances system robustness and reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025111058_05022026_PF_FP_ABST
    Figure CN2025111058_05022026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to the field of storage. Disclosed are a storage access method and a storage system. The method comprises: acquiring a plurality of operation requests sent by a plurality of hosts, transmitting the operation requests to a storage array by means of multiple levels of nodes, and executing the operation requests; for a child node, on the basis of the priority of each operation request, determining the scheduling order of the current child node when sending, receiving and / or responding to the plurality of operation requests; and determining a new priority of each operation request on the basis of the service traffic of the current child node and the original priority of each operation request. The present disclosure realizes multi-level scheduling of operation requests, which are transmitted at a plurality of levels, based on different level dimensions at different nodes, and can effectively process a plurality of operation requests transmitted at a plurality of levels and avoid excessive occupation of resources; in addition, the priority of each operation request can be transmitted among different nodes, improving the scheduling efficiency of the scheduling operation request at each node, and reducing the scheduling time consumption.
Need to check novelty before this filing date? Find Prior Art

Description

Storage access method and storage system

[0001] Cross-reference to related applications

[0002] The present disclosure claims priority to the Chinese patent application No. 2024110441150, filed on July 31, 2024, entitled "Storage access method and storage system", the entire content of which is incorporated herein by reference. TECHNICAL FIELD

[0003] The present disclosure relates to the field of storage, and in particular, to a storage access method and a storage system. BACKGROUND

[0004] At present, storage arrays have become important storage devices in the current digital economic infrastructure construction and are increasingly used. Generally, in a storage array system, multiple hosts can access the storage array through different controllers, and each controller can receive multiple operation commands from multiple hosts, multiple network interfaces, and multiple queues at the same time. Therefore, to ensure effective processing of each operation command in the processing resources of the controller and avoid excessive occupation of resources, it is necessary to reasonably schedule each received operation command.

[0005] The commonly used scheduling method is to perform single-layer scheduling on the cache queues configured to store each operation command in the controller based on weights. However, for a storage array system with multiple levels of command transmission, the existing single-layer scheduling algorithm is very rough and cannot achieve scheduling in different levels, thereby leading to that the command scheduling cannot be controlled and processed in detail, and thus the QoS (Quality of Service) guarantee of different storage service characteristics cannot be met.

[0006] SUMMARY

[0007] The present disclosure provides a storage access method applied to a storage system, the storage system comprising multiple levels of nodes and a storage array, wherein each level of node comprises multiple sub-nodes, and each sub-node is communicatively connected to each sub-node of the upper level node.

[0008] A plurality of operation requests sent by a plurality of hosts are obtained, transmitted to the storage array through the multiple levels of nodes, and executed; wherein,

[0009] For a sub-node, the scheduling order of the current sub-node in sending, receiving, and / or responding to the plurality of operation requests is determined according to the priority of each operation request; and,

[0010] The new priority of each operation request is determined based on the service traffic of the current sub-node and the original priority of each operation request; wherein,

[0011] if the service flow of the current sub-node is less than a preset threshold, then the original priority of each operation request is decreased by one level to determine a new priority;

[0012] if the service flow of the current sub-node is greater than or equal to a preset threshold, then the original priority of each operation request is determined as a new priority.

[0013] In an optional embodiment, the determining of the scheduling order of the current node in sending, receiving and / or responding to the plurality of operation requests according to the priority of each operation request comprises:

[0014] adding each received operation request to a corresponding cache queue according to the superior sub-node to which the operation request belongs;

[0015] polling each cache queue and obtaining the priority of each operation request in each cache queue;

[0016] determining the scheduling order of the plurality of operation requests in each cache queue according to the priority.

[0017] In an optional embodiment, the determining of the scheduling order of the plurality of operation requests in each cache queue according to the priority comprises:

[0018] different priorities correspond to different idle times, wherein the idle time corresponding to the priority increases as the priority decreases;

[0019] judging whether the corresponding idle time is met according to the priority of the head operation request in each cache queue;

[0020] if yes, then taking out the head operation request in the corresponding cache queue.

[0021] In an optional embodiment, before the adding of each received operation request to a corresponding cache queue according to the superior sub-node to which the operation request belongs, further comprising:

[0022] determining the number of received operation requests according to the service flow of the current sub-node; and,

[0023] the service flow decreases as the number of received operation requests increases;

[0024] if the service flow of the current sub-node is 0, then the operation request is no longer received.

[0025] In an optional embodiment, comprising: the service flow of the current sub-node increases at a preset rate until reaching a maximum service flow.

[0026] In an optional embodiment, after the current sub-node no longer receives the operation request when the service traffic of the current sub-node is 0, the method further comprises:

[0027] According to the time when each operation request reaches the current sub-node and the time when the current sub-node receives the operation request, the waiting time of each operation request is calculated.

[0028] If the waiting time exceeds a preset time, a timeout process is performed on the corresponding operation request.

[0029] In an optional embodiment, the multi-level nodes comprise at least a receiving node and a control node.

[0030] The receiving node obtains the operation request of the host.

[0031] The control node executes the operation request in sequence according to the scheduling sequence to access the storage array.

[0032] The present disclosure also provides a storage system comprising multi-level nodes and a storage array, wherein each level of nodes comprises a plurality of sub-nodes, each sub-node is in communication connection with each sub-node of the upper level node, and the storage system is configured to perform the storage access method as described above.

[0033] The present disclosure has the following steps:

[0034] The present disclosure provides a storage access method applied to a storage system, which comprises: obtaining a plurality of operation requests sent by a plurality of hosts, transmitting the operation requests to a storage array through multi-level nodes, and executing the operation requests; wherein for a sub-node, a scheduling sequence of the current sub-node when sending, receiving and / or responding to the plurality of operation requests is determined according to the priority of each operation request; and the priority of the operation request is re-determined based on the current sub-node. The present disclosure realizes multi-level scheduling of the multi-level delivered operation requests according to different hierarchical dimensions in different nodes, can effectively process the plurality of multi-level delivered operation requests, avoids excessive occupation of resources, and the priority of each operation request can be transmitted between different nodes, thereby improving the scheduling efficiency of scheduling operation requests of each node and reducing the scheduling consumption time. BRIEF DESCRIPTION OF DRAWINGS

[0035] In order to more clearly illustrate the technical solutions of the present disclosure, the following will briefly introduce the drawings needed to be used in the embodiments. It should be understood that the following drawings only show some embodiments of the present disclosure, and therefore should not be regarded as a limitation on the protection scope of the present disclosure. In each drawing, similar components are denoted by similar reference numerals.

[0036] FIG. 1 shows a first flowchart of a storage access method in an embodiment of the present disclosure;

[0037] FIG. 2 shows a structural schematic diagram of a storage system in an embodiment of the present disclosure;

[0038] FIG. 3 shows a second flow schematic diagram of a storage access method in an embodiment of the present disclosure;

[0039] FIG. 4 shows a principle schematic diagram of setting a leaky bucket at a node for scheduling in an embodiment of the present disclosure;

[0040] FIG. 5 shows a first process schematic diagram of scheduling an operation request at a controller node in an embodiment of the present disclosure;

[0041] FIG. 6 shows a first polling process schematic diagram of scheduling an operation request at a controller node in an embodiment of the present disclosure;

[0042] FIG. 7 shows a second polling process schematic diagram of scheduling an operation request at a controller node in an embodiment of the present disclosure;

[0043] FIG. 8 shows a third polling process schematic diagram of scheduling an operation request at a controller node in an embodiment of the present disclosure;

[0044] FIG. 9 shows a process schematic diagram of scheduling an operation request at a central processor node in an embodiment of the present disclosure. DETAILED DESCRIPTION

[0045] The technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all the embodiments of the present disclosure.

[0046] The components of the embodiments of the present disclosure generally described and illustrated in the accompanying drawings herein can be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of the present disclosure provided in the accompanying drawings is not intended to limit the scope of the claimed present disclosure, but merely represents selected embodiments of the present disclosure. All other embodiments obtained by those skilled in the art based on the embodiments of the present disclosure without creative work are within the scope of protection of the present disclosure.

[0047] Hereinafter, the terms "include", "have", and their conjugates used in various embodiments of the present disclosure are only intended to denote a certain characteristic, number, step, operation, element, component, or combination of the foregoing, and should not be construed as excluding the presence or addition of one or more other characteristics, numbers, steps, operations, elements, components, or combinations thereof.

[0048] In addition, the terms "first", "second", "third", and the like are used only to distinguish descriptions, and cannot be understood as indicating or implying relative importance.

[0049] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which various embodiments of the present disclosure belong. Terms such as those defined in generally used dictionaries will be interpreted as having the same meanings as in the context of the relevant art and will not be interpreted as having idealized or overly formal meanings, unless clearly defined in various embodiments of the present disclosure.

[0050] The present disclosure provides a storage access method, which can be applied to a storage system. By way of reference, the storage system includes multiple levels of nodes and a storage array, wherein each level of nodes includes multiple sub-nodes, and each sub-node is communicatively connected to each sub-node of the upper level node.

[0051] It can be understood that multiple hosts remotely access data stored in the storage array by issuing access operation requests to the storage array in the storage system, wherein each operation request is received by a receiving node in the storage system, and then transmitted to a corresponding control node through the multiple levels of nodes, and the operation request is processed by the control node to perform a read or write operation on the storage array.

[0052] Exemplarily, as shown in FIG. 1, when the storage system performs a storage access process, it can include the following steps:

[0053] S100, obtaining multiple operation requests sent by multiple hosts, transmitting to the storage array through the multiple levels of nodes and executing.

[0054] S200, for a sub-node, determining the scheduling order of the current sub-node in sending, receiving and / or responding to multiple operation requests according to the priority of each operation request.

[0055] It can be understood that multiple hosts send at least one operation request to the storage system, and then multiple operation requests are transmitted to the storage system through the network, and each operation request is processed by the multiple levels of nodes inside the storage system, and then each operation request is executed in turn by the control node in the multiple levels of nodes according to the scheduling order to access the storage array.

[0056] Among them, the multiple levels of nodes at least include a receiving node and a control node; the receiving node includes a link port and the like, and the control node includes a controller and a central processing unit and the like. Optionally, the receiving node obtains the operation request of the host; the control node executes the operation request in turn according to the scheduling order to access the storage array.

[0057] In an example, different nodes in the storage system can be divided into link ports, controllers, central processors, and the like receiving nodes and control nodes; wherein different hosts can access the storage array through any sub-node in the control nodes such as different controllers or central processors to perform read or write operations on the storage array.

[0058] For example, as shown in FIG. 2, the nodes of the storage system include link ports, controllers, central processors, and the like in turn; wherein each sub-node in the link port node is any one port therein, each sub-node in the controller node is any one controller therein, and the like.

[0059] Optionally, host 1 can access the storage array through controller 1 and controller 2, host 2 can access the storage array through controller 3, and host a can access the storage array through controller c.

[0060] It can be understood that taking the control nodes as controllers for example, multiple operation requests are issued by the hosts, each operation request enters the controller through each link port, and the controller parses and processes the operation request and completes the read or write operation on the storage array according to the operation request. Wherein each controller only receives an operation request sent by a corresponding host, and each host can send operation requests to multiple controllers.

[0061] Optionally, in the process of passing through multiple levels of nodes, each node corresponding sub-node schedules the received operation request according to the priority to reasonably utilize the processing resources of each node. Further, as shown in FIG. 3, the above S200 can specifically include the following steps:

[0062] S210, each operation request received is added to the corresponding cache queue according to the upper level sub-node.

[0063] S220, each cache queue is polled and the priority of each operation request in each cache queue is obtained.

[0064] S230, the scheduling order of the multiple operation requests in each cache queue is determined according to the priority.

[0065] For reference, in the process of receiving operation requests from each sub-node in the upper level node by each sub-node in each node, multiple cache queues can be set at the current sub-node to add each received operation request to the corresponding cache queue. Subsequently, each sub-node can further realize cache queue-based scheduling according to each cache queue, so that the resources at each node can be reasonably allocated according to the scheduling result, and the operation request processing efficiency of the storage system can be improved. Wherein the number and setting rules of each cache queue can be set according to actual needs, and the present embodiment does not limit this.

[0066] In an example, the current child node can set the cache queue according to the number of upper child nodes transmitting the operation requests, so as to add the received operation requests to the corresponding cache queue according to the corresponding upper child node to which the operation request belongs. Alternatively, the cache queue can also be set according to the thread or priority of the operation request.

[0067] Alternatively, if multiple operation requests are added to the same cache queue at the same time, the corresponding condition can also be set to determine the order of adding the operation requests; wherein the condition can be the time stamp of receiving the operation request by the current child node or the priority of the operation request, and the specific setting can be determined according to actual needs, which is not limited by the embodiment.

[0068] In addition, in an embodiment, before adding the received operation requests to the corresponding cache queue, the embodiment can also determine the priority of each operation request at the current child node through the service flow of each child node, and then determine whether to receive the operation request and the order of receiving the operation request according to the priority of the operation request and the service flow; wherein the determination rule of the priority can be set according to actual needs, for example, the priority of the received operation request can be set to decrease in turn when the service flow decreases. This also means that the first-level or multi-level scheduling can also be realized based on different dimensions when each child node receives the operation requests.

[0069] For example, when the current child node starts to receive operation requests from different link ports, the number of received operation requests is determined according to the service flow of the current child node; wherein the service flow decreases with the number of received operation requests; if the service flow of the current child node is 0, the operation request is no longer received. Wherein the service flow of the current child node increases at a preset rate until the maximum service flow is reached, and the value of the preset rate can be set according to the needs.

[0070] It can be understood that the embodiment can plan the number and priority of received operation requests through the service flow at each child node, so as to fully utilize the processing resources of the current child node, reasonably schedule multiple operation requests, and ensure the service quality of the current child node.

[0071] Alternatively, in the process of the current child node issuing the operation requests to the next node or executing the operation requests, the scheduling order of the multiple operation requests in each cache queue can be determined by polling each cache queue and according to the priority of each operation request in the different cache queues.

[0072] Correspondingly, the number of times of round-robin for each priority can be set in advance. Then, when determining the scheduling order of the operation requests in each cache queue, it is judged in turn whether the priority of the head operation request in each cache queue meets the corresponding number of times of round-robin. If yes, the head operation request in the current cache queue is taken out. Otherwise, the current cache queue is round-robined, the number of times of round-robin of the current cache queue is recorded, and the next cache queue is jumped to. The number of times of round-robin corresponding to different priorities can be the same or different, which can be set according to requirements. For example, the number of times of round-robin corresponding to different priorities can be set to be different, wherein the number of times of round-robin corresponding to each priority increases with the decrease of the priority.

[0073] S300, determining new priorities of the operation requests based on the service traffic of the current child node and the original priorities of the operation requests.

[0074] When the plurality of operation requests in each cache queue are transmitted to the next child node in the determined scheduling order, the next child node can determine new priorities of the operation requests again, so that the next child node determines the receiving order according to the new priorities of the operation requests.

[0075] In an example, each child node can determine the new priority of the operation request based on the service traffic of the current child node and the original priority of the operation request, wherein the new priority of the operation request is less than or equal to the original priority of the operation request.

[0076] If the service traffic corresponding to the current child node when receiving the operation request is less than a preset threshold, the original priority of the operation request is decreased by one level to determine the new priority of the operation request. If the service traffic of the current child node is greater than or equal to the preset threshold, the original priority of the operation request is determined as the new priority of the operation request. The value of the preset threshold can be set according to actual requirements.

[0077] It can be understood that the priority of each operation request is transmitted between nodes in turn, and the priority of each operation request at each node is less than or equal to the priority at the previous node. That is, the priority of each operation request at each node is determined according to the processing resources of the current node whether to maintain or degrade.

[0078] Optionally, the current child node determines the scheduling order of sending or responding to the plurality of operation requests according to the new priorities of the operation requests.

[0079] In an example, the current node is taken as a controller and the previous node is taken as a link port to illustrate the operation request scheduling process at the controller node.

[0080] Each controller receives operation requests from different link ports, and performs first-level scheduling based on the link ports, in which each link port is regarded as a cache queue, and the order in which each controller receives operation requests from different link ports is determined through arbitration.

[0081] Each link port contains operation requests belonging to different cache queues (i.e., SQ queues), and each controller adds the received operation requests of each link port to the corresponding cache queue, and then each controller can perform second-level scheduling based on the cache queue to determine the order in which operation requests in each cache queue are issued through arbitration. The setting rule and number of the cache queue can be set according to actual needs, such as corresponding conditions according to threads or priorities of the operation requests.

[0082] It can be seen that each child node at the current node can implement two-level scheduling. Alternatively, if the next node is a central processor and there are multiple controllers accessing the same storage array in the storage system, then at the node of the central processor, third-level scheduling can be implemented based on different controllers to determine the order in which operation requests sent by each controller are executed at the current child node through arbitration.

[0083] Similarly, in the case where third-level scheduling is implemented at the node of the central processor, fourth-level, fifth-level and more levels of multi-level scheduling can also be implemented according to other dimensions, such as scheduling based on namespaces, scheduling based on PCIe ports, etc. That is, each cache queue of the central processor contains operation requests accessing different namespaces, and fourth-level scheduling can be implemented based on the namespaces. Multiple operation requests can access the storage array through the same PCIe port, and fifth-level scheduling can also be implemented based on the PCIe port.

[0084] Correspondingly, different levels of scheduling can be implemented according to different dimensions at different nodes, and the number of corresponding scheduling levels at each node can be the same or different.

[0085] In addition, the process in which the storage system performs the storage access method in the embodiment can also be explained in combination with the token bucket scheduling algorithm.

[0086] For example, as shown in FIG. 4, at each level of child node, a leaky bucket is set, and tokens are placed in each leaky bucket, and the number of tokens increases at a certain rate, which can be set according to actual needs.

[0087] Each operation request is in and out of the leaky bucket, wherein each operation request needs to take a token to pass through the leaky bucket, and the number of tokens in the leaky bucket is reduced by 1 each time an operation request flows out of the leaky bucket (i.e. the operation request passes through the leaky bucket). As can be seen, if the speed of the operation request to take tokens is greater than the speed of the token to increase in the leaky bucket, multiple operation requests will not be able to take tokens, at which time these operation requests will not be able to pass through the leaky bucket and need to wait for the number of tokens to increase to pass through or be processed according to the timeout mechanism after the operation request times out.

[0088] A water level line is designed for the number of tokens in the leaky bucket, and when the operation request passes through the leaky bucket, if the number of tokens in the leaky bucket at this time is above the water level line (including equal to the water level line), the priority of the operation request is marked as the first priority, and if the number of tokens is below the water level line, the priority is marked as the second priority, wherein the first priority is higher than the second priority.

[0089] For a multi-level leaky bucket (i.e. multi-level child node), the priority of the operation request after passing through the current level of the leaky bucket is not only set according to the water level line in the current level of the leaky bucket, but also depends on the priority of the operation request when passing through the upper level of the leaky bucket.

[0090] If the number of tokens in the current level of the leaky bucket is above the water level line (including equal to), the priority of the operation request is consistent with the priority when passing through the upper level of the leaky bucket (i.e. maintaining the priority when passing through the upper level of the leaky bucket). As shown in FIG. 5, the operation request C1 is of the first priority after passing through the upper level of the leaky bucket, and maintains the first priority after passing through the current level of the leaky bucket; the operation request C2 is of the second priority after passing through the upper level of the leaky bucket, and also maintains the second priority after passing through the current level of the leaky bucket.

[0091] If the number of tokens in the current level of the leaky bucket is below the water level line, the priority of the operation request passing through the current level of the leaky bucket is lowered by one level. For example, the operation request Ci is marked as the second priority after passing through the upper level of the leaky bucket, and is lowered by one level to the third priority after passing through the current level of the leaky bucket; the operation request Cn is of the third priority after passing through the upper level of the leaky bucket, and is marked as the fourth priority after passing through the current level of the leaky bucket.

[0092] By analogy, a multi-level leaky bucket is correspondingly set at different nodes, and thus the priority of the operation request passing through the leaky bucket can be set by the leaky bucket and the number of tokens set at each node when scheduling at each node.

[0093] In the scheduling of each level, the priority of the operation request is set by the leaky bucket, and then the scheduling can be completed according to the priority. The number of levels of the priority can be set according to actual needs, which is not limited in the present embodiment.

[0094] Optionally, each operation request is marked by different colors according to the priority set when passing through the multi-stage leaky bucket, for example, the first priority is marked by green, the second priority is marked by yellow, and the third priority is marked by orange, etc. The color marking corresponding to different priorities can be set according to actual needs, and the embodiment is not limited.

[0095] Optionally, during the scheduling process, all cache queues are polled, and all green-marked operation requests are taken out first, and if there is processing resource, yellow-marked operation requests are taken out, and so on. After one polling, the operation requests not taken out in each cache queue participate in the next polling. If the current processing resource is not enough, the number of times of rotation for each priority can be set, for example, the yellow-marked operation requests are rotated once, the orange-marked operation requests are rotated twice, and so on.

[0096] For example, if the number of operation requests that can be processed at the controller node at one time is 8, the green operation requests are taken out first, the yellow operation requests are rotated once, and the orange operation requests are rotated twice.

[0097] In the first polling, as shown in FIG. 6, each cache queue is polled in turn, and the green operation requests A1 and B1 are taken out from the queues corresponding to port 1 and port 2, the yellow operation request C1 in port 3 is rotated, and the green operation request D1 in port 4 is taken out. At this time, only 3 operation requests are taken out in the first polling, and there is still processing resource, so the polling continues.

[0098] As shown in FIG. 7, in the second polling, the green operation requests A2 and B2 are taken out from the queues corresponding to port 1 and port 2 in turn, the yellow operation request C1 in the queue corresponding to port 3 has been rotated once, so C1 is taken out in this polling, and the yellow operation request D2 in the queue corresponding to port 4 is rotated. At this time, the second polling ends, and a total of 6 operation requests are taken out, but the node still has processing resource, so the polling continues.

[0099] Similarly, as shown in FIG. 8, in the third polling, the yellow operation request A3 in the queue corresponding to port 1 is rotated, the green operation request B3 in the queue corresponding to port 2 is taken out, the orange operation request C2 in the queue corresponding to port 3 is rotated, and the yellow operation request D2 in the queue corresponding to port 4 has been rotated once, so D2 is taken out in this round.

[0100] If there is only one cache queue in one controller at the controller node, the scheduling at the next node is performed by the central processor based on the scheduling queues corresponding to different controllers.

[0101] Optionally, at the node of the central processor, it is first required to determine the priority (color) of each operation request after passing through the current level.

[0102] Exemplarily, if the current token quantity of the current sub-node is 6, the water level is 4, and no new token is generated during processing the operation request.

[0103] After passing through the current level leak bucket, as shown in FIG. 9, the operation requests A1, B1 and D1 sent by the controller 1 pass through the token quantity of 6, 5 and 4 respectively, and the token quantity is greater than or equal to the water level, so the operation requests A1, B1 and D1 maintain the color of the previous sub-node; the operation requests A2, B2 and C1 pass through the token quantity of 3, 2 and 1 respectively, and the token quantity is less than the water level, so the green operation requests A2 and B2 become yellow operation requests, and the yellow operation request C1 becomes an orange operation request; the operation requests B3 and D2 need to wait for token generation to pass through.

[0104] That is, when passing through the node of the central processor, the priority of each operation request is re-determined according to the processing resource at the node, wherein the priority of the operation requests A1, B1 and D1 is maintained, the priority of the operation requests A2, B2 and C1 is lowered, and the operation requests B3 and D2 do not pass through the node.

[0105] In addition, if there are multiple cache queues in a controller at the node of the controller, the controller will divide different operation requests into different cache queues when receiving the operation requests, and the next level scheduling can be implemented based on different cache queues in the same controller, wherein the scheduling process is the same as the foregoing scheduling, and thus is not described herein.

[0106] In an example, the embodiment further provides a timeout mechanism, and thus if the service flow of the current sub-node is 0, the timeout mechanism can be enabled to schedule the timeout request after no longer receiving the operation request.

[0107] Wherein, the waiting time of the operation request is calculated according to the time of the operation request reaching the current sub-node and the time of the current sub-node receiving the operation request; it is judged whether the waiting time exceeds the preset time, wherein if the waiting time exceeds the preset time, the timeout mechanism is enabled to perform timeout processing on the operation request. Wherein, the timeout processing process is to preferentially process the timeout request at each sub-node, that is, the timeout operation request is preferentially added to the corresponding cache queue of the current scheduling, so as to immediately schedule the timeout request by the current sub-node. The value of the preset time can be set according to actual needs, and the embodiment is not limited.

[0108] It can be understood that the time period of recording each operation request from reaching the current sub-node to the current sub-node receiving the operation request is recorded, if the time period exceeds the preset time, the operation request has not been received by the current sub-node, and the timeout mechanism is enabled for the operation request, so that the current sub-node processes the operation request preferentially, avoids the timeout request waiting at the current sub-node indefinitely, improves the response speed of the storage system to the operation request, and thus improves the robustness and reliability of the system.

[0109] In addition, the embodiment can also process the timeout request by returning an error to the host or canceling the operation.

[0110] In the embodiment, the operation requests of multi-level transmission are scheduled at different nodes according to different hierarchical dimensions, the multiple operation requests of multi-level transmission can be effectively processed, the excessive occupation of resources is avoided, the priority of each operation request can be transmitted between different nodes, the scheduling efficiency of each node scheduling operation requests is improved, and the scheduling consumption time is reduced; in addition, the timeout mechanism can be set in the embodiment, the phenomenon that the ready task is not scheduled for a long time can be avoided, and the system response speed and reliability are improved.

[0111] In several embodiments provided by the present disclosure, it should be understood that the disclosed system and method can also be implemented by other manners. The system embodiments described above are only schematic, for example, the flow charts and structural diagrams in the drawings show possible implementation architectures, functions and operations of the system, method and computer program product according to the embodiments of the present disclosure. In this regard, each block in the flow charts or structural diagrams can represent a module, a program segment or a part of code, which contains one or more executable instructions for implementing the specified logic function. It should also be noted that, in alternative implementation manners, the functions noted in the blocks can also occur in different orders from those noted in the drawings. For example, two consecutive blocks can actually be executed substantially in parallel, and sometimes they can also be executed in reverse order, depending on the functions involved. It should also be noted that each block in the structural diagram and / or flow chart, and the combination of blocks in the structural diagram and / or flow chart, can be implemented by a dedicated hardware-based system for executing the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.

[0112] In addition, each functional module or unit in the embodiments of the present disclosure can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0113] If the functions are implemented in the form of software function modules and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present disclosure can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for causing a computer device (which can be a smart phone, a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the various embodiments of the present disclosure.

[0114] The above merely illustrates the specific embodiments of the present disclosure, but the protection scope of the present disclosure is not limited thereto, and any person skilled in the art can easily think of changes or replacements within the technical scope disclosed by the present disclosure, which should be covered within the protection scope of the present disclosure. Industrial applicability

[0115] The embodiments of the present disclosure provide a storage access method and a storage system, which realize multi-level scheduling of operation requests of multi-level transmission according to different hierarchical dimensions at different nodes, can effectively process multiple operation requests of multi-level transmission, avoid excessive occupation of resources, and can transmit the priority of each operation request between different nodes, improve the scheduling efficiency of each node to schedule operation requests, and reduce the scheduling consumption time.

Claims

1. A storage access method, characterized in that, This is applied to a storage system comprising multi-level nodes and a storage array, wherein each level of node includes multiple child nodes, and each child node is communicatively connected to each child node of its parent level. Multiple operation requests sent by multiple hosts are acquired, transmitted through multiple levels of nodes to the storage array, and executed; among them, For a child node, the scheduling order of sending, receiving, and / or responding to multiple operation requests is determined according to the priority of each operation request; and, The new priority of each operation request is determined based on the service traffic of the current child node and the original priority of each operation request; wherein, If the service traffic of the current child node is less than a preset threshold, the original priority of each operation request will be reduced by one level and then determined as the new priority. If the service traffic of the current child node is greater than or equal to a preset threshold, then the original priority of each operation request will be determined as the new priority.

2. The storage access method according to claim 1, characterized in that, Determining the scheduling order of the current node when sending, receiving, and / or responding to multiple operation requests based on the priority of each operation request includes: Each received operation request is added to its corresponding cache queue according to its parent child node; Poll each of the cache queues and obtain the priority of each operation request in each cache queue; The scheduling order of multiple operation requests in each of the cache queues is determined based on the priority.

3. The storage access method according to claim 2, characterized in that, Determining the scheduling order of multiple operation requests in each of the cache queues based on the priority includes: The number of byes corresponds to different priorities, with the number of byes increasing as the priority decreases. Determine whether the corresponding number of skips is satisfied based on the priority of the operation request at the head of each cache queue; If so, retrieve the operation request at the head of the corresponding cache queue.

4. The storage access method according to claim 2, characterized in that, Before adding each received operation request to its corresponding cache queue according to its parent child node, the method further includes: The number of operation requests to be received is determined based on the service traffic of the current child node; and... The service traffic decreases as the number of operation requests received decreases. If the service traffic of the current child node is 0, then the operation request will no longer be received.

5. The storage access method according to claim 4, characterized in that, include: The service traffic of the current child node increases at a preset rate until it reaches the maximum service traffic.

6. The storage access method according to claim 4, characterized in that, After stating that if the service traffic of the current child node is 0, the operation request will no longer be received, the method further includes: The waiting time for each operation request is calculated based on the time when each operation request arrives at the current child node and the time when the current child node receives the corresponding operation request. If the waiting time exceeds the preset time, the corresponding operation request will be timed out.

7. The storage access method according to claim 1, characterized in that, The multi-level nodes include at least a receiving node and a control node; The receiving node obtains the operation request from the host; The control node executes the operation requests sequentially according to the scheduling order to access the storage array.

8. A storage system, characterized in that, The storage system includes multiple levels of nodes and a storage array, wherein each level of node includes multiple child nodes, each child node is communicatively connected to each child node of its parent level, and the storage system is configured to perform the storage access method as described in any one of claims 1-7.

Citation Information

Patent Citations

  • Method and system for calling service request

    CN103019859A

  • Priori knowledge-free Coflow multistage queue scheduling method and device and scheduling equipment thereof

    CN111966513A

  • Task scheduling method and system

    CN112069367A

  • Memory control scheduling method and device, computer equipment and storage medium

    CN115357377A

  • Storage access method and storage system

    CN119396542A