A multi-path planning method, device and medium
Patent Information
- Application Number
- CN202310900300.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-21
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2043-07-21
AI Technical Summary
[0005]本发明的目的是提供一种多路径规划方法、装置及介质,解决IO分布不均匀或者不能选择最优的路径的问题
[0073] The multi-path planning method provided by this invention obtains the access status of asymmetric logical units (ALUs) for each path. These ALUs are set by the Internet Minicomputer System (IMS) interface server. The method determines the priority of each path based on its ALU access status, aggregates paths of the same priority into a path group, selects the most efficient path group as the running group upon receiving input/output requests, and sends the received input/output requests to the paths within the running group in a round-robin manner. This invention prioritizes all paths based on ALU access status and selects appropriate groups for task distribution of input/output requests, resulting in better performance. After group selection, the input/output requests are distributed to the paths within each group in a round-robin manner, achieving a uniform distribution of input/output requests across different paths and realizing load balancing of input/output requests in multi-path scenarios.
Smart Images

Figure CN116909953B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computers, and in particular to a multi-path planning method, apparatus, and medium. Background Technology
[0002] The Internet Small Computer System Interface (iSCSI) is a protocol based on Transmission Control Protocol / Internet Protocol (TCP / IP) that allows two computers to exchange Small Computer System Interface (SCSI) commands via iSCSI. This enables computers to simulate local storage devices within a Storage Area Network (SAN) through high-speed LAN hubs. Multipathing technology allows for the aggregation and management of the same device across multiple links on the host side, improving transmission speeds and providing features such as load balancing and failover.
[0003] Currently, in multipathing applications, the path selection strategy of multipathing software refers to the method of selecting the target device from multiple devices when input / output (IO) operations occur on the host side. There are three path selection strategies: sending one IO per path, selecting the path with the shortest IO service time, and selecting the path with the fewest currently processed IOs. The above methods have the problem of uneven IO distribution or failure to select the optimal path.
[0004] Therefore, providing a path selection method that achieves uniform IO distribution and high performance is a technical problem that urgently needs to be solved by those in the field. Summary of the Invention
[0005] The purpose of this invention is to provide a multi-path planning method, apparatus, and medium to solve the problem of uneven I / O distribution or inability to select the optimal path.
[0006] To address the aforementioned technical problems, this invention provides a multi-path planning method, comprising:
[0007] Obtain the current access status of the asymmetric logic unit for each path; wherein, the access status of the asymmetric logic unit for each path is set by the Internet minicomputer system interface server;
[0008] The priority of each path is determined based on the access state of the asymmetric logic unit of each path;
[0009] Paths of the same priority are aggregated into one group to obtain multiple path groups;
[0010] Upon receiving an input / output request, the path group with the highest running efficiency is selected as the running group.
[0011] The received input / output requests are sent to the path in the running group in a polling manner.
[0012] On the other hand, in the above multi-path planning method, the steps for setting the access state of the explicit asymmetric logic unit for each path are as follows:
[0013] Obtain the performance metrics for each of the aforementioned paths;
[0014] Set the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path.
[0015] On the other hand, in the above multi-path planning method, setting the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path includes:
[0016] Determine whether the performance indicators of each path meet the preset performance conditions;
[0017] If so, the access state of the explicit asymmetric logic unit corresponding to the path is set to active.
[0018] If not, then the access state of the explicit asymmetric logic unit corresponding to the path is set to inactive.
[0019] On the other hand, in the above multi-path planning method, determining whether the performance indicators of each path meet the preset performance conditions includes:
[0020] Obtain the first latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first latency difference is the difference between two adjacent average latencies;
[0021] Determine whether the first delay difference is greater than the first threshold;
[0022] If so, then the performance indicators of the path are determined to not meet the preset performance conditions.
[0023] On the other hand, in the above multi-path planning method, if the first delay difference is less than the first threshold, it further includes:
[0024] Obtain the second latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second latency difference is the difference between two adjacent average latencies;
[0025] Determine whether the second delay difference is greater than the second threshold;
[0026] If so, then it is determined that the performance indicators of the path do not meet the preset performance conditions;
[0027] If not, then the performance indicators of the path are determined to meet the preset performance conditions.
[0028] On the other hand, in the above multi-path planning method, determining the priority of each path based on the access state of the asymmetric logical units of each path includes:
[0029] The priority of each path is determined based on the access status of the asymmetric logic unit of the path; wherein the priority includes two categories: available paths and unavailable paths.
[0030] Correspondingly, paths of the same priority are aggregated into one group, resulting in multiple path groups, including:
[0031] Paths with priority of availability are aggregated into an available group, and paths with priority of unavailable are aggregated into an unavailable group;
[0032] Correspondingly, upon receiving an input / output request, the path group with the highest operating efficiency is selected as the running group, including:
[0033] Received input / output request;
[0034] Groups that aggregate available paths are used as run groups.
[0035] On the other hand, in the above multi-path planning method, determining the priority of each path based on the access state of the asymmetric logical units of each path includes:
[0036] Obtain a preset priority classification threshold; wherein, the preset priority classification threshold includes multiple levels of available paths and one unavailable path;
[0037] Based on the preset priority division threshold, the priority of each path is determined according to the access status of the asymmetric logical unit of each path;
[0038] Correspondingly, paths of the same priority are aggregated into one group, resulting in multiple path groups, including:
[0039] The available paths at each level are aggregated into multiple available groups, and the paths with the priority of being unavailable are aggregated into one unavailable group.
[0040] Correspondingly, upon receiving an input / output request, the path group with the highest operating efficiency is selected as the running group, including:
[0041] Received input / output request;
[0042] Select the group with the lowest load from among the available groups as the running group.
[0043] To address the aforementioned technical problems, the present invention also provides a multi-path planning device, comprising:
[0044] The acquisition module is used to acquire the access status of the asymmetric logic units of each path; wherein, the access status of the asymmetric logic units of each path is set by the Internet minicomputer system interface server;
[0045] A priority determination module is used to determine the priority of each path based on the access status of the asymmetric logic unit of each path;
[0046] The grouping module is used to aggregate the paths of the same priority into one group, resulting in multiple path groups;
[0047] The selection module is used to select the path group with the highest running efficiency as the running group after receiving an input / output request;
[0048] The allocation module is used to send the received input / output requests to the paths in the running group in a round-robin manner.
[0049] In addition, the device also includes:
[0050] The performance metrics acquisition module is used to acquire the performance metrics of each of the paths.
[0051] The status setting module is used to set the corresponding explicit asymmetric logic unit access status according to the performance indicators of each path.
[0052] The judgment unit is used to determine whether the performance indicators of each path meet the preset performance conditions.
[0053] If so, the first setting unit is triggered to set the access state of the explicit asymmetric logic unit corresponding to the path to an active state;
[0054] If not, the second setting unit is triggered to set the access state of the explicit asymmetric logic unit corresponding to the path to an inactive state.
[0055] The first acquisition subunit is used to acquire the first delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first delay difference is the difference between two adjacent average delays;
[0056] The first judgment subunit is used to determine whether the first time delay difference is greater than the first threshold.
[0057] If so, the first determining subunit is triggered to determine that the performance indicators of the path do not meet the preset performance conditions.
[0058] The second acquisition subunit is used to acquire the second delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second delay difference is the difference between two adjacent average delays;
[0059] The second judgment subunit is used to determine whether the second time delay difference is greater than the second threshold.
[0060] If so, the first determining subunit is triggered to determine that the performance indicators of the path do not meet the preset performance conditions;
[0061] If not, the second determining subunit is triggered to determine whether the performance indicators of the path meet the preset performance conditions.
[0062] The first partitioning unit is used to determine the priority of each path based on the access status of the asymmetric logic unit of the path; wherein the priority includes two categories: available paths and unavailable paths.
[0063] The instruction receiving unit is used to receive input / output requests;
[0064] The first selection grouping unit is used to select the group of available path aggregations as the running group.
[0065] The second partitioning unit is used to determine the priority of each path based on the access status of the asymmetric logic unit of the path; wherein the priority includes multiple levels of available paths and one unavailable path;
[0066] An aggregation unit is used to aggregate available paths of multiple levels into multiple available groups, and to aggregate the paths with the priority of unavailable paths into one unavailable group;
[0067] The instruction receiving unit is used to receive input / output requests;
[0068] The second selection grouping unit is used to select the group with the lowest load among the multiple available groups as the running group.
[0069] To address the aforementioned technical problems, the present invention also provides a multi-path planning device, comprising:
[0070] Memory, used to store computer programs;
[0071] A processor is used to implement the steps of the multi-path planning method described above when executing the computer program.
[0072] To address the aforementioned technical problems, the present invention also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the multi-path planning method described above.
[0073] The multi-path planning method provided by this invention obtains the access status of asymmetric logical units (ALUs) for each path. These ALUs are set by the Internet Minicomputer System (IMS) interface server. The method determines the priority of each path based on its ALU access status, aggregates paths of the same priority into a path group, selects the most efficient path group as the running group upon receiving input / output requests, and sends the received input / output requests to the paths within the running group in a round-robin manner. This invention prioritizes all paths based on ALU access status and selects appropriate groups for task distribution of input / output requests, resulting in better performance. After group selection, the input / output requests are distributed to the paths within each group in a round-robin manner, achieving a uniform distribution of input / output requests across different paths and realizing load balancing of input / output requests in multi-path scenarios.
[0074] In addition, the present invention also provides an apparatus and a medium, which correspond to the above method and have the same effect. Attached Figure Description
[0075] To more clearly illustrate the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0076] Figure 1 A flowchart of a multi-path planning method provided in an embodiment of the present invention;
[0077] Figure 2 A flowchart illustrating a method for setting the access state of an explicit asymmetric logic unit, provided in an embodiment of the present invention;
[0078] Figure 3 This is a structural diagram of a multi-path planning device provided in an embodiment of the present invention;
[0079] Figure 4 This is a structural diagram of another multi-path planning device provided in an embodiment of the present invention. Detailed Implementation
[0080] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of the present invention.
[0081] The core of this invention is to provide a multi-path planning method, device, and medium.
[0082] To enable those skilled in the art to better understand the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0083] The Internet Small Computer System Interface (iSCSI) is a protocol based on Transmission Control Protocol / Internet Protocol (TCP / IP) that allows two computers to exchange SCSI commands via iSCSI. This enables computers to simulate local storage devices within a Storage Area Network (SAN) through high-speed LAN hubs. In storage system networking, there are often multiple physical or logical links between the client host and the storage device. Therefore, the host can connect to the same storage device through multiple links. Multipathing technology allows the host to aggregate and manage the same device across multiple links, improving transmission speed and providing features such as load balancing and failover. In essence, multipathing technology involves simultaneously connecting and aggregating hosts and storage devices through multiple paths.
[0084] Multipath transmission is a data transmission method between the client and the storage device. Multipath software is software that runs on the host and is used to manage multiple connection paths between the host and the storage device.
[0085] Clients and multiple storage devices establish connections via an interface between small computer systems over the Internet to achieve high path reliability and load balancing.
[0086] In iSCSI multipath scenarios, the commonly used multipath software for clients is multipath redundancy (multipath), which consists of user-space and kernel-space libraries. The kernel-space library offers three path selection methods: sending one I / O operation per path, selecting the path with the shortest I / O service time, and selecting the path with the fewest currently processed I / O operations. However, these methods suffer from uneven I / O distribution or the inability to select the optimal path.
[0087] This invention provides a multi-path planning method, such as... Figure 1 As shown, it includes:
[0088] S11: Obtain the current access status of the asymmetric logic unit for each path; where the access status of the asymmetric logic unit for each path is set by the Internet Minicomputer System Interface Server;
[0089] S12: Determine the priority of each path based on the access status of the asymmetric logic unit of the path;
[0090] S13: Aggregate paths of the same priority into one group to obtain multiple path groups;
[0091] S14: Upon receiving an input / output request, select the path group with the highest running efficiency as the running group;
[0092] S15: Send the received input / output requests to the paths in the running group in a polling manner.
[0093] Asymmetric Logical Unit Access (ALUA) is a multipath mode, also known as Target Port Group Support (TPGS), a Small Computer System Interface (SCSI) protocol that allows storage controllers 22 and 24 to configure the status of each of their respective relative ports. The SCSI Primary Commands (SPCs) are specified in Section 5.8 of SPC-3 and Sections 5.8 and 5.11 of SPC-4 by the T10 committee of the International Committee on Information Technology Standards (INCITS), the disclosure of which is incorporated herein by reference.
[0094] The access status of each asymmetric logical unit along each path is set by the Internet Minicomputer System Interface Server. Through the access status of the asymmetric logical unit, the client can query the status of each path leading to the storage end.
[0095] After the client obtains the access status of the asymmetric logic units for each path, step S12 determines the priority of each path based on the access status of the asymmetric logic units for each path. This embodiment does not limit the number of priorities and can set them according to actual needs. For example, three priorities can be divided based on the access status of the asymmetric logic units. Step S13 aggregates the paths with the same priority into a group, resulting in multiple path groups.
[0096] Upon receiving an input / output request, it is necessary to select the group with the highest operating efficiency based on the currently divided groups as the group to process the input / output request. This embodiment does not restrict how to determine the highest operating efficiency; it can be set according to actual needs.
[0097] Step S15 sends the received input / output requests to the paths in the running group in a round-robin manner. This means that the received input / output requests are distributed to the paths in the group in a round-robin manner. Of course, the round-robin mentioned in this embodiment can mean that each path is assigned one input / output request sequentially, or that a path is assigned a preset number of input / output requests before moving on to the next path. It can be set according to actual needs.
[0098] The multi-path planning method provided in this invention obtains the access status of asymmetric logical units for each path. The access status of asymmetric logical units for each path is set by the Internet Minicomputer System Interface Server. The priority of the corresponding path is determined based on the access status of the asymmetric logical units. Paths with the same priority are aggregated into a path group. Upon receiving an input / output request, the path group with the highest running efficiency is selected as the running group. The received input / output requests are sent to the paths in the running group in a round-robin manner. This invention prioritizes all paths based on the access status of asymmetric logical units and selects appropriate groups for task distribution of input / output requests, resulting in better performance. After selecting a group, input / output requests are distributed to each path of the group in a round-robin manner, achieving a uniform distribution of input / output requests across different paths and realizing load balancing of input / output requests in multi-path scenarios.
[0099] According to the above embodiments, the access status of the asymmetric logical units of each path is set by the Internet minicomputer system interface server. Specifically, the steps for setting the explicit asymmetric logical unit access status of each path are as follows:
[0100] Obtain the performance metrics for each of the aforementioned paths;
[0101] Set the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path.
[0102] The Internet Minicomputer System Interface (IMS) server obtains performance metrics for each of the aforementioned paths. This embodiment does not limit the specific type of performance metrics and can set them according to actual needs. Examples include latency, packet loss rate, and bit error rate. The explicit asymmetric logic unit access state type corresponding to the performance metrics is set according to specific needs. In this embodiment, the IMS interface server implements explicit asymmetric logic unit access and adaptively sets the explicit asymmetric logic unit access state for client access queries.
[0103] According to the above embodiments, setting the corresponding explicit asymmetric logic unit access state based on the performance indicators of each path includes:
[0104] Determine whether the performance indicators of each path meet the preset performance conditions;
[0105] If so, the access state of the explicit asymmetric logic unit corresponding to the path is set to active.
[0106] If not, then the access state of the explicit asymmetric logic unit corresponding to the path is set to inactive.
[0107] This embodiment determines whether performance indicators meet preset performance conditions. If they do, the path is suitable for service delivery; otherwise, it is unsuitable. Furthermore, the activity status mentioned in this embodiment includes multiple levels. That is, the path is further subdivided based on performance indicators, allowing for the selection of appropriate groups during subsequent service delivery.
[0108] According to the above embodiments, determining whether the performance indicators of each path meet the preset performance conditions includes:
[0109] Obtain the first latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first latency difference is the difference between two adjacent average latencies;
[0110] Determine whether the first delay difference is greater than the first threshold;
[0111] If so, then the performance indicators of the path are determined to not meet the preset performance conditions.
[0112] The first latency difference mentioned in this embodiment refers to the following: The Internet Mini-Computer System Interface (IMSI) server sends heartbeat messages to the client every preset period. The average latency of m heartbeat messages is recorded as noop_latency = (noop1 + ... + noopm) / m. The difference between the subsequent noop_latecy and the previous noop_latecy is the first latency difference, which represents the network fluctuation between the IMSI server and the client. The first threshold is a value set as needed. Exceeding this difference indicates network congestion or a network problem. If the first latency difference is greater than the first threshold, it means that the path performance indicator does not meet the preset performance conditions and cannot be used for service delivery. The access status of the explicit asymmetric logical unit corresponding to the path is set to inactive.
[0113] Preferably, the first latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the client is obtained in real time. Performance metrics are monitored in real time, and the access status of explicit asymmetric logic units is modified accordingly.
[0114] According to the above embodiments, if the first delay difference is less than the first threshold, then the method further includes:
[0115] Obtain the second latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second latency difference is the difference between two adjacent average latencies;
[0116] Determine whether the second delay difference is greater than the second threshold;
[0117] If so, then it is determined that the performance indicators of the path do not meet the preset performance conditions;
[0118] If not, then the performance indicators of the path are determined to meet the preset performance conditions.
[0119] The second latency difference mentioned in this embodiment refers to the following: The Internet Mini-Computer System Interface (IMSI) server sends heartbeat messages to the storage terminal every preset period. The average latency of n heartbeat messages is recorded as io_latency = (io1 + ... + ion) / n. The difference between each subsequent io_latency and the previous io_latency is the second latency difference, which represents the network fluctuation between the IMSI server and the storage terminal. The second threshold is a value set as needed. If the second latency difference is greater than the second threshold, it indicates that the performance index of the path does not meet the preset performance conditions and cannot be used for service delivery. The access status of the explicit asymmetric logical unit corresponding to the path is set to an inactive state. If both the first latency difference and the second latency difference are less than the first threshold, it is determined that the performance index of the path meets the preset performance conditions and can be used for service delivery.
[0120] To help those skilled in the art better understand the scheme for setting the access state of explicit asymmetric logic units, this embodiment provides a specific scheme, such as... Figure 2 As shown:
[0121] S21: Obtain the first delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first delay difference is the difference between two adjacent average delays;
[0122] S22: Determine whether the first delay difference is greater than the first threshold;
[0123] S23: If so, set the access state of the explicit asymmetric logic unit corresponding to the path to an inactive state;
[0124] S24: If not, obtain the second delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second delay difference is the difference between two adjacent average delays;
[0125] S25: Determine whether the second delay difference is greater than the second threshold;
[0126] S26: If so, set the access state of the explicit asymmetric logic unit corresponding to the path to an inactive state.
[0127] S27: If not, set the access state of the explicit asymmetric logic unit corresponding to the path to the active state.
[0128] This embodiment compares the latency difference between the Internet Minicomputer System Interface (IMSI) server and the client with the latency difference between the IMSI server and the storage terminal to determine whether to modify the access status of the explicit asymmetric logical unit in the IMSI server, thereby affecting the client path level and achieving load balancing.
[0129] Step S21: Obtaining the first latency difference of the heartbeat message sent from the Internet Mini-Computer System Interface server to the client, including:
[0130] Within the first preset period, a heartbeat message is sent to the client at a first preset interval.
[0131] Record the first heartbeat delay of each heartbeat message within each first preset period;
[0132] The first average time delay corresponding to the first preset period is obtained based on multiple first heartbeat delays;
[0133] Select the difference between the first average delay of any two adjacent first preset periods as the first delay difference;
[0134] Correspondingly, step S24: Obtain the second delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal, including:
[0135] During the second preset period, a heartbeat message is sent to the storage terminal every second preset interval.
[0136] Record the second heartbeat delay of each heartbeat message within each second preset period;
[0137] The second average delay corresponding to the second preset period is obtained based on multiple second heartbeat delays;
[0138] The difference between the second average delay of any two adjacent second preset periods is selected as the second delay difference.
[0139] Based on the above embodiments, this embodiment provides a specific path priority partitioning scheme, wherein determining the priority of each path according to the access state of the asymmetric logical units of each path includes:
[0140] The priority of each path is determined based on the access status of the asymmetric logic unit of the path; wherein the priority includes two categories: available paths and unavailable paths.
[0141] Correspondingly, paths of the same priority are aggregated into one group, resulting in multiple path groups, including:
[0142] Paths with priority of availability are aggregated into an available group, and paths with priority of unavailable are aggregated into an unavailable group;
[0143] Correspondingly, upon receiving an input / output request, the path group with the highest operating efficiency is selected as the running group, including:
[0144] Received input / output request;
[0145] Groups that aggregate available paths are used as run groups.
[0146] In this embodiment, the priority of each path is determined according to the access status of the asymmetric logical unit of the path, and the paths are divided into available and unavailable. Available paths are grouped together, and unavailable paths are grouped together. When an input / output request is received, the group of available paths is used for service delivery. The input / output request is delivered to each path of the group through a round-robin method, so as to achieve the even distribution of input / output requests on different paths and realize the load balancing of input / output requests in multi-path scenarios.
[0147] Based on the above embodiments, this embodiment provides another specific path priority partitioning scheme, wherein determining the priority of each path according to the access state of the asymmetric logical unit of each path includes:
[0148] Obtain a preset priority classification threshold; wherein, the preset priority classification threshold includes multiple levels of available paths and one unavailable path;
[0149] Based on the preset priority division threshold, the priority of each path is determined according to the access status of the asymmetric logical unit of each path;
[0150] Correspondingly, paths of the same priority are aggregated into one group, resulting in multiple path groups, including:
[0151] The available paths at each level are aggregated into multiple available groups, and the paths with the priority of being unavailable are aggregated into one unavailable group.
[0152] Correspondingly, upon receiving an input / output request, the path group with the highest operating efficiency is selected as the running group, including:
[0153] Received input / output request;
[0154] Select the group with the lowest load from among the available groups as the running group.
[0155] In this embodiment, the preset priority division threshold includes multiple levels of available paths and one unavailable path. The priority of each path is determined based on the access status of the asymmetric logical unit of the path, resulting in multiple levels of available paths and one unavailable path. The available paths of multiple levels are aggregated into multiple available groups, and the paths with the priority of being unavailable are aggregated into one unavailable group. When an input / output request is received, the group with the lowest load among the multiple available groups is selected for service delivery, achieving load balancing. The input / output request is then delivered to each path of the group using a round-robin method, ensuring that the input / output request is evenly distributed across different paths, thus achieving load balancing of input / output requests in a multi-path scenario.
[0156] In the above embodiments, the multi-path planning method has been described in detail. This invention also provides embodiments corresponding to a multi-path planning device. It should be noted that this invention describes the embodiments of the device from two perspectives: one based on functional modules, and the other based on hardware.
[0157] From the perspective of functional modules Figure 3 A structural diagram of a multi-path planning device provided in an embodiment of the present invention is shown below. Figure 3 As shown, the multi-path planning device includes:
[0158] The acquisition module 31 is used to acquire the current access status of the asymmetric logic unit of each path; wherein, the access status of the asymmetric logic unit of each path is set by the Internet minicomputer system interface server;
[0159] Priority determination module 32 is used to determine the priority of each path based on the access status of the asymmetric logic unit of each path;
[0160] Grouping module 33 is used to aggregate the paths of the same priority into one group to obtain multiple path groups;
[0161] Selection module 34 is used to select the path group with the highest running efficiency as the running group after receiving an input / output request;
[0162] The allocation module 35 is used to send the received input / output request to the path in the running group in a polling manner.
[0163] The multi-path planning device provided in this embodiment includes an acquisition module 31, used to acquire the current asymmetric logical unit access status of each path; wherein, the asymmetric logical unit access status of each path is set by the Internet minicomputer system interface server; a priority determination module 32, used to determine the priority of each path based on the asymmetric logical unit access status of each path; a grouping module 33, used to aggregate paths of the same priority into a group, resulting in multiple path groups; a selection module 34, used to select the path group with the highest running efficiency as the running group after receiving an input / output request; and an allocation module 35, used to send the received input / output request to the path in the running group in a round-robin manner. By prioritizing all paths through the asymmetric logical unit access status and selecting appropriate groups for task distribution of input / output requests, better performance is achieved. After selecting a group, the input / output request is distributed to each path of the group in a round-robin manner, realizing the even distribution of input / output requests on different paths and achieving load balancing of input / output requests in a multi-path scenario.
[0164] In addition, the device also includes:
[0165] The performance metrics acquisition module is used to acquire the performance metrics of each of the paths.
[0166] The status setting module is used to set the corresponding explicit asymmetric logic unit access status according to the performance indicators of each path.
[0167] The judgment unit is used to determine whether the performance indicators of each path meet the preset performance conditions.
[0168] If so, the first setting unit is triggered to set the access state of the explicit asymmetric logic unit corresponding to the path to an active state;
[0169] If not, the second setting unit is triggered to set the access state of the explicit asymmetric logic unit corresponding to the path to an inactive state.
[0170] The first acquisition subunit is used to acquire the first delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first delay difference is the difference between two adjacent average delays;
[0171] The first judgment subunit is used to determine whether the first time delay difference is greater than the first threshold.
[0172] If so, the first determining subunit is triggered to determine that the performance indicators of the path do not meet the preset performance conditions.
[0173] The second acquisition subunit is used to acquire the second delay difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second delay difference is the difference between two adjacent average delays;
[0174] The second judgment subunit is used to determine whether the second time delay difference is greater than the second threshold.
[0175] If so, the first determining subunit is triggered to determine that the performance indicators of the path do not meet the preset performance conditions;
[0176] If not, the second determining subunit is triggered to determine whether the performance indicators of the path meet the preset performance conditions.
[0177] The first partitioning unit is used to determine the priority of each path based on the access status of the asymmetric logic unit of the path; wherein the priority includes two categories: available paths and unavailable paths.
[0178] The first aggregation unit is used to aggregate paths with priority of available into an available group, and aggregate paths with priority of unavailable into an unavailable group;
[0179] The instruction receiving unit is used to receive input / output requests;
[0180] The first selection grouping unit is used to select the group of available path aggregations as the running group.
[0181] An acquisition unit is used to acquire a preset priority division threshold; wherein, the preset priority division threshold includes multiple levels of available paths and one unavailable path;
[0182] The second partitioning unit is used to determine the priority of each path based on the preset priority partitioning threshold and the access status of the asymmetric logical unit of each path.
[0183] The second aggregation unit is used to aggregate the available paths of each level into multiple available groups, and to aggregate the paths with the priority of unavailable paths into one unavailable group.
[0184] The instruction receiving unit is used to receive input / output requests;
[0185] The second selection grouping unit is used to select the group with the lowest load among the multiple available groups as the running group.
[0186] Since the embodiments of the apparatus and the embodiments of the method correspond to each other, please refer to the description of the embodiments of the method for the embodiments of the apparatus, which will not be repeated here.
[0187] Figure 4A structural diagram of another multi-path planning device provided in an embodiment of the present invention is shown below. Figure 4 As shown, the multipath planning device includes: a memory 40 for storing a computer program;
[0188] The processor 41 is used to implement the steps of the method for obtaining user operation habit information as described in the above embodiment (multi-path planning method) when executing a computer program.
[0189] The multi-path planning device provided in this embodiment may include, but is not limited to, tablet computers, laptop computers, or desktop computers.
[0190] The processor 41 may include one or more processing cores, such as a quad-core processor or an octa-core processor. The processor 41 may be implemented using at least one of the following hardware forms: Digital Signal Processor (DSP), Field-Programmable Gate Array (FPGA), or Programmable Logic Array (PLA). The processor 41 may also include a main processor and a coprocessor. The main processor, also known as the Central Processing Unit (CPU), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, the processor 41 may integrate a Graphics Processing Unit (GPU), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, the processor 41 may also include an Artificial Intelligence (AI) processor, which handles computational operations related to machine learning.
[0191] The memory 40 may include one or more computer-readable storage media, which may be non-transitory. The memory 40 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In this embodiment, the memory 40 is used to store at least the following computer program 401, which, after being loaded and executed by the processor 41, is capable of implementing the relevant steps of the multi-path planning method disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory 40 may also include an operating system 402 and data 403, and the storage method may be temporary or permanent storage. The operating system 402 may include Windows, Unix, Linux, etc. The data 403 may include, but is not limited to, the data involved in implementing the multi-path planning method.
[0192] In some embodiments, the multipath planning device may further include a display screen 42, an input / output interface 43, a communication interface 44, a power supply 45, and a communication bus 46.
[0193] Those skilled in the art will understand that Figure 4 The structure shown does not constitute a limitation on the multipath planning device and may include more or fewer components than illustrated.
[0194] The multi-path planning device provided in this invention includes a memory and a processor. When the processor executes a program stored in the memory, it can implement the following method: a multi-path planning method, which obtains the access status of asymmetric logic units for each path; wherein the access status of asymmetric logic units for each path is set by the Internet Minicomputer System Interface Server; determines the priority of the corresponding path based on the access status of the asymmetric logic units of the path; aggregates paths of the same priority into a path group; selects the path group with the highest running efficiency as the running group after receiving an input / output request; and sends the received input / output requests to the paths in the running group in a round-robin manner. This invention prioritizes all paths by using the access status of asymmetric logic units and selects appropriate groups for task distribution for input / output requests, resulting in better performance. After selecting a group, the input / output requests are distributed to each path of the group in a round-robin manner, achieving a uniform distribution of input / output requests across different paths and realizing load balancing of input / output requests in multi-path scenarios.
[0195] Finally, the present invention also provides an embodiment corresponding to a computer-readable storage medium. The computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps described in the above-described multi-path planning method embodiment.
[0196] It is understood that if the methods in the above embodiments are implemented as software functional units 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 invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and executes all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0197] The computer-readable storage medium provided in this embodiment stores a computer program. When the processor executes the program, it can implement the following method: a multi-path planning method, which obtains the access status of asymmetric logical units for each path; wherein the access status of asymmetric logical units for each path is set by the Internet Minicomputer System Interface Server; determines the priority of the corresponding path based on the access status of the asymmetric logical units of the path; aggregates paths of the same priority into a path group; selects the path group with the highest running efficiency as the running group after receiving input / output requests; and sends the received input / output requests to the paths in the running group in a round-robin manner. This invention prioritizes all paths by using the access status of asymmetric logical units and selects appropriate groups for task distribution of input / output requests, resulting in better performance. After selecting a group, the input / output requests are distributed to each path of the group in a round-robin manner, achieving a uniform distribution of input / output requests across different paths and realizing load balancing of input / output requests in multi-path scenarios.
[0198] The multi-path planning method, apparatus, and medium provided by this invention have been described in detail above. The various embodiments in the specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple; relevant parts can be referred to in the method section. It should be noted that those skilled in the art can make several improvements and modifications to this invention without departing from the principles of this invention, and these improvements and modifications also fall within the protection scope of the claims of this invention.
[0199] It should also be noted that, in this specification, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
Claims
1. A multi-path planning method, characterized in that, include: Obtain the current access status of the asymmetric logic unit for each path; wherein, the access status of the asymmetric logic unit for each path is set by the Internet Minicomputer System Interface Server; The priority of each path is determined based on the access state of the asymmetric logic unit of each path; Paths of the same priority are aggregated into one group to obtain multiple path groups; Upon receiving an input / output request, the path group with the highest running efficiency is selected as the running group. The received input / output requests are sent to the path in the running group in a polling manner; The steps for setting the access state of the asymmetric logic unit for each path are as follows: Obtain the performance metrics for each of the aforementioned paths; Set the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path. The step of setting the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path includes: Determine whether the performance indicators of each path meet the preset performance conditions; If so, the access state of the explicit asymmetric logic unit corresponding to the path is set to active. If not, then set the access state of the explicit asymmetric logic unit corresponding to the path to an inactive state; The step of determining whether the performance indicators of each path meet the preset performance conditions includes: Obtain the first latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first latency difference is the difference between two adjacent average latencies; Determine whether the first delay difference is greater than the first threshold; If so, then it is determined that the performance indicators of the path do not meet the preset performance conditions; If the first delay difference is less than the first threshold, then the method further includes: Obtain the second latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second latency difference is the difference between two adjacent average latencies; Determine whether the second delay difference is greater than the second threshold; If so, then it is determined that the performance indicators of the path do not meet the preset performance conditions; If not, then the performance indicators of the path are determined to meet the preset performance conditions.
2. The multi-path planning method according to claim 1, characterized in that, Determining the priority of each path based on the access state of the asymmetric logic unit of each path includes: The priority of each path is determined based on the access status of the asymmetric logic unit of the path; wherein the priority includes two categories: available paths and unavailable paths. Correspondingly, paths of the same priority are aggregated into one group, resulting in multiple path groups, including: Paths with priority of availability are aggregated into an available group, and paths with priority of unavailable are aggregated into an unavailable group; Correspondingly, upon receiving an input / output request, the path group with the highest operating efficiency is selected as the running group, including: Received input / output request; Groups that aggregate available paths are used as run groups.
3. The multi-path planning method according to claim 1, characterized in that, Determining the priority of each path based on the access state of the asymmetric logic unit of each path includes: Obtain a preset priority classification threshold; wherein, the preset priority classification threshold includes multiple levels of available paths and one unavailable path; Based on the preset priority division threshold, the priority of each path is determined according to the access status of the asymmetric logical unit of each path; Correspondingly, paths of the same priority are aggregated into one group, resulting in multiple path groups, including: The available paths at each level are aggregated into multiple available groups, and the paths with the priority of being unavailable are aggregated into one unavailable group. Correspondingly, upon receiving an input / output request, the path group with the highest operating efficiency is selected as the running group, including: Received input / output request; Select the group with the lowest load from among the available groups as the running group.
4. A multi-path planning device, characterized in that, include: The acquisition module is used to acquire the access status of the asymmetric logical units of each path; wherein, the access status of the asymmetric logical units of each path is set by the Internet Minicomputer System Interface Server. A priority determination module is used to determine the priority of each path based on the access status of the asymmetric logic unit of each path; The grouping module is used to aggregate the paths of the same priority into one group, resulting in multiple path groups; The selection module is used to select the path group with the highest running efficiency as the running group after receiving an input / output request; The allocation module is used to send the received input / output requests to the paths in the running group in a round-robin manner; The steps for setting the access state of the asymmetric logic unit for each path are as follows: Obtain the performance metrics for each of the aforementioned paths; Set the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path. The step of setting the corresponding explicit asymmetric logic unit access state according to the performance indicators of each path includes: Determine whether the performance indicators of each path meet the preset performance conditions; If so, the access state of the explicit asymmetric logic unit corresponding to the path is set to active. If not, then set the access state of the explicit asymmetric logic unit corresponding to the path to an inactive state; The step of determining whether the performance indicators of each path meet the preset performance conditions includes: Obtain the first latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the client; wherein, the first latency difference is the difference between two adjacent average latencies; Determine whether the first delay difference is greater than the first threshold; If so, then it is determined that the performance indicators of the path do not meet the preset performance conditions; If the first delay difference is less than the first threshold, then the method further includes: Obtain the second latency difference of the heartbeat message sent from the Internet minicomputer system interface server to the storage terminal; wherein, the second latency difference is the difference between two adjacent average latencies; Determine whether the second delay difference is greater than the second threshold; If so, then it is determined that the performance indicators of the path do not meet the preset performance conditions; If not, then the performance indicators of the path are determined to meet the preset performance conditions.
5. A multi-path planning device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the multipath planning method as described in any one of claims 1 to 3.
6. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the multi-path planning method as described in any one of claims 1 to 3.
Citation Information
Patent Citations
Multipath load balancing optimizations for ALUA storage systems
US20140229638A1