Storage access method and storage system

By adopting the multi-level node and storage array structure in the storage array system, multi-level scheduling is performed according to the priority of operation requests, the problem that single-layer scheduling algorithm in the existing technology cannot realize scheduling in different levels is achieved, and efficient Operation request processing and QoS guarantee.

CN119396542APending Publication Date: 2025-02-07HANGZHOU FEISHU TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411044115.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-07-31
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

In the existing storage array system, single-layer scheduling algorithm cannot realize scheduling in different levels of dimensions, resulting in the inability to fine-grained control of command scheduling and cannot meet the QoS guarantee of different storage service characteristics.

Method used

The storage system adopts multi-level nodes and storage arrays to obtain operation requests sent by multiple hosts through communication connections between child nodes of each level node, and determine the scheduling order according to the priority of operation requests, and redetermine the priority of operation requests. to realize multi-level scheduling of operation requests delivered by multi-level.

Benefits of technology

Effectively handle multiple operation requests delivered at multiple levels, avoid excessive resource usage, improve the scheduling efficiency of scheduling operation requests for each node, reduce scheduling consumption time, and meet the QoS guarantee of different storage service characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119396542A_ABST
    Figure CN119396542A_ABST
Patent Text Reader

Abstract

The invention relates to the field of storage, and discloses a storage access method and a storage system. The method comprises the following steps: acquiring 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 one sub-node, the scheduling sequence of the current sub-node when the current sub-node sends, receives and / or responds to the multiple operation requests is determined according to the priority of each operation request; and re-determining the priority of the operation request based on the current child node. According to the multi-level scheduling method and device, multi-level scheduling is carried out on the multi-level transmitted operation requests at different nodes according to different level dimensions, the multiple multi-level transmitted operation requests can be effectively processed, excessive occupation of resources is avoided, the priority of each operation request can be transmitted among different nodes, and the efficiency of the multi-level transmitted operation requests is improved. The scheduling efficiency of the scheduling operation request of each node is improved, and the scheduling consumed time is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of storage, and in particular to a storage access method and a storage system. Background Art

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

[0003] The commonly used scheduling method is to perform single-layer scheduling on the cache queues in the controller for storing various operation commands based on weights. However, for storage array systems with multi-level command transmission, the existing single-layer scheduling algorithm is very rough and cannot realize scheduling of different levels of dimensions, resulting in the inability to finely control and process command scheduling, and thus making it impossible to meet the QoS (Quality of Service) guarantee of different storage service characteristics. Summary of the invention

[0004] In a first aspect, the present application provides a storage access method, which is applied to a storage system, wherein the storage system includes a multi-level node and a storage array, wherein each level of the node includes a plurality of sub-nodes, and each of the sub-nodes is communicatively connected with each sub-node of the upper level node:

[0005] Acquire multiple operation requests sent by multiple hosts, transmit them to the storage array through multiple nodes and execute them;

[0006] For a child node, determining a scheduling order for the current child node when sending, receiving and / or responding to multiple operation requests according to the priority of each operation request; and,

[0007] The priority of each of the operation requests is re-determined based on the current child node.

[0008] In an optional implementation manner, determining the scheduling order of the current node when sending, receiving and / or responding to multiple operation requests according to the priority of each operation request includes:

[0009] Adding each of the received operation requests to a corresponding cache queue according to the upper-level sub-node to which it belongs;

[0010] Polling each cache queue and obtaining the priority of each operation request in each cache queue;

[0011] The scheduling order of the multiple operation requests in each of the cache queues is determined according to the priority.

[0012] In an optional implementation manner, determining the scheduling order of the multiple operation requests in each cache queue according to the priority includes:

[0013] Different priorities correspond to different numbers of byes, wherein as the priority decreases, the corresponding number of byes increases;

[0014] Determining whether the corresponding number of byes is met according to the priority of the operation request at the head of each cache queue;

[0015] If so, take out the operation request at the head of the corresponding cache queue.

[0016] In an optional implementation manner, the re-determining the priority of each of the operation requests based on the current child node includes:

[0017] Determine the new priority of each operation request based on the service flow of the current subnode and the original priority of each operation request; wherein,

[0018] The new priority of each operation request is less than or equal to the original priority.

[0019] In an optional implementation manner, the determining the new priority of each operation request based on the service traffic of the current subnode and the original priority of each operation request includes:

[0020] If the service flow of the current subnode is less than a preset threshold, the original priority of each operation request is reduced by one level and determined as a new priority;

[0021] If the service flow of the current subnode is greater than or equal to a preset threshold, the original priority of each operation request is determined as a new priority.

[0022] In an optional implementation manner, before adding each of the received operation requests to a corresponding cache queue according to the upper-level sub-node to which it belongs, the method further includes:

[0023] Determine the number of received operation requests according to the service flow of the current sub-node; and

[0024] The service traffic decreases as the number of received operation requests decreases;

[0025] If the service flow of the current child node is 0, the operation request is no longer received.

[0026] In an optional implementation, it includes: the service flow of the current subnode increases at a preset rate until the maximum service flow is reached.

[0027] In an optional implementation manner, after the step of no longer receiving the operation request if the service flow of the current subnode is 0, the method further includes:

[0028] Calculate the waiting time of each operation request according to the time when each operation request arrives at the current child node and the time when the current child node receives the operation request;

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

[0030] In an optional implementation, the multi-stage node includes at least a receiving node and a control node;

[0031] The receiving node obtains the operation request of the host;

[0032] The control node executes the operation requests in sequence according to the scheduling order to access the storage array.

[0033] In a second aspect, the present application provides a storage system, which includes multiple levels of nodes and a storage array, wherein each level of node includes multiple sub-nodes, each of the sub-nodes is communicatively connected with each sub-node of the upper level node, and the storage system is used to execute the storage access method as described above.

[0034] The present application embodiment has the following steps:

[0035] The embodiment of the present application provides a storage access method, which is applied to a storage system, and the method includes: obtaining multiple operation requests sent by multiple hosts, transmitting them to a storage array through multiple levels of nodes and executing them; wherein for a child node, determining the scheduling order of the current child node when sending, receiving and / or responding to multiple operation requests according to the priority of each operation request; and re-determining the priority of the operation request based on the current child node. The present application implements multi-level scheduling of multi-level transmitted operation requests according to different hierarchical dimensions at different nodes, which can effectively process multiple operation requests transmitted at multiple levels and avoid excessive occupation of resources, and the priority of each operation request can be transmitted between different nodes, which improves the scheduling efficiency of each node scheduling operation requests and reduces the scheduling consumption time. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] In order to more clearly illustrate the technical solution of the present application, the following is a brief introduction to the drawings required for use in the embodiments. It should be understood that the following drawings only illustrate certain embodiments of the present application and should not be regarded as limiting the scope of protection of the present application. In each of the drawings, similar components are numbered similarly.

[0037] Figure 1A first flow chart of a storage access method in an embodiment of the present application is shown;

[0038] Figure 2 A schematic diagram of the structure of a storage system in an embodiment of the present application is shown;

[0039] Figure 3 A second flow chart of the storage access method in an embodiment of the present application is shown;

[0040] Figure 4 A schematic diagram showing a principle of setting a leaky bucket for scheduling at a certain node in an embodiment of the present application is shown;

[0041] Figure 5 A schematic diagram of a first process of scheduling an operation request at a controller node in an embodiment of the present application is shown;

[0042] Figure 6 A schematic diagram of the first polling process when scheduling an operation request at a controller node in an embodiment of the present application is shown;

[0043] Figure 7 A schematic diagram of a second polling process when scheduling an operation request at a controller node in an embodiment of the present application is shown;

[0044] Figure 8 A schematic diagram of the third polling process when scheduling an operation request at a controller node in an embodiment of the present application is shown;

[0045] Fig. 9 A schematic diagram of a process for scheduling operation requests at a central processing unit node in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0046] The technical solutions 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 only part of the embodiments of the present application, rather than all the embodiments.

[0047] The components of the embodiments of the present application generally described and shown in the drawings herein may be arranged and designed in various configurations. Therefore, the following detailed description of the embodiments of the present application provided in the drawings is not intended to limit the scope of the application claimed for protection, but merely represents the selected embodiments of the present application. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without making creative work belong to the scope of protection of the present application.

[0048] Hereinafter, the terms "including", "having" and their cognates, which may be used in various embodiments of the present application, are intended only to indicate specific features, numbers, steps, operations, elements, components, or combinations of the foregoing items, and should not be understood as first excluding the existence of one or more other features, numbers, steps, operations, elements, components, or combinations of the foregoing items or adding the possibility of one or more features, numbers, steps, operations, elements, components, or combinations of the foregoing items.

[0049] Furthermore, the terms “first”, “second”, “third”, etc. are merely used for distinguishing descriptions and are not to be understood as indicating or implying relative importance.

[0050] Unless otherwise defined, all terms (including technical terms and scientific terms) used herein have the same meanings as those generally understood by those skilled in the art to which the various embodiments of the present application belong. The terms (such as those defined in generally used dictionaries) will be interpreted as having the same meanings as the contextual meanings in the relevant technical field and will not be interpreted as having idealized meanings or overly formal meanings unless clearly defined in the various embodiments of the present application.

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

[0052] It can be understood that multiple hosts remotely access the 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 the corresponding control node through multi-level node scheduling, and the control node processes the operation request to perform a read or write operation on the storage array.

[0053] For example, Figure 1 As shown, the storage system may include the following steps when performing a storage access process:

[0054] S100, obtaining multiple operation requests sent by multiple hosts, transmitting them to the storage array via multiple nodes and executing them.

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

[0056] 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 via the network. After each operation request passes through the multi-level nodes inside the storage system, it is executed in sequence by the control node in the multi-level nodes according to the scheduling order to access the storage array.

[0057] The multi-level nodes at least include a receiving node and a control node; the receiving node includes a link port, etc., and the control node includes a controller and a central processing unit, etc. Further, the receiving node obtains an operation request from the host; the control node executes the operation request in sequence according to the scheduling order to access the storage array.

[0058] In one example, different nodes within a storage system may be divided into receiving nodes such as link ports, controllers, and central processing units, and control nodes; wherein different hosts may access the storage array through any sub-nodes in control nodes such as different controllers or central processing units to perform read or write operations on the storage array.

[0059] For example, Figure 2 As shown, the nodes of the storage system include link ports, controllers, central processing units, etc. in sequence; wherein each sub-node in the link port node is any one of the ports, and each sub-node in the controller node is any one of the controllers, etc. 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 node as a controller, each host sends multiple operation requests, 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. Among them, each controller only receives an operation request sent by a corresponding host, and each host can send operation requests to multiple controllers.

[0061] Furthermore, when each operation request is transmitted between multiple nodes, the child nodes corresponding to each node schedule the received operation requests according to the priority to reasonably utilize the processing resources of each node. Figure 3 As shown, the above S200 may specifically include the following steps:

[0062] S210, adding each received operation request to a corresponding cache queue according to the upper-level child node to which it belongs.

[0063] S220, polling each cache queue and obtaining the priority of each operation request in each cache queue.

[0064] S230: Determine a scheduling order of multiple operation requests in each cache queue according to the priority.

[0065] For reference, in the process of each sub-node in each node receiving operation requests sent from each sub-node in the upper-level 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 implement cache queue-based scheduling according to each cache queue, so that the resources at each node can be reasonably allocated according to the scheduling results, thereby improving the operation request processing efficiency of the storage system. Among them, the setting number and setting rules of each cache queue can be set accordingly according to actual needs, and this embodiment does not limit this.

[0066] In one example, the current child node can set a cache queue according to the number of upper-level child nodes that transmit each operation request, so as to add each received operation request to the corresponding cache queue according to the corresponding upper-level child node. Optionally, the cache queue can also be set according to conditions such as the thread or priority corresponding to each operation request.

[0067] Furthermore, if multiple operation requests are added to the same cache queue at the same time, corresponding conditions can be set to determine the order in which each operation request is added; wherein the condition can be the timestamp of each operation request received by the current child node or the priority of each operation request, etc., which can be set specifically according to actual needs and is not limited in this embodiment.

[0068] In addition, in one embodiment, before adding each received operation request to the corresponding cache queue, this embodiment can also determine the priority of each operation request at the current subnode through the service traffic of each subnode, and then determine whether to receive the operation request and the order of receiving each operation request according to the priority and service traffic of each operation request; wherein, the priority determination rule can be set accordingly according to actual needs, for example, it can be set that the priority of the corresponding received operation request decreases in sequence when the service traffic decreases. This also means that when each subnode receives each operation request, one-level or multi-level scheduling can also be implemented based on different dimensions.

[0069] For example, when the current subnode 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 subnode; wherein the service flow decreases with the number of received operation requests; if the service flow of the current subnode is 0, no operation request is received. wherein the service flow of the current subnode increases at a preset rate until the maximum service flow is reached, and the value of the preset rate can be set accordingly according to demand.

[0070] It can be understood that this embodiment can plan the number and priority of receiving each operation request through the service traffic at each sub-node, so as to rationally schedule multiple operation requests while fully utilizing the processing resources of the current sub-node to ensure the service quality of the current sub-node.

[0071] Furthermore, when the current child node sends each operation request to the next node or executes each operation request, the scheduling order of 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 different cache queues.

[0072] For reference, the number of byes corresponding to each priority level is pre-set; then, when determining the scheduling order of operation requests in each cache queue, it is determined in turn whether the priority level of the operation request at the head of each cache queue meets the corresponding number of byes; if so, the operation request at the head of the current cache queue is taken out; otherwise, the current cache queue is bye, the number of byes of the current cache queue is recorded, and the next cache queue is jumped. The number of byes corresponding to different priorities can be the same or different, and can be set accordingly according to the needs. For example, the number of byes corresponding to different priorities can be set to be different, wherein as the priority decreases, the number of byes corresponding to each priority increases.

[0073] S300: Re-determine the priority of each operation request based on the current child node.

[0074] When multiple operation requests in each cache queue are transmitted to the next child node according to the determined scheduling order, the next child node can re-determine the new priority of each operation request so that the next child node determines the receiving order according to the new priority of each operation request.

[0075] In one example, each child node may determine a 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 flow corresponding to the current subnode when receiving the operation request is less than the preset threshold, the original priority of the operation request is reduced by one level and determined as the new priority of the operation request; if the service flow of the current subnode 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 accordingly according to actual needs.

[0077] It can be understood that the priority of each operation request is sequentially transmitted between each node as each operation request is transmitted, 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 is determined at each node whether to be maintained or downgraded according to the processing resources of the current node.

[0078] Furthermore, the current child node determines a scheduling order for sending or responding to multiple operation requests according to the new priority of each operation request.

[0079] In one example, the operation request scheduling process at the controller node is described by taking the current node as a controller and the previous node as a link port as an example.

[0080] Each controller receives operation requests from different link ports and performs first-level scheduling based on the link ports. During this process, 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 by arbitration.

[0081] Each link port contains operation requests belonging to different cache queues (i.e., SQ queues). Each controller adds the received operation requests of each link port to the corresponding cache queue. Then, each controller can perform second-level scheduling based on the cache queue and decide the order of issuing each operation request in each cache queue through arbitration. The setting rules and number of the cache queue can be set according to actual needs, such as setting according to the thread or priority corresponding to each operation request.

[0082] It can be seen that each child node at the current node can implement two-level scheduling. Furthermore, if the next node is a central processing unit, and because there are multiple controllers in the storage system accessing the same storage array, then at the central processing unit node, a third-level scheduling can be implemented based on different controllers, and the order of executing the operation requests sent by each controller at the current child node is determined by arbitration.

[0083] Similarly, when the third-level scheduling is implemented at the CPU node, the fourth-level, fifth-level and other multi-level scheduling can be implemented according to other dimensions, such as namespace-based scheduling, PCIe port-based scheduling, etc.; that is, each cache queue of the CPU contains operation requests to access different namespaces, and the fourth-level scheduling can be implemented based on the namespace; multiple operation requests can access the storage array by connecting to the same PCIe port, and the fifth-level scheduling can be implemented based on the PCIe port.

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

[0085] In addition, the process of the storage system executing the storage access method in this embodiment can also be described in conjunction with the token bucket scheduling algorithm.

[0086] For example, Figure 4 As shown, at each level of child nodes, a leaky bucket is set, and tokens are placed in each leaky bucket. The number of tokens increases at a certain rate, and the rate can be set accordingly according to actual needs.

[0087] Each operation request enters and exits the leaky bucket, and each operation request needs to obtain a token before it can pass through the leaky bucket. Every time an operation request flows out of the leaky bucket (that is, the operation request passes through the leaky bucket), the number of tokens in the leaky bucket is reduced by 1. It can be seen that if the speed at which operation requests obtain tokens in the leaky bucket is greater than the speed at which tokens increase, multiple operation requests will not be able to obtain tokens. At this 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 before passing, or be processed according to the timeout mechanism after the operation request times out.

[0088] A water level is designed for the number of tokens in the leaky bucket. When an operation request passes through the leaky bucket, if the number of tokens in the leaky bucket is above the water level (including being equal to the water level), the priority of the operation request is marked as the first priority. If the number of tokens is below the water level, it is marked as the second priority, wherein the first priority is higher than the second priority.

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

[0090] If the number of tokens in the current leaky bucket is above the waterline (including equal to), the priority of the operation request is made consistent with the priority when passing through the upper leaky bucket (that is, the priority when passing through the upper leaky bucket is maintained). Figure 5 As shown, the operation request C1 has the first priority after passing through the upper leaky bucket, and maintains the first priority after passing through the current leaky bucket; the operation request C2 has the second priority after passing through the upper leaky bucket, and also maintains the second priority after passing through the current leaky bucket.

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

[0092] By analogy, multiple levels of leaky buckets are correspondingly set at different nodes, and when scheduling at each node, the priority of the operation request passing through the leaky bucket can be set according to the leaky bucket and the number of tokens set at the node.

[0093] In each level of scheduling, after setting the priority of the operation request through the leaky bucket, the scheduling can be completed according to the priority. Among them, the number of priority levels can be set accordingly according to actual needs, and this embodiment does not limit this.

[0094] Optionally, the priority level set for each operation request when passing through the multi-level leaky bucket can be marked with different colors, such as the first priority level is marked as green, the second priority level is marked as yellow, and the third priority level is marked as orange, etc., wherein the color markings corresponding to different priorities can be set accordingly according to actual needs, and this embodiment does not limit it. Furthermore, when scheduling at each level, each operation request passing through the leaky bucket is colored by the leaky bucket at this level to complete the scheduling according to the priority level corresponding to the color marking.

[0095] Furthermore, during the scheduling process, all cache queues are polled, and all green-marked operation requests are taken first. If there are processing resources, yellow-marked operation requests are taken, and so on. After one poll, the operation requests that have not been taken from each cache queue will participate in the next poll. If the current processing resources are insufficient, the number of rounds for each priority level can be set, such as yellow-marked rounds once, orange-marked rounds twice, and so on.

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

[0097] In the first poll, if Figure 6 As shown, each cache queue is polled in turn, and green operation requests A1 and B1 are taken from the queues corresponding to port 1 and port 2. The yellow operation request C1 in port 3 is left blank, and the green operation request D1 of port 4 is taken. At this time, only 3 operation requests are taken in the first polling, and there are still processing resources, so polling continues.

[0098] like Figure 7 As shown in the figure, in the second polling, green operation requests A2 and B2 are taken from the queues corresponding to port 1 and port 2 respectively. The yellow operation request C1 in the queue corresponding to port 3 has been vacant once, so C1 is taken in this polling; the yellow operation request D2 in the queue corresponding to port 4 is vacant. At this point, the second polling ends, and a total of 6 operation requests are taken, but the node still has processing resources, so polling continues.

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

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

[0101] Furthermore, at the central processing unit node, it is first necessary to determine the priority (color) of each operation request after passing through this level.

[0102] Exemplarily, if the current number of tokens of the current child node is 6, the watermark is 4, and no new tokens are generated during the processing of the operation request.

[0103] After passing through the leaky bucket at this level, if Fig. 9 As shown, the operation requests A1, B1 and D1 sent by controller 1 have 6, 5 and 4 tokens when passing through, respectively, and their token numbers are all greater than or equal to the waterline. Therefore, the operation requests A1, B1 and D1 all maintain the color of the previous child node; the operation requests A2, B2 and C1 have 3, 2 and 1 tokens when passing through, respectively, and their token numbers are all less than the waterline. Therefore, the green operation requests A2 and B2 are downgraded to yellow operation requests, and the yellow operation request C1 is downgraded to orange operation request; since the operation requests B3 and D2 have 0 tokens when passing through, they need to wait for token generation before they can pass.

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

[0105] In addition, if there are multiple cache queues in a controller at the controller node, the controller will divide different operation requests into different cache queues when receiving operation requests. Then, during the next level of scheduling, scheduling can be implemented based on different cache queues in the same controller. The scheduling process is the same as the aforementioned scheduling, so it will not be repeated here.

[0106] In one example, this embodiment is further provided with a timeout mechanism. Further, if the service flow of the current child node is 0, the timeout mechanism can be enabled to schedule the timeout request after no more operation requests are received.

[0107] The waiting time of the operation request is calculated based on the time when the operation request arrives at the current child node and the time when the current child node receives the operation request; it is determined 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. The timeout processing process is to give priority to the timeout request at each child node, that is, to give priority to adding the timeout operation request to the corresponding cache queue of the current schedule, so that the current child node can immediately schedule the timeout request. The value of the preset time can be set accordingly according to actual needs, and this embodiment is not limited.

[0108] It can be understood that the time period from the time when each operation request arrives at the current child node to the time when the current child node receives the operation request is recorded. If the time period exceeds the preset time and the operation request has not been received by the current child node, a timeout mechanism is enabled for the operation request, so that the current child node gives priority to processing the operation request, avoiding the timed-out request from waiting indefinitely at the current child node, and improving the response speed of the storage system to the operation request, thereby improving the robustness and reliability of the system.

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

[0110] In this embodiment, multi-level scheduling of operation requests transmitted at multiple levels according to different hierarchical dimensions is implemented at different nodes, which can effectively process multiple operation requests transmitted at multiple levels and avoid excessive occupation of resources. The priority of each operation request can be transmitted between different nodes, thereby improving the scheduling efficiency of scheduling operation requests at each node and reducing scheduling time. In addition, this embodiment can also set a timeout mechanism to avoid the phenomenon that ready tasks are not scheduled for a long time, thereby improving the system response speed and reliability.

[0111] In several embodiments provided in the present application, it should be understood that the disclosed system and method can also be implemented in other ways. The system embodiments described above are merely schematic. For example, the flowcharts and structure diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of a code, and the module, a program segment or a part of a code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in an alternative implementation, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the structure diagram and / or the flow diagram, and the combination of boxes in the structure diagram and / or the flow diagram, can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0112] In addition, the functional modules or units in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist separately, or two or more modules may 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 solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for a computer device (which can be a smart phone, a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the various embodiments of the present application.

[0114] The above description is only a specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application.

Claims

1. A storage access method, characterized in that: Applied to a storage system, the storage system includes multiple levels of nodes and a storage array, wherein each level of node includes multiple sub-nodes, and each of the sub-nodes is communicatively connected with each sub-node of the upper level node: Acquire multiple operation requests sent by multiple hosts, transmit them to the storage array through multiple nodes and execute them; For a child node, determining a scheduling order for the current child node when sending, receiving and / or responding to multiple operation requests according to the priority of each operation request; and, The priority of each of the operation requests is re-determined based on the current child node.

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 according to the priority of each operation request includes: Adding each of the received operation requests to a corresponding cache queue according to the upper-level sub-node to which it belongs; Polling each cache queue and obtaining the priority of each operation request in each cache queue; The scheduling order of the multiple operation requests in each of the cache queues is determined according to the priority.

3. The storage access method according to claim 2, characterized in that: Determining the scheduling order of the multiple operation requests in each cache queue according to the priority includes: Different priorities correspond to different numbers of byes, wherein as the priority decreases, the corresponding number of byes increases; Determining whether the corresponding number of byes is met according to the priority of the operation request at the head of each cache queue; If so, take out the operation request at the head of the corresponding cache queue.

4. The storage access method according to claim 1, characterized in that: The re-determining the priority of each operation request based on the current child node includes: Determine the new priority of each operation request based on the service flow of the current subnode and the original priority of each operation request; wherein, The new priority of each operation request is less than or equal to the original priority.

5. The storage access method according to claim 4, characterized in that: The determining of the new priority of each operation request based on the service flow of the current subnode and the original priority of each operation request includes: If the service flow of the current subnode is less than a preset threshold, the original priority of each operation request is reduced by one level and determined as a new priority; If the service flow of the current subnode is greater than or equal to a preset threshold, the original priority of each operation request is determined as a new priority.

6. The storage access method according to claim 2, characterized in that: Before adding each of the received operation requests to a corresponding cache queue according to the upper-level sub-node to which it belongs, the method further includes: Determine the number of received operation requests according to the service flow of the current sub-node; and The service traffic decreases as the number of received operation requests decreases; If the service flow of the current child node is 0, the operation request is no longer received.

7. The storage access method according to claim 6, characterized in that: include: The service flow of the current subnode increases at a preset rate until reaching a maximum service flow.

8. The storage access method according to claim 6, characterized in that: After the step of no longer receiving the operation request if the service flow of the current subnode is 0, the method further includes: Calculate the waiting time of each operation request according to the time when each operation request arrives at the current child node and the time when the current child node receives the operation request; If the waiting time exceeds the preset time, a timeout process is performed on the corresponding operation request.

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

10. A storage system, characterized in that: The storage system includes multiple levels of nodes and a storage array, wherein each level of nodes includes multiple sub-nodes, each of the sub-nodes is communicatively connected with each sub-node of the upper level node, and the storage system is used to execute the storage access method as described in any one of claims 1-9.

Citation Information

Cited By

  • Storage access method and storage system

    WO2026026745A1