1. Field of the Invention
The present invention relates to a method, system, and program for considering remote end point performance to select a remote end point to use to transmit a task.
2. Description of the Related Art
A local storage controller may communicate updates to a remote storage controller over a network. The paths that the local storage controller may select comprise a local port on an adapter at the local storage controller and one remote port on an adapter at the remote storage controller. The local storage controller may establish a mirror relationship with volumes at the remote storage controller so that updates to local storage are sent to the remote storage controller to apply to the remote storage. Such dual or shadow copies are typically made as the application system is writing new data to a primary storage device. International Business Machines Corporation (IBM) provides Extended Remote Copy (XRC) and Peer-to-Peer Remote Copy (PPRC) solutions for mirroring primary volumes at secondary volumes at separate sites. These systems provide a method for the continuous mirroring of data to a remote site to failover to during a failure at the primary site from which the data is being continuously mirrored. Such data mirroring systems can also provide an additional remote copy for non-recovery purposes, such as local access at a remote site. In such backup systems, data is maintained in volume pairs. A volume pair is comprised of a volume in a primary (local) storage device and a corresponding volume in a secondary (remote) storage device that includes an identical copy of the data maintained in the primary volume.
Task response time on particular paths may suffer when the bandwidth is high and the distance between the local and primary storage controller is great. In such case, the primary storage controller may be able to send a large number of outstanding tasks due to the high bandwidth, which may overburden the remote storage controller and thereby negatively impact task response times. Low bandwidth between the primary and secondary controllers may also negatively impact task response time. Further, underperformance by the secondary controller due to outdated hardware or being overburdened by tasks from multiple storage controllers may further adversely impact the task response time to the local storage controller. Delayed response times to tasks may result in tasks timing out at the local storage controller that initiated the task.
Some of the current solutions to the above problems involve increasing the bandwidth, updating the secondary storage controller hardware to handle a greater number of tasks, and limiting the number of primary storage controllers that may transmit updates or writes to the secondary storage controller.
There is a need in the art for improved techniques for improving task response time in a network environment.
Provided are a method, system and program for considering remote end point performance to select a remote end point to use to transmit a task. A maximum outstanding tasks and a current outstanding tasks comprising a number of outstanding tasks transmitted over a network are provided. A task is received to transmit over the network. A determination is made as to whether the current outstanding tasks is less than the maximum outstanding tasks. The received task is transmitted over the network in response to determining that the current outstanding tasks is less than the maximum outstanding tasks.
The storage controllers 2a, 2b may comprise storage controllers or servers known in the art, such as the International Business Machines (IBM) Enterprise Storage Server (ESS)® (Enterprise Storage Server is a registered trademark of IBM). Alternatively, the storage controllers may comprise a lower-end storage server as opposed to a high-end enterprise storage server. Each storage controller 2a, 2b may include multiple clusters, each cluster comprising separate processing systems on different power boundaries and implemented in separate hardware components, such as separate motherboards. The network 18 may comprise a Storage Area Network (SAN), Local Area Network (LAN), Intranet, the Internet, Wide Area Network (WAN), peer-to-peer network, etc. The storages 4a, 4b may comprise an array of storage devices, such as a Just a Bunch of Disks (JBOD), Direct Access Storage Device (DASD), Redundant Array of Independent Disks (RAID) array, virtualization device, tape storage, flash memory, etc.
A storage controller 2a, 2b may maintain the path 40 and transmission 50 information for each port on a remote storage controller with which the local storage controller communicates over the network 18.
In one embodiment, the storage controller 2a may copy updates to volumes 12a in the storage 4a to corresponding volumes 12b in the storage 4b of the remote storage controller 2b. In such embodiments, a task comprises the transmission of a write to the storage controller 2b to mirror the update to the volumes 12a.
In response to receiving (at block 104) a task to transmit over the network 18 to a target system, e.g., remote storage controller, the I/O manager 10a, 10b selects (at block 106) one end point (port) 32a, 32b, 32c on one remote adapter at the target system to which tasks are directed, where the selected end point (port) has not yet been considered for selection for the current received task. If (at block 108) the current outstanding tasks 56 for the selected end point is less than a maximum outstanding tasks 58 for the end point, then the received task is transmitted (at block 110) on a path to the selected end point. There may be multiple paths from different local ports to the selected end point port. If multiple paths to the selected end point are available (i.e., paths whose remote port 46 (
If (at block 108) the current outstanding tasks 56 for the selected end point is not less than the maximum outstanding tasks 58 for the end point, then a determination is made (at block 114) as to whether there is another end point (port) to the target system that has not yet been considered. If there is another available end point, then control proceeds to block 106 to select and consider another port (end point). Otherwise, if there are no further remote ports on the target system to consider, then the I/O manager 10a, 10b delays (at block 116) transmission of the received task until the current outstanding tasks 56 for one end point (port) is less than the maximum outstanding tasks 54 for the end point.
In additional embodiments, if there are multiple available ports (end points) to the target system, then the I/O manager 10a, 10b may use load balancing or some other technique to select one of the available end points to use to communicate the received task to the target system.
If (at block 152) the task did not fail and if (at block 156) the response time for the completed task is less than a maximum response time, which may comprise an observationally determined acceptable response time commensurate with a quality of service guaranteed for users of the storage controllers 2a, 2b, then the I/O manager 10a, 10b increases (at block 158) the maximum outstanding tasks for the remote end point (port) to which the completed task was sent. This allows more tasks to be outstanding at the end point whose performance exceeds response time threshold expectations. If (at block 156) the response time for the completed task is not less than a maximum response time and if (at block 160) the maximum outstanding tasks 54 for the end point to which the task was sent is greater than the initial value, i.e., the maximum outstanding tasks 54 has been adjusted upward, then the I/O manager 10a, 10b decreases (at block 162) the maximum outstanding tasks 54 for the end point to which the completed task was sent. If (at block 160) the maximum outstanding tasks 54 for the end point to which the task was sent is not greater than the initial value, then control ends without making an adjustment downward to the maximum outstanding tasks 54 for the end point.
With the described embodiments, transmissions are not sent to a remote port if the maximum number of outstanding tasks already sent to that port by the local storage controller 2a, 2b exceeds a dynamic maximum threshold 54. This prevents tasks from continually being sent to an either underperforming remote target system or down an underperforming network path. Further, with the described embodiments, if the response time exceeds a maximum response time threshold, i.e., the response time is underperforming, then the maximum outstanding tasks threshold is decreased to reduce the load on that end point and to direct tasks to another end point that may be experiencing better performance. Moreover, if the response time performance for a completed task is better than the response time threshold, then the maximum outstanding tasks threshold may be increased to allow additional tasks to be outstanding to the over performing port (end point).
With the described embodiments, the performance of the remote end point with respect to the response time for tasks outstanding at the remote end point determines whether the particular remote end point at the target system may be selected to use for transmitting an additional task. In this way, different ports may be checked at the remote target system to determine a remote port to use for transmission that is performing at an acceptable level.
The described operations may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “computer readable medium”, where a processor may read and execute the code from the computer readable medium. A computer readable medium may comprise media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. The code implementing the described operations may further be implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.). Still further, the code implementing the described operations may be implemented in “transmission signals”, where transmission signals may propagate through space or through a transmission media, such as an optical fiber, copper wire, etc. The transmission signals in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The transmission signals in which the code or logic is encoded is capable of being transmitted by a transmitting station and received by a receiving station, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a computer readable medium at the receiving and transmitting stations or devices. An “article of manufacture” comprises computer readable medium, hardware logic, and/or transmission signals in which code may be implemented. A device in which the code implementing the described embodiments of operations is encoded may comprise a computer readable medium or hardware logic. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise suitable information bearing medium known in the art.
The operations of
The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the present invention(s)” unless expressly specified otherwise.
The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise.
The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.
The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise.
Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the present invention.
Further, although process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order practical. Further, some steps may be performed simultaneously.
When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the present invention need not include the device itself.
The illustrated operations of
The foregoing description of various embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.