Method to manage path failure threshold consensus

A system for providing hosts with a capability to determine which threshold rule of a plurality of threshold rules to use based upon threshold consensus. For example, the system would address a configuration case of several hosts sharing an output port of a fabric via zoning and that port being connected to a single port of a storage controller. If one host is executing lower priority jobs and its threshold is much higher than another host with higher priority jobs and a lower threshold, and the storage controller recognizes that several hosts are sharing the same storage controller port, the consensus will be to ignore the threshold of the first host and to use the threshold of the second host to prevent performance degradation in the system.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates in general to the field of computers and similar technologies, and in particular to managing path failure threshold consensus within computer system environments.

2. Description of the Related Art

Computing devices generate information. It is known in the art to store such information using a plurality of data storage devices disposed in an automated data storage system. An originating host computer may be in communication with a storage controller using a plurality of communication paths.

Using prior art methods, when a host computer detects a path failure during I/O to a storage device the host computer begins a path verification protocol. The host computer typically sends path verification commands to the device through each logical path recited in a device path mask. If the data returned in one of the path verification commands does not match the expected result, or the host path verification command times out, the host removes that logical path from the device path mask. At the completion of the path verification process, the device path mask may or may not still include the failed logical path.

The path verification process can become extremely time consuming if I/O failures are detected for multiple logical control units within the failure window of the several logical paths. As a result, a host computer can expend an inordinate amount of time and processing resources executing path verification commands rather than I/O commands. As a result, data storage system performance can be degraded.

In large, enterprise data processing system environments, a system 390 type host or other hosts that attach to a storage control unit are often use a channel path identifier (CHPid) operation to physically connect to a storage controller host adapter port directly to an input port of a switch. From the switch, the input port can be zoned to go to one or more output ports of the switch. The output port of a switch can be connected to a storage controller port. A host may have configured several CHPids to access different storage controller ports through direct or switch connection.

Through a physical connection between a CHPid and one or more input ports of a storage controller, a host establishes logical paths to communicate with a storage controller. A host may establish one or more logical paths per each logical control unit (LCU) of a storage controller. An LCU is the entity that contains a plurality of devices (e.g., up to 256 devices) to which a host accesses to perform input output (I/O) operations. To access a device from different logical paths of the same CHPid or several CHPids, it is known for a host to group up to eight logical paths into one path group.

Many system configurations can include multiple hosts accessing a single storage controller via a switch fabric. Where a failure is located between the switch and the port of the storage controller, performance of several hosts may be affected. It is also possible that a user might configure the switch through zoning to use one switch port for the connection of logical paths from different hosts. In this case, if different hosts set forth different failure threshold requirements, there would be a conflict in threshold requirements among the several hosts sharing the same physical connection between the switch fabric and the storage controller.

SUMMARY OF THE INVENTION

In accordance with the present invention, a system for providing hosts with a capability to determine which threshold rule of a plurality of threshold rules to use based upon threshold consensus is set forth.

For example, the system would address a configuration case of several hosts sharing an output port of a fabric via zoning and that port being connected to a single port of a storage controller. If one host is executing lower priority jobs and its threshold is much higher than another host with higher priority jobs and a lower threshold, and the storage controller recognizes that several hosts are sharing the same storage controller port, the consensus will be to ignore the threshold of the first host and to use the threshold of the second host to prevent performance degradation in the system.

More specifically, in one embodiment, the invention relates to a method to minimize performance degradation during communication path failure in a data processing system. The data processing system comprises a plurality of host computers, a storage controller and a plurality of physical paths in communication with the host computer and the storage controller. The method comprises establishing a threshold communication path error rate via a failure threshold command for each of the plurality of host computers; determining whether the plurality of host computers share a common resource corresponding to respective threshold communication path error rates; performing a consensus operation on the respective threshold communication path error rates to identify a preferred threshold communication path error rate, the consensus operation enabling avoidance of performance degradation due to conflicting threshold communication path error rates; determining an (i)th actual communication path error rate for an (i)th physical communication path, wherein said (i)th physical communication path is one of said plurality of physical communication paths in communication with said host computer and said storage controller; and, discontinuing use of said (i)th physical communication path if said (i)th actual communication path error rate is greater than said preferred threshold communication path error rate.

In another embodiment, the invention relates to an apparatus to minimize performance degradation during communication path failure in a data processing system. The data processing system comprises a plurality of host computers, a storage controller and a plurality of physical paths in communication with the host computer and the storage controller. The apparatus comprises means for establishing a threshold communication path error rate via a failure threshold command for each of the plurality of host computers; means for determining whether the plurality of host computers share a common resource corresponding to respective threshold communication path error rates; means for performing a consensus operation on the respective threshold communication path error rates to identify a preferred threshold communication path error rate, the consensus operation enabling avoidance of performance degradation due to conflicting threshold communication path error rates; means for determining an (i)th actual communication path error rate for an (i)th physical communication path, wherein said (i)th physical communication path is one of said plurality of physical communication paths in communication with said host computer and said storage controller; means for discontinuing use of said (i)th physical communication path if said (i)th actual communication path error rate is greater than said preferred threshold communication path error rate.

In another embodiment, the invention relates to a data processing system comprising a plurality of host computers, a storage controller; a plurality of physical paths in communication with the plurality of host computers and the storage controller; and, a system for minimizing performance degradation during communication path failure in a data processing system. The system comprises instructions for establishing a threshold communication path error rate via a failure threshold command for each of the plurality of host computers; determining whether the plurality of host computers share a common resource corresponding to respective threshold communication path error rates; performing a consensus operation on the respective threshold communication path error rates to identify a preferred threshold communication path error rate, the consensus operation enabling avoidance of performance degradation due to conflicting threshold communication path error rates; determining an (i)th actual communication path error rate for an (i)th physical communication path, wherein said (i)th physical communication path is one of said plurality of physical communication paths in communication with said host computer and said storage controller; and, discontinuing use of said (i)th physical communication path if said (i)th actual communication path error rate is greater than said preferred threshold communication path error rate.

The above, as well as additional purposes, features, and advantages of the present invention will become apparent in the following detailed written description.

DETAILED DESCRIPTION

Referring now toFIG. 1, a data processing system100comprises data storage system110and one or more host computers112(also referred to as hosts). The storage system110is in communication with host computer112via physical communication paths114a,114b. Communication paths114a,114beach comprise a physical communication link, where that physical communication link can be configured to comprise up to 256 logical pathways. The illustrated embodiment shows two host computers. In other embodiments, data storage system110may be in communication with one or a plurality of host computers.

Although the system is described in terms of a storage control unit or “controller” and logical storage subsystems (LSS), the system may be implemented with other devices as well. The storage system110includes a storage system such as those available from International Business Machines under the trade designation IBM DS6000 or DS8000. In certain embodiments, the storage system110includes two storage controllers120aand120b, storage devices122, such as hard disk drivers (HDDs).

In certain embodiments, the storage system100can further include a communication fabric150. The communication fabric includes, for example, one or more switches152such as Fibre Channel (FC) switches. In certain embodiments, those one or more switches152may comprise one or more conventional router switches. The switches152interconnect the hosts112to the storage controller120via communication paths, using any type of known I/O interface, such as for example, a Fibre Channel, Infiniband, Gigabit Ethernet, Ethernet, TCP/IP, iSCSI, SCSI I/O interface, or one or more signal lines used by FC switch152to transfer information through, to, and from the storage controller120, and subsequently the plurality of data storage devices132.

The host112is coupled to the storage controller via appropriate connections (such as the fabric150) through which commands, queries, response and other information are exchanged. The storage controller120may be configured with one or more logical storage subsystems (LSSs)132(e.g., LSS0, LSS1, . . . LSS n). Each LSS is assigned one or more storage devices132. The logical storage subsystems132may be included within one or more logical paths.

The host computer112includes provision for execution of a failure threshold host command160. The failure threshold host command160enables a host112to provide path failure threshold rules to determine when a CHPid has reached a failed state condition. The failure threshold host command160includes parameters that contain the path failure threshold rules. The storage controller120uses the path failure threshold rules to determine when a CHPid has reached failed state. The threshold rules are maintained in storage controller CHPid information data structures.

More specifically, the failure threshold host command160enables the host112to have control over path failures detected by the storage controller. Furthermore, the failure threshold host command enables the host to decide to setup the threshold rules equally for all CHPid, equally for all CHPid that comprised a path group, differently for each CHPid, or a combination based on the number of paths available at the time of the paths failures.

The threshold rules defined by the failure threshold host command are based on the application performance desired. Therefore, the failure threshold host command enables a host to set forth tight threshold rules for high performance applications, as well as a different threshold rule for medium performance applications, and a very different threshold rule for applications that do not care about performance, but want the job to be completed. The threshold rule should indicate the number of path failures within a defined failure window that would trigger a CHPid failure state condition.

The host112could issue the new command as often as it needs based on the applications performance requirements. Once the new command completes successfully, the new path failure threshold rules would immediately take effect on the storage controller.

Each of the hosts112also includes a threshold consensus system162. The systems162enable the hosts112to determine which threshold rules, such as those set via the host failure threshold command160, to use to avoid performance degradation in the system100.

Referring toFIG. 2, the host computer112comprises a computer system, such as a mainframe, personal computer, workstation, and combinations thereof, including an operating system such as Windows, AIX, Unix, MVS, LINUX, etc. (Windows is a registered trademark of Microsoft Corporation; AIX is a registered trademark and MVS is a trademark of IBM Corporation; and UNIX is a registered trademark in the United States and other countries licensed exclusively through The Open Group.) The host computer112can further include a storage management program210. The storage management program in the host computer112may include the functionality of storage management type programs known in the art that manage the transfer of data to a data storage and retrieval system, such as the IBM DFSMS implemented in the IBM MVS operating system.

The host computer390comprises a plurality of channel path identifiers (“CHPids”) (e.g., CHPids216a,216b,216c,216d). CHPids216a,216b,216c,216d, are physically interconnected to respective host adapters within the storage controller120. The host computer112further comprises a communication path manager220, where the communication path manager220is in communication with each of CHPids216. In certain embodiments, the communication path manager220configures each of communication paths, to comprise up to 256 logical communication pathways.

The host computer112further comprises a memory230(e.g., a computer readable medium). In addition to the storage management program210, additional instructions232and a physical path failure log234are stored on the memory230. The instructions232and the storage management program210may be loaded executed by a processor240. The host computer390is interconnected with display device250. The display device250may integral with host computer112or may be remote from host computer112. For example, the display device250may be located in a system administrator's office.

Referring toFIG. 3, in certain embodiments, the data storage system110comprises a first cluster301A and a second cluster301B, where clusters301A and301B may be disposed within the same housing. Each cluster includes a host adapter portion302, a storage controller portion304and an input/output portion306.

The host adapter portion302comprises a plurality of host adapters (HAs)310, disposed in four host bays312, where each host bay312houses four host adapters310. The data storage system110can include fewer than 16 host adapters. Regardless of the number of host adapters disposed the data storage system110; each host adapter310comprises a shared resource that has equal access to processing elements (e.g., processor332) and cache elements (e.g., memory334) of the data storage system110.

Each host adapter310may comprise one or more Fibre Channel ports, one or more FICON ports, one or more ESCON ports, or one or more SCSI ports. Each host adapter310is connected to both clusters301A and301B through an interconnect bus such that each cluster can handle I/O from any host adapter310, and such that the storage controller portion of either cluster can monitor the communication path error rate for every communication path, physical and/or logical, interconnected with data storage system100.

Storage controller portion304includes processor332and memory (e.g., a computer readable medium)334. In certain embodiments, the memory334comprises random access memory. In certain embodiments, memory334comprises non-volatile memory. The storage controller portion304can further include instructions338as well as a physical communication path failure log339stored within the computer readable medium.

Storage controller portion304further comprises communication path manager336. In certain embodiments, communication path manager336comprises an embedded device disposed in storage controller portion304. In other embodiments, communication path manager336comprises computer readable program code (such as the instructions338) written to the memory334. The processor332executes instructions338to implement the steps of the method for minimizing performance degradation.

The I/O portion306comprises a plurality of device adapters350.

In certain embodiments, one or more host adapters, a storage controller portion304, and one or more device adapters, are packaged together on a single card disposed in a data storage system. Similarly, in certain embodiments, one or more host adapters, a storage controller portion304, and one or more device adapters, are disposed on another card disposed in the data storage system. In these embodiments, the storage system110includes two cards interconnected with a plurality of data storage devices.

In the embodiment shown inFIGS. 1-3, sixteen data storage devices are organized into two arrays (array A and array B). In other embodiments, a data storage system can include fewer (i.e., a single storage array) or more than two storage device arrays. Each storage array appears to a host computer as one or more logical devices (i.e., as a logical storage system (LSS)).

In certain embodiments, one or more of the data storage devices comprise a plurality of hard disk drive units, such as plurality of disk drive units132. In certain embodiments, the arrays A and B may utilize a RAID protocol. In certain embodiments, the arrays A and B may comprise what is sometimes referred to as a JBOD array, i.e. “Just a Bunch Of Disks” where the array is not configured according to RAID. As those skilled in the art will appreciate, a RAID (Redundant Array of Independent Disks) rank comprises independent disk drives configured in an array of disk drives to obtain performance, capacity and/or reliability that exceeds that of a single large drive.

In certain embodiments, the storage system110may be in communication with a service center (not shown). In certain embodiments, the storage system110provides information relating to system performance to service center at pre-determined time intervals. In certain embodiments, the storage system110immediately provides error messages to service center upon detection of a physical communication path performance degradation.

The data storage system includes provision for minimizing performance degradation during communication path failure in a data processing system.FIG. 4shows a flow chart of the operation for minimizing performance degradation during communication path failure via a failure threshold host command.

In step420, the method establishes a threshold communication path error rate via the failure threshold host command. In certain embodiments, the threshold communication path error rate of step420comprises the maximum number of I/O failures allowable during a specified time interval.

In certain embodiments, a threshold communication path error rate is set by the operator of each host computer. If data storage system110is in communication with a plurality of host computers, each of the host computers could specify a different and unique threshold communication path error rate via respective failure threshold host commands. In certain embodiments, the threshold communication path error rate of step420is set by the operator of the data storage system110or storage controller120.

In step430, the method selects an (i)th communication path, where (i) is initially set to one. In certain embodiments, step430is performed by a host computer such as host computer112. In certain embodiments, step430is performed by a communication path manager, such as communication path manager220, disposed in the host computer.

In certain embodiments, step430is performed by a storage controller such as storage controller120. In certain embodiments, step430is performed by a path management function the storage controller120. In certain embodiments, step430is performed by both clusters, such as clusters301A and301B, disposed in a data storage system112. In certain embodiments, step430is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step440, the method determines an (i)th actual communication path error rate for an (i)th physical communication path. In certain embodiments, step440is performed by the host computer112. In certain embodiments, step440is performed by a communication path manager220. In certain embodiments, step440is performed by the storage controller120. In certain embodiments, step440is performed by a path management function disposed in the storage controller. In certain embodiments, step440is performed by both clusters, such as clusters301A and301B, disposed in the data storage system110. In certain embodiments, step440is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step442, the method determines whether there are multiple hosts present within the system100. In certain embodiments, step442is performed by the host computer112. In certain embodiments, step442is performed by a communication path manager220. In certain embodiments, step442is performed by the storage controller120. In certain embodiments, step442is performed by a path management function disposed in the storage controller. In certain embodiments, step442is performed by both clusters, such as clusters301A and301B, disposed in the data storage system110. In certain embodiments, step440is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B. If there are multiple hosts present as determined at step442, the method proceeds to step444. If there are not multiple hosts present, the method proceeds to step450.

In step444, the method performs a threshold consensus operation. The threshold consensus operation determines which threshold rule of a plurality of threshold rules to use based upon threshold consensus. In certain embodiments, step444is performed by the host computer112. In certain embodiments, step444is performed by a communication path manager220. In certain embodiments, step444is performed by the storage controller120. In certain embodiments, step444is performed by a path management function disposed in the storage controller. In certain embodiments, step444is performed by both clusters, such as clusters301A and301B, disposed in the data storage system110. In certain embodiments, step444is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step450, the method determines if the (i)th actual communication path error rate of step440is greater than the threshold communication path error rate set via the failure threshold host command of step420. In certain embodiments, step450is performed by the host computer112. In certain embodiments, step450is performed by the communication path manager220. In certain embodiments, step450is performed by the storage controller120. In certain embodiments, step450is performed by a path management function disposed in the storage controller120. In certain embodiments, step450is performed by both clusters, such as clusters301A and301B. In certain embodiments, step450is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

If the method determines in step450that the (i)th actual communication path error rate of step440is greater than the threshold communication path error rate of step420, then the method transitions from step450to step460where the method discontinues using the (i)th physical communication path. In certain embodiments, the (i)th physical communication path may comprise up to 256 logical communication paths. It may be the case that only one of those 256 logical communication paths has failed. By discontinuing use of the entire physical communication path, the use of operable logical communication paths is also discontinued. However, discontinuing use of the (i)th physical communication path avoids expending host computer processing time to identify the one or more failed logical communication paths. Repair of the physical connection can be deferred until a more convenient time when such repair causes no impact on data storage system performance.

For example, the determination that an (i)th actual communication path error rate exceeds a threshold communication path error rate may be made at a first time, but the identification of and/or repair of the one or more degraded logical communication paths configured by the (i)th physical communication path can be made at a second time, where the time interval between the first time, i.e. failure detection, and the second time, i.e. degraded logical path determination and repair, can be hours. In certain embodiments, the time interval between the first time and the second time can be as great as 24 hours.

In certain embodiments, step460is performed by the host computer112. In certain embodiments, step460is performed by the communication path manager220disposed in the host computer112. In certain embodiments, step460is performed by the storage controller120. In certain embodiments, step460is performed by a path management function disposed in the storage controller120. In certain embodiments, step460is performed by both clusters, such as clusters301A and301B. In certain embodiments, step460is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step470, the method displays an error message on a display device. In certain embodiments, step470further comprises making a log entry to a physical communication path failure log, such as log234. In certain embodiments, step470further comprises providing the physical communication path failure log entry to a service center. In certain embodiments, step470is performed by the host computer112, where the error message is displayed on the display device250. In certain embodiments, step470is performed by a communication path manager220, where the error message is displayed on the display device250. In certain embodiments, step470is performed by the storage controller120where the error message is displayed on a display device disposed in a service center in communication with the storage controller. In certain embodiments, step470is performed by a path management function disposed in the storage controller, where the error message is displayed on a display device disposed in a service center in communication with the storage controller. In certain embodiments, step470is performed by both clusters, such as clusters301A and301B where if either cluster determines in step450that an (i)th actual communication path error rate of step440is greater than the threshold communication path error rate of step420, then an error message is displayed on a display device, such as a display device disposed in a service center in communication with the data storage system. In certain embodiments, step470is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B, where if either path management function determines in step450that an (i)th actual communication path error rate of step440is greater than the threshold communication path error rate of step420an error message is displayed on a display device, such as a display device disposed in a service center in communication with the data storage system.

In step480, the method determines if an actual communication path error rate has been determined for each of the plurality of communication paths. For example, if the plurality of communication paths of step410comprise (N) communication paths, then in step480the method determines if (i) equals (N). In certain embodiments, step480is performed by the host computer112. In certain embodiments, step480is performed by a communication path manager220. In certain embodiments, step480is performed by the storage controller120. In certain embodiments, step480is performed by a path management function disposed in the storage controller120. In certain embodiments, step480is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step480is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

If the method determines in step480that an actual communication path error rate has not been determined for each of the plurality of communication paths of the data storage system, then the method transitions from step480to step490where the method increments (i) by unity, and transitions from step490to step440and continues as described herein. In certain embodiments, step490is performed by the host computer112. In certain embodiments, step490is performed by a communication path manager220. In certain embodiments, step490is performed by the storage controller120. In certain embodiments, step490is performed by a path management function disposed in the storage controller120. In certain embodiments, step490is performed by both clusters, such as clusters301A and301B, disposed in a data storage system110. In certain embodiments, step490is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

If the method determines in step480that an actual communication path error rate has been determined for each of the plurality of communication paths, then the method transitions from step480to step430and continues as described herein. In certain embodiments, after determining in step480that an actual communication path error rate has been determined for each of the plurality of communication paths, the method transition to, and performs, step430after a time interval defined by the threshold communication path error rate of step420.

As an example, if the threshold communication path error rate is based upon a number of I/O failures per minute, then the method performs step430within about one minute after transitioning from step480. Similarly, if the threshold communication path error rate is based upon a number of I/O failures per hour, then the method performs step430within about one hour after transitioning from step480. If the threshold communication path error rate is based upon a number of I/O failures per day, then the method performs step430within about one day after transitioning from step480.

Referring toFIG. 5, the consensus system162facilitates finding a threshold consensus when multiple hosts are coupled to a single switch fabric. For example, the consensus system162would address a configuration case of several hosts sharing an output port (e.g., port16) of a fabric via zoning and that port being connected to a single port (e.g., port A) of a storage controller120. If one host is executing lower priority jobs and its threshold is much higher than another host with higher priority jobs and a lower threshold, and the storage controller recognizes that several hosts are sharing the same storage controller port, the consensus will be to ignore the threshold of the first host and to use the threshold of the second host to prevent performance degradation in the system.

Zoning is a partitioning of the switch fabric into smaller subsets to restrict interference, add security and to simplify management. Zoning can be applied to switch ports (i.e., port zoning) or end station names (i.e., name zoning). With port zoning, ports are restricted from communicating with unauthorized ports. Such an operation often applies to homogeneous storage networks (i.e., to a network where all switches correspond to a single vendor). Any device coupled to a specific physical switch port is provided access to the zone. Name zoning restricts access by the world wide node name of the device.

Referring toFIG. 6, a flow chart of the operation of a host threshold consensus system is shown. In operation, all threshold rules apply to the system100. In step610, the method analyzes a world wide node name (WWNN) element of each logical path data structure. In certain embodiments, step610is performed by the host computer112. In certain embodiments, step610is performed by a communication path manager220. In certain embodiments, step610is performed by the storage controller120. In certain embodiments, step610is performed by a path management function disposed in the storage controller120. In certain embodiments, step610is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step610is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step620, look to the logical path data structure definition for an element that identfies the host WWNN. When a logical path is established, the logical path data structures definition contains an element that identifies the host WWNN. Each host has a unique WWNN. In certain embodiments, step620is performed by the host computer112. In certain embodiments, step620is performed by a communication path manager220. In certain embodiments, step620is performed by the storage controller120. In certain embodiments, step620is performed by a path management function disposed in the storage controller120. In certain embodiments, step620is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step620is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step630, the method performs an analysis of the WWNN to determine whether more than one host is coupled to a particular zone such as a particular storage controller port. In certain embodiments, step630is performed by the host computer112. In certain embodiments, step630is performed by a communication path manager220. In certain embodiments, step630is performed by the storage controller120. In certain embodiments, step630is performed by a path management function disposed in the storage controller120. In certain embodiments, step630is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step630is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In step640, the method determines whether the new threshold is from a different host than the existing threshold host. In certain embodiments, step640is performed by the host computer112. In certain embodiments, step640is performed by a communication path manager220. In certain embodiments, step640is performed by the storage controller120. In certain embodiments, step640is performed by a path management function disposed in the storage controller120. In certain embodiments, step640is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step640is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

Next, in step650, the method compares the new threshold rule to the existing threshold rule. In certain embodiments, step650is performed by the host computer112. In certain embodiments, step650is performed by a communication path manager220. In certain embodiments, step650is performed by the storage controller120. In certain embodiments, step650is performed by a path management function disposed in the storage controller120. In certain embodiments, step650is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step650is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

Next, in step660, based upon the comparison, a determination is made regarding which host threshold rules to use. The determination is based upon which threshold rule would have the least performance impact on the system100. In certain embodiments, step660is performed by the host computer112. In certain embodiments, step660is performed by a communication path manager220. In certain embodiments, step660is performed by the storage controller120. In certain embodiments, step660is performed by a path management function disposed in the storage controller120. In certain embodiments, step660is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step660is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

Next, in step670, the new path host failure threshold rule immediately takes effect if that host threshold rule is by consensus the new threshold rule. In certain embodiments, step670is performed by the host computer112. In certain embodiments, step670is performed by a communication path manager220. In certain embodiments, step670is performed by the storage controller120. In certain embodiments, step670is performed by a path management function disposed in the storage controller120. In certain embodiments, step670is performed by both clusters, such as clusters301A and301B, disposed in a data storage system. In certain embodiments, step670is performed by a path management function disposed in cluster301A and/or by a path management function disposed in cluster301B.

In certain embodiments, individual steps recited inFIGS. 4 and 6may be combined, eliminated, or reordered.

In certain embodiments, the data storage system100includes instructions, residing in computer readable medium. The instructions may be executed by a processor to perform one or more of the disclosed steps. In other embodiments, the instructions may reside in any other computer program product, where those instructions are executed by a computer external to, or internal to, data storage system100to perform one or more of the disclosed steps. In either case, the instructions may be stored on computer readable medium comprising, for example, a magnetic information storage medium, an optical information storage medium, an electronic information storage medium, and the like. By “electronic storage media,” include, for example, one or more devices, such as a PROM, EPROM, EEPROM, Flash PROM, compactflash, smartmedia, and the like.

The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Moreover, although described above with respect to methods and systems, the need in the art may also be met with a computer program product containing instructions for executing non-device specific server commands in a storage control unit.

While the present invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. Furthermore, as used in the specification and the appended claims, the term “computer” or “system” or “computer system” or “computing device” includes any data processing system including, but not limited to, personal computers, servers, workstations, network computers, main frame computers, routers, switches, Personal Digital Assistants (PDAs), telephones, and any other system capable of processing, transmitting, receiving, capturing and/or storing data.