CPC G06F 9/5083 (2013.01) [G06F 3/0611 (2013.01); G06F 3/0635 (2013.01); G06F 3/0659 (2013.01); G06F 3/067 (2013.01); G06F 9/5016 (2013.01); G06F 9/5027 (2013.01); G06F 2209/508 (2013.01)] | 14 Claims |
1. A method for workload balancing by dynamically modifying path states comprising:
determining, using one or more processors, first path state information for a first group of logical devices, wherein the first path state information indicates that a first set of paths from a host to a first target port group of a first node in a data storage system are preferred paths for the first group of logical devices and wherein the first path state information indicates that a second set of paths from the host to a second target port group of a second node of the data storage system are non-preferred paths for the first group of logical devices;
determining, using said one or more processors, second path state information for a second group of logical devices, wherein the second path state information indicates that the first set of paths from the host to the first target port group of the first node in a data storage system are non-preferred paths for the second group of logical devices and wherein the second path state information indicates that the second set of paths from the host to the second target port group of the second node of the data storage system are preferred paths for the second group of logical devices;
measuring, using said one or more processors, a first workload of the first node and a second workload of the second node, wherein said measuring includes:
measuring one or more node resource utilization metrics, including a first CPU utilization, of the first node; and
measuring the one or more node resource utilization metrics, including a second CPU utilization, of the second node;
determining, using said one or more processors and in accordance with one or more criteria, to perform load rebalancing of the first workload of the first node and the second workload of the second node, wherein said load rebalancing includes dynamically changing one or more preferred paths for one or more logical devices of the first group of logical devices from the first node to the second node, wherein the one or more criteria includes a first trigger condition, and wherein said determining to perform load rebalancing includes:
determining that the first trigger condition is met where the first workload of the first node is determined to be overloaded and where there is a first workload imbalance between the first node and the second node, wherein the first workload imbalance is detected by the first CPU utilization of the first workload of the first node exceeding the second CPU utilization of the second workload of the second node by at least a specified amount, and wherein the first node being overloaded is detected by the first CPU utilization of the first workload of the first node exceeding a specified maximum threshold;
performing, by the data storage system using said one or more processors, said load rebalancing, including:
selecting the first logical device of the first group of logical devices;
modifying a current state for the first set of paths to the host for the first logical device from preferred to non-preferred; and
modifying a current state for the second set of paths to the host for the first logical device from non-preferred to preferred;
responsive to said load rebalancing, the data storage system sending a notification to the host, wherein said notification includes information identifying one or more preferred paths changed from the first node to the second node for one or more logical devices including a first logical device of the first group;
the host sending I/Os directed to the first logical device over a first preferred path in accordance with the information of the notification sent by the data storage system responsive to said load rebalancing, wherein the first CPU utilization for the first node and the second CPU utilization for the second node are included in first workload information obtained at a first point in time;
predicting, based on the first workload information from the first point in time, a second point in time when a third workload of the first node is expected to be overloaded and when there is expected to be a second workload imbalance between the first node and the second node, wherein the second workload imbalance expected at the second point in time includes a third CPU utilization of the third workload of the first node exceeding a fourth CPU utilization of a fourth workload of the second node by at least the specified amount, and wherein the first node expected to be overloaded at the second point in time is due to the third CPU utilization of the third workload of the first node at the second point in time exceeding the specified maximum threshold; and
responsive to said predicting, the data storage system pre-emptively performing second load rebalancing prior to the second point in time, including the data storage system sending a second notification to the host, wherein said second notification includes second information identifying second one or more preferred paths changed from the first node to the second node for one or more logical devices.
|