Abstract:
A data storage system establishes streamlined data exchange paths between stored data and multiple system hosts, decreasing contention among the hosts and expediting host access to the data. First, one or more storage directors receive an initial host request to access a data block contained in part of a shared data resource. This part of the shared data resource may comprise a magnetic disk drive device, part of a physical device, a logical volume, a logical device or another data group. In response, the storage director performs a predetermined series of initial access steps to facilitate the data transfer. For example, the data block is copied from the shared data resource into a cache, if not already present therein. Then, a data path is formed between the host and the device containing the data block. Next, a fast path map is updated to indicate establishment of the data path between the host and the device containing the data block. The data block is subsequently exchanged between the cache and the host. When the storage director receives a subsequent request by the same host to access the same device, the storage director consults the fast path map and determines that a data path already exists between the host and the device. Accordingly, the requested data is exchanged between the host and the cache utilizing the previously established data path between the host and the device, avoiding many steps initially required to establish the data path.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention concerns multi-host data storage systems. More particularly, the invention concerns a data storage system that establishes streamlined data exchange paths between stored data and multiple system hosts, decreasing contention among the hosts and expediting each host&#39;s access to the data. 
     2. Description of the Related Art 
     One of the most difficult duties of a data storage system is efficiently providing multiple hosts with access to stored data. Many systems ensure consistency of data by using data locking. For instance, the first host obtaining access to that data may receive a lock on the resource containing the data, excluding access to that resource by other hosts until the operation is complete. 
     Under this approach, one problem is the &#34;thrashing&#34; that can occur when multiple hosts learn that a data resource is free, and each host configures an I/O channel for an upcoming data access, but the data resource is locked when the first host first begins to access the data. As a result, the channel I/O resources have wasted time in attempting to establish the ultimately unsuccessful access. 
     The above problems are compounded in environments where data resources are shared by a substantial number of hosts. One example is a company&#39;s common airline reservation data shared by reservation agents across the world. In systems such as these, storage engineers are constantly striving to improve the quickness with which hosts gain access to shared data resources in a multi-host data storage system. 
     SUMMARY OF THE INVENTION 
     Broadly, the present invention concerns a data storage system that establishes streamlined data exchange paths between stored data and multiple system hosts, expediting each host&#39;s access to the data and thereby decreasing contention among the hosts. 
     In one embodiment, the invention may be implemented to provide a method to establish streamlined data exchange paths between a storage device in a shared data resource and multiple system hosts. First, one or more storage directors receive an initial request by one of the multiple hosts to access a data block contained in the storage device. In response to the initial request, the storage director performs a predetermined series of initial access steps to facilitate the data transfer. For example, the storage director copies the data block into a cache, if not already present therein. The storage director also establishes a data path between the host and the data block in the storage device. Then, a fast path map is updated to indicate establishment of the data path between the host and the storage device containing the data block. Next, the data block is exchanged between the cache and the host, and the operation is complete. 
     Later, the storage director receives another request by the same host to access data in the same storage device. First, the storage director consults the fast path map and determines that the data path has been established between the host and the storage device. Having already established a data path between the device and the host, this data exchange operation can therefore be accelerated. In particular, the requested data is exchanged between the host and the cache, in accordance with the subsequent request, utilizing the data path between the host and the device. Many steps initially required to establish the data path between the device and the host can therefore be avoided. 
     In another embodiment, the invention may be implemented to provide an article of manufacture in the form of a data storage device, tangibly embodying a program of machine-readable instructions to establish streamlined data exchange paths between a shared data resource and multiple system hosts. In another embodiment, the invention may be implemented to provide an apparatus, including at least one storage director interposed between multiple hosts and a shared data storage resource, where the storage director includes a cache, a shared control array, and a processor programmed to establish streamlined data exchange paths between the shared data storage resource and multiple system hosts. 
     The invention affords its users with a number of distinct advantages. First, after a host initially accesses data stored in a data storage device of the invention, subsequent accesses by that host to the device are expedited since the data path has already been established. This faster access therefore helps reduce stalls and other conflicts among hosts competing for access to data. Furthermore, the invention provides an expedited data path while still retaining full error processing and busy-data processing. The invention may also take advantage of highly granular data locks, to avoid thrashing and other contention problems between competing hosts. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The nature, objects, and advantages of the invention will become more apparent to those skilled in the art after considering the following detailed description in connection with the accompanying drawings, in which like reference numerals designate like parts throughout, wherein: 
     FIG. 1 is a diagram of the hardware components and interconnections of an illustrative data storage system of the invention. 
     FIG. 2 is a perspective view of an illustrative article of manufacture embodied by a data storage device in accordance with the invention. 
     FIG. 3 is a flowchart showing a sequence for establishing a data exchange path in accordance with the invention. 
     FIGS. 4-6 are flowcharts showing sequences for additional processing in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Hardware Components &amp; Interconnections 
     Overall System 
     One aspect of the invention concerns a data storage system 100, which may be embodied by various hardware components and interconnections as described in FIG. 1. The system 100 conducts data exchange operations between multiple hosts 102 and a shared data storage resource 104. In response to host requests to read and write data, storage directors 106-107 establish data paths between the hosts and devices 110-112 of the shared data storage resource 104. As an example, the system 100 may comprise an IBM model 3990-6 storage system. 
     Hosts 
     The hosts 102 comprise units requesting access to data in the shared data storage resource 104. The hosts 102 may comprise digital computing devices such as mainframe computers, personal computers, storage controllers, microprocessors, standalone user terminals, executing application programs, or other suitable host machines or processes. In an exemplary embodiment, the hosts 102 may comprise IBM model ES-9000 mainframe computers employed in an airline reservation system. 
     Each host 102 is coupled to all storage directors 106-107. As an example, this coupling may be made by respective communication channels 109 such as IBM ESCON directors, which provide 18 Mb/second communication channels. 
     Shared Data Storage Resource 
     The hosts 102 seek access to data contained in the shared data storage resource 104. Preferably, the resource 104 comprises a non-volatile storage device such as one or more magnetic data storage disk drive devices 110-112. However, other suitable types of nonvolatile storage device may be used, such as magnetic tape, optical tape, optical disk, etc. Furthermore, instead of comprising physical devices, the devices 110-112 may represent &#34;logical devices&#34; or &#34;logical volumes&#34;, each being made up of one physical device, part of a physical device, or multiple physical devices. 
     Storage Director 
     The hosts 102 are coupled to the shared data storage resources 104 by one or more storage directors. In the illustrated example, two storage directors 106-107 are shown, providing the advantage of duplication, in case one storage director fails. Each storage director 106-107, as an example, may be embodied in an IBM model 3990-6 control unit, which contains two storage directors. 
     The storage directors 106-107 include a number of components. Depending upon the specific needs of the application, certain components may be embodied by known components of an IBM model 3990-6 control unit, for example. 
     Processor &amp; Memory Unit 
     The storage directors 106-107 include processors 114-115 to manage operations of the storage directors. Each processor is coupled to a program memory 118-119, preferably comprising fast access memory such as RAM. The program memories 118-119 contain programming instructions executable by the processors 114-115 to conduct operations of the storage directors 106-107. 
     Cache/NVS 
     In addition to the program memories 118-119, the storage directors include a number of other data storage features. For instance, each storage director also includes a cache. Particularly, the storage director 106 includes a fast access cache memory 122 (&#34;cache&#34;), whereas the storage director 107 includes a non-volatile storage unit 123) (&#34;NVS&#34;). Preferably, the cache 122 comprises RAM, and the NVS 123 comprises RAM with a battery back-up (not shown). The NVS 123) is operated to mirror contents of the cache 122, providing redundancy in case the storage director 106 fails. In the interest of efficiency, the NVS 123 preferably mirrors only cache data that differs from data stored in the devices. 
     Shared Control Array (&#34;SCA&#34;) 
     Another data storage feature of the storage directors 106-107 is provided by the shared control arrays 126-127 (&#39;&#34;SCAs&#34;). The SCAs 126-127 comprise data storage regions that maintain statistical data relating to the operation of the storage directors 106-107. Each storage director&#39;s SCA includes a number of different sub-components, which are mirrored in the SCA of the other storage director. 
     The SCA 126 includes a device block 126a, a fast path map 126b, a directory 126c, a unit address control block (&#34;UACB&#34;) 126d, and a physical device control block (&#34;PDCB&#34;) 127e. Similar components are also present in the SCA127; a specific description of these components is not necessary in view of the following detailed description of the features of the SCA 126. 
     Device Block 
     The device block 126a indicates whether any one or more of the devices 110-112 is unavailable. Such unavailability may result from a number of reasons , such as device failure. If desired, the device block 126a may be incorporated into the UACB 126d. 
     Fast Path Map 
     The fast path map 126b contains one &#34;indicator&#34; for each possible matching of one host 102 and one device 110-112. Each indicator may, for example, comprise a binary indicator such as a bit of data; in this embodiment, the fast path map 126b comprises a bit map. The indicator shows whether a &#34;fast path&#34; has been established for each host-device combination. As discussed in greater detail below, the fast path provides a mode of expedited host-device data transfer. 
     In an exemplary embodiment, the fast path map 126b may contain one-hundred-twenty-eight bits for each of the devices 110-112, thereby facilitating matching of one-hundred-twenty-eight possible hosts to each of the devices 110-112. 
     Directory 
     The directory 126c lists all blocks of data from the devices 110-112 that are present in the cache 122. Each data block may comprise any convenient unit of data. For instance, if the devices 110-112 comprise magnetic storage disks, each data block may comprise a track of data. For each cached data block, the director 126c contains a flag indicating whether that data block is currently being used. The flag, for example, may comprise a binary digit that is set to zero when the data block is not being used, and set to one when the data block is being used. 
     UACB 
     The UACB 126d is a memory register that can be activated to lock logical parts of the shared data storage resource 104 during data exchange with one of the hosts 102. The UACB may employ the operating principles of known UACBs, such as those present in the IBM model 3990-6 control unit. As described in greater detail below, however, the present invention advantageously avoids the need to lock large parts of the data resource 104, thereby reducing thrashing and contention among the hosts 102 for data stored in the resource 104. 
     PDCB 
     The PDCB 126e is a memory register that can be activated to lock one of the physical devices 110-112 for various conditions, such as read miss, destage, and other operations. The PDCB, like the UACB, may be provided by known devices, such as the PDCB of the IBM model 3990-6 control unit. 
     Other Components 
     The SCAs 126-127 also include a number of other components (not shown), many of which may be embodied by components of known SCAs. Depending upon the needs of the application, the SCAs 126-127 may be embodied by known SCAs such as those used in the IBM model 3990-6 control unit. Further details required to implement the SCAs 126-127 are considered to be within the abilities of an ordinarily skilled artisan having the benefit of this disclosure and knowledge of the well established principles of operating shared memory such as the IBM model 3990-6. 
     OPERATION 
     In addition to the various hardware embodiments described above, a different aspect of the invention concerns a method for establishing streamlined data exchange paths between multiple system hosts and stored data, decreasing contention among the hosts and expediting each host&#39;s access to the data. Such a method may be implemented, for example, by operating the processors 114-115 to execute a sequence of machine-readable instructions. 
     Data Storage Media 
     These instructions may reside in various types of data storage media. In this respect, one aspect of the present invention concerns an article of manufacture, comprising a data storage medium tangibly embodying a program of machine-readable instructions executable by a digital data processor to perform method steps to establish streamlined data exchange paths between stored data and multiple system hosts, decreasing contention among the hosts and expediting each host&#39;s access to the data. 
     This data storage medium may comprise, for example, RAM contained within the storage directors 106-107, such as the program memories 118-119. Alternatively, the instructions may be contained in another data storage medium, such as a magnetic data storage diskette 200 (FIG. 2). Whether contained in the storage directors 106-107 or elsewhere, the instructions may instead be stored on another type of data storage medium such as DASD storage (e.g. a conventional &#34;hard drive&#34; or a RAID array), magnetic tape, electronic read-only memory (e.g. ROM), optical storage device (e.g. WORM), paper &#34;punch&#34; cards, or other data storage media. In an illustrative embodiment of the invention, the machine-readable instructions may comprise lines of compiled C language code. 
     Overall Sequence of Operation 
     FIG. 3 shows a sequence of method steps 300 to illustrate one example of the method aspect of the present invention. For ease of explanation, but without any limitation intended thereby, the sequence 300 is described in the context of the data storage system 100 described above. Since actions in the storage director 106 are reproduced in the storage director 107, the present discussion is limited to the director 106, for ease of illustration. 
     After the steps 300 are initiated in task 302, one of the hosts 102 in task 304 issues a data access request to the storage directors 106-107. This data access request seeks to exchange a data block with one of the devices 110-112. As part of task 304, the storage director 106 may identify an appropriate one of the devices 110-112 to perform the data transfer: the device 110-112 containing the data block in the case of a Read operation, or a device 110-112 with sufficient empty storage space in the case of a Write operation. Next, query 306 consults the fast path map 126b to determine whether the fast path mode has been established between the requesting host and the previously specified device 110-112. If so, the data may be exchanged using the fast path. Accordingly, query 306 proceeds to query 328, which is discussed in greater detail below. If the fast path mode has not been established for the relevant host-device combination, fast path data transfer is not available. Accordingly, query 306 proceeds to task 308 to use a main path for the data transfer, and in the process to establish a fast path for subsequent transfers. 
     Main Path 
     As mentioned above, task 308 establishes the main path for the requested data transfer. In establishing the main path, task 310 first determines whether the previously specified device 110-112 is in use. If so, the data access may be delayed, for example by performing a &#34;channel wait&#34;, a known operation. If the device is not in use, the UACB 126d is configured to lock the device containing the requested data. 
     Next, a parameter checking step 312 is performed. This step checks various parameters associated with the data transfer request. For instance, this task determines whether certain hardware or software &#34;exceptions&#34; have occurred, such as sense record offloads, hardware failures, or other known exceptions. Task 312 may also involve conducting validity checking regarding the CCHH address, track location, and record number, and other aspects of the data exchange request. Next, in task 314, the storage director 106 checks the hardware resources, for example, to determine whether the cache 122 is operational, the specified device 110-112 is operational, the NVS 123 is in a ready state, etc. 
     After task 314, task 316 determines whether (in the case of a Read operation) the requested data block is present in the cache 122; if not, space in the cache 122 is allocated and the data is staged. Following task 316, task 318 prepares the system 100 for error recovery in case the upcoming data transfer encounters problems. This involves steps such as establishing retry counts, establishing retry routines, and other steps, some or all of which may be known. 
     Many of the foregoing steps 310-318 for establishing the main path may employ operations that are generally known in conjunction with the IBM model 3990-6 control unit. After the main path is established in task 308, task 320 conducts the actual data transfer. As discussed above, the UACB 126d has already been activated to lock the appropriate one of the devices 110-112 prior to the data transfer. After the data transfer of task 320, the UACB 126d is configured to unlock the device specified 110-112, enabling the other hosts 102 to once again access the device. 
     Next, task 322 enables the fast path by configuring the fast path map 126b. In particular, the appropriate fast path map indicator is set to establish a fast path between the requesting host and the specified device 110-112. In one embodiment of the invention, task 322 may automatically enable all paths between the requesting host 102 and the device 110-112, if multiple paths exist from that host to the specified device. 
     After task 322, the device used in the transfer is freed by relinquishing the UACB 126d for that device. Then, the program ends in task 326. 
     Fast Path 
     There are certain advantages to performing data exchanges when a fast path has been established. Chiefly, less time is required to re-establish the data path, and the data exchange is therefore accomplished more quickly. As mentioned above, the fast path steps begin when query 306 finds that the fast path has been established. Furthermore, advantages of the main path are still available if needed, such as error recovery and other benefits as discussed below. 
     After query 306 recognizes that the fast path has been established between host and device, query 328 determines whether the data transfer operation can be completed without any cache problems. Some of these problems include, for example, (1) the requested data being missing from the cache 122 (in the case of a Read operation), (2) the requested data block being used by another host. If such an error exists, additional processing steps 332 are performed, as discussed in greater detail below. 
     If no cache errors exist, the requested data block is temporarily flagged as being &#34;busy&#34; in the directory 126c in task 334. This effectively locks the data block for exclusive access by the requesting host. However, due to the highly granular nature of this lock, it is unlikely to impede data access requests of other hosts. After marking the data block &#34;busy&#34;, the requested data transfer operation is executed in task 334. After task 334, query 335 determines whether any exceptions occurred during the data transfer. If such an error exists, additional processing steps are performed in task 332, as discussed above. If no exception has occurred, however, then certain follow-up steps are performed in task 336. Namely, the &#34;busy&#34; flag is cleared in the directory 126c. Furthermore, some or all of the parameter checking tasks of step 312 may be performed. Some of these steps, for example, may include verifying cache fastwrite IDs, record numbers, and other known parameters. After task 336, the routine 300 ends in task 326. 
     Error and Busy-Data Processing 
     As discussed above, events such as cache error and busy-data conditions are processed in task 332 (FIG. 3). FIGS. 4-6 illustrate different routines 400, 500, and 600 to illustrate the operation of task 332 in greater detail. For ease of explanation, but without any limitation intended thereby, the sequences 400, 500, and 600 are described in the context of the data storage system 100 described above. 
     First Example 
     After the sequence 400 is initiated in task 402, the fast path indicator 126b is reset in task 406, removing fast path status for the path between the requesting host 102 and the requested device 110-112. After task 406, task 408 issues an abort operation, and reports the failure to the requesting host. After task 406, the routine 400 ends in task 412. 
     When the host retries (not shown) the aborted operation at some later time, the main path will be used, since the fast path indicator 126b has been disabled for the current hostdevice path using the main path, although slower, provides many advantages for some operations, such as employing the full scope of retry capabilities of the storage director 106. 
     Second Example 
     FIG. 5 depicts another example of an error/read-miss recovery sequence 500 according to the invention. After the steps 500 are initiated in task 502, task 504 establishes a main path for the requested data transfer. The main path is established by performing step 308 (FIG. 3), as discussed above. After task 504, the fast path indicator 126b is reset in task 506, removing fast path status for the path between the requesting host 102 and the requested device 110-112. 
     After task 506, task 508 restarts the storage director 106 in main path mode. In task 510, the data transfer is completed using the main path mode. After task 510, the routine 500 ends in task 512. 
     Third Example 
     FIG. 6 depicts another example of an error/read-miss recovery sequence 600 according to the invention. After the steps 600 are initiated in task 602, task 604 queues the steps needed to establish the main path (e.g., steps 310-318, FIG. 3) and the steps required to transfer the data under main path mode. The storage director 106 sequentially processes the queued items, along with other tasks. When the storage director 106 completes all operations of higher priority, the queued work is executed, as shown in task 606. As discussed above, this queued work includes (1) configuring the main path between the requesting host 102 and the requested device 110-112, and (2) transferring the requested data under the main path. After task 606, the sequence 600 ends in task 608. 
     Selective Path Deactivation 
     One advantage of the data storage system 100 is that certain data paths may be selectively deactivated in accordance with errors that occur in the system 100. For instance, if a global resource such as the cache 122 fails, all host-cache fast paths may be easily deactivated by configuring the fast path map 126b accordingly. Similarly, if a particular device 110-112 fails or goes off-line, all paths to/from that device may be deactivated using the fast path map 126b. Other possibilities, for example, include deactivating all fast paths to/from a particular host 102, or deactivating a particular host-device path. 
     OTHER EMBODIMENTS 
     While there have been shown what are presently considered to be preferred embodiments of the invention, it will be apparent to those skilled in the art that various changes and modifications can be made herein without departing from the scope of the invention as defined by the appended claims.