This invention relates to an apparatus and method to provide an operation to an information storage device.
Data storage and retrieval systems are used to store information provided by one or more host computer systems. Such data storage and retrieval systems receive requests to write information to one or more information storage devices, and requests to retrieve information from those one or more information storage devices. Upon receipt of a write request, the system stores information received from a host computer in a data cache. In certain implementations, a copy of that information is also stored in a nonvolatile storage device. Upon receipt of a read request, the system recalls information from the one or more information storage devices and moves that information to the data cache. Thus, the system is continuously moving information to and from one or more information storage devices.
What is needed is a protocol conversion device which is capable of receiving an operation in a first communication protocol, where that first communication protocol supports one or more variable attributes, providing that operation in a second communication protocol to an information storage device, where that second communication protocol does not support the variable attribute, and implementing the variable attribute when providing the operation using the second communication protocol.
Applicants' invention includes an apparatus and method to provide an operation to an information storage device. The method supplies an information storage device and a protocol conversion device capable of receiving an operation in a first communication protocol comprising a variable attribute, and providing that operation to an information storage device in a second communication protocol, where that second communication protocol does not support the variable attribute.
The method provides an operation to the protocol conversion device using the first communication protocol, and determines if the variable attribute is configured in that operation. If the method determines that the variable attribute is not configured in the operation, then the method provides the operation to the information storage device using the second communication protocol. If the method determines that the variable attribute is configured in the operation, then the method implements that variable attribute when providing the operation to the information storage device using the second communication protocol.
The invention will be better understood from a reading of the following detailed description taken in conjunction with the drawings in which like reference designators are used to designate like elements, and in which:
This invention is described in preferred embodiments in the following description with reference to the Figures, in which like numbers represent the same or similar elements. The invention will be described as embodied in an information storage and retrieval system which includes two clusters, a plurality of host adapter ports, a plurality of device adapter ports, and a data cache. The following description of Applicants' method to provide an operation receiving in a first communication protocol to an information storage device using a second communication protocol is not meant, however, to limit Applicants' invention to data processing applications, as the invention herein can be applied to communication protocol conversion in general.
Referring now to
Host computer 390 comprises a computer system, such as a mainframe computer, 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.) In certain embodiments, host computer 390 further includes a storage management program. The storage management program in the host computer 390 may 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.
In certain embodiments, Applicants' information storage and retrieval system 100 includes a first plurality of host adapter ports 101A which includes adapters 102-105 and 107-110; and a second plurality of host adapter ports 101B which includes adapters 112-115 and 117-120. In other embodiments, Applicants' information storage and retrieval system includes fewer than 16 host adapter ports. Regardless of the number of host adapter ports disposed in any embodiments of Applicants' system, each of those host adapter ports comprises a shared resource that has equal access to both central processing/cache elements 130 and 140.
Each host adapter utilizes a host communication protocol, such as for example Fibre Channel, Ficon, ESCON, SCSI, iSCSI, Infiniband, and the like. Each host adapter is connected to both clusters through interconnect bus 121 such that each cluster can handle I/O from any host adapter. Internal buses in each subsystem are connected via a Remote I/O bridge 155/195 between the processor portions 130/140 and I/O portions 160/170, respectively.
Processor portion 130 includes processor 132 and cache 134. In certain embodiments, processor portion 130 further includes memory 133. In certain embodiments, memory device 133 comprises random access memory. In certain embodiments, memory device 133 comprises non-volatile memory.
Processor portion 140 includes processor 142 and cache 144. In certain embodiments, processor portion 140 further includes memory 143. In certain embodiments, memory device 143 comprises random access memory. In certain embodiments, memory device 143 comprises non-volatile memory.
I/O portion 160 comprises a plurality of device adapter ports 161 which in the illustrated embodiment of
I/O portion 170 comprises a plurality of device adapter ports 171 which in the illustrated embodiment of
In certain embodiments of Applicants' system, one or more host adapter ports, processor portion 130, and one or more device adapter ports, are disposed in a first controller disposed in Applicants' information storage and retrieval system. Similarly, in certain embodiments, one or more host adapter ports, processor portion 140, and one or more device adapter ports, are disposed in second controller disposed in Applicants' information storage and retrieval system. In these embodiments, Applicants' system 100 includes two controllers interconnected with a plurality of data storage devices.
In the illustrated embodiment of
In certain embodiments, one or more of the data storage devices comprise a plurality of hard disk drive units. In certain embodiments, arrays 180 and 190 utilize a RAID protocol. In other embodiments, arrays 180 and 190 comprise what is sometimes called a JBOD array, i.e. “Just a Bunch Of Disks” where the array is not configured according to RAID. In still other embodiments, arrays 180 and 190 comprise what is sometimes called a SBOD array, i.e. “Switched Bunch Of Disks,” where those arrays are not configured according to RAID.
The illustrated embodiment of
Referring now to
In certain embodiments, controller 210 comprises a RAID controller. In certain embodiments, communication link 215 comprises a Fibre Channel Arbitrated Loop. In the illustrated embodiment of
The loop structure shown in
In some embodiments the conversion device, includes elements to perform communication protocol conversion from a first communication protocol to a second communication protocol. In other embodiments, the conversion device includes elements to perform both sector size conversion and a conversion from a first communication protocol to a second communication protocol. In some embodiments the first communication protocol is a Fibre Channel Protocol and the second communication protocol is Serial ATA or ATA. In other embodiments, the first communication protocol is Serial Attached SCSI and the second communication protocol is Serial ATA or ATA.
In all embodiments, Applicants' protocol conversion device is capable of communication protocol conversion. References herein to communication protocol conversion device include Applicants' devices capable of communication protocol conversion, and also to Applicants' devices capable of sector format conversion and communication protocol conversion.
Each storage device is interconnected to communication link 215 by a communication protocol conversion device, such as devices 220, 240, 260, and 280, which interconnect storage devices 230, 250, 270, and 290, respectively, to communication loop 215. Communication protocol conversion device 220 interconnects storage device 230 to loop 215 by communication link 232.
Communication link 225 interconnects communication protocol conversion device 220 and communication protocol conversion device 240. Communication protocol conversion device 240 interconnects storage device 250 with loop 215 by communication link 252. Communication link 245 interconnects communication protocol conversion device 240 and communication protocol conversion device 260. Communication protocol conversion device 260 interconnects storage device 270 to loop 215 by communication link 272.
Communication link 265 interconnects communication protocol conversion device 260 and communication protocol conversion device 280. Communication protocol conversion device 280 interconnects storage device 290 to loop 215 by communication link 292. Communication link 285 interconnects communication protocol conversion device 280 and communication loop 215. Communication links 232, 252, 272, and 292, are individually selected from a native drive line such as ATA or S-ATA.
Each communication protocol conversion device includes a data buffer, such as data buffers 222, 242, 262, and 282. Each communication protocol conversion device further includes a processor, such as processor 224, 244, 264, and 284. Each communication protocol conversion device further includes a queue, such as queue 228, 248, 268, and 288. Each communication protocol conversion device further includes a persistent memory, such a persistent memory 226, 246, 266, and 286. By persistent memory, Applicants mean non-volatile memory, i.e. memory that survives a loss of utility power. In certain embodiments, nonvolatile memory devices 226, 246, 266, and 286, are each individually selected from the group which includes one or more EEPROMs (Electrically Erasable Programmable Read Only Memory), one or more flash memories, battery backup RAM, hard disk drive, combinations thereof, and the like.
In designs that implement a protocol conversion device, the two base protocols may have different functionality built into the base architecture such that after protocol conversion occurs some of the feature/functions comprising a variable attribute that is architected in one protocol have no equivalent in the other protocol. Once such case is enabling a priority scheme to be implemented on information storage devices.
Where a transport layer protocol has a priority scheme available that could be implemented if it were attached to a device native to that protocol, that priority scheme may not be available when using a non-native device. For example, if a variable attribute is available in a Fibre Channel Protocol and is implemented for Fibre Channel devices, then the Protocol and the device interoperate to implement the variable attribute, such as a priority scheme.
If a variable attribute is available in a Fibre Channel Protocol and a Fibre Channel transport layer is used in combination with a protocol conversion device interconnected to a Serial ATA device where the variable attribute is not implemented, then using prior art apparatus and methods the variable attribute cannot be used. Applicants' apparatus and method includes a protocol conversion device, and method using same, that manages the implementation of the otherwise unsupported variable attribute after the protocol conversion process.
In step 320, Applicants' method provides an information storage device capable of receiving operations using the second communication protocol but not the first communication protocol. Step 320 further includes interconnecting Applicants' communication protocol conversion device, such as device 220 (
In step 330, Applicants' communication protocol conversion device receives an operation using the first communication protocol, where that operation is directed to the interconnected information storage device. In certain embodiments, the operation of step 330 comprises a write command. In certain embodiments, the operations of step 330 comprises a read command. In certain embodiments, the operation of step 330 comprises a copy command.
In step 340, Applicants' communication protocol conversion device converts the operation from the first communication protocol to the second communication protocol. In certain embodiments, step 340 is performed by a processor, such as processor 222 (
In step 350, Applicants' communication protocol conversion device determines if any variable attributes supported and set in the first communication protocol are not supported in the second communication protocol. In certain embodiments, step 350 is performed by a processor, such as processor 222 (
If Applicants' communication protocol conversion device determines in step 350 that a variable attribute was not set in the first communication protocol, then the method transitions from step 350 to step 360 wherein the communication protocol conversion device provides the command to the information storage device using the second communication protocol. In certain embodiments, step 360 is performed by a processor, such as processor 222 (
Alternatively, if Applicants' communication protocol conversion device determines in step 350 that a variable attribute was set in the first communication protocol but is not supported in the second communication protocol, then the method transitions from step 350 to step 370 wherein Applicants' communication protocol conversion device implements that variable attribute when providing the command to the information storage device using the second communication protocol. In certain embodiments, step 370 is performed by a processor, such as processor 222 (
In certain embodiments, Applicants' method transitions from step 320 to step 410 (
In certain embodiments, (N) is two. In certain embodiments, (N) is three. In certain embodiments, (N) is greater than three.
In certain embodiments, the plurality of operations of step 410 are generated by a host computer, such as host computer 390 (
In step 420, Applicants' protocol conversion device receives the plurality of operations. In certain embodiments, step 420 further includes providing the plurality of operations from a host computer to Applicants' protocol conversion device. In certain embodiments, step 420 further includes providing the plurality of operations by a system controller, such as controller 210, from a data cache, such as cache 134, to Applicants' protocol conversion device.
Applicants' method transitions from step 420 to step 430 wherein the method enqueues the plurality of operations received in step 420 in a queue, such as queue 228, disposed in Applicants' protocol conversion device, such as device 220 (
In step 440, Applicants' method selects one of the (N) priority levels. In certain embodiments, step 440 includes selecting initially the highest priority level. In certain embodiments, step 440 further comprises selecting the (N)-(x) priority level, wherein (x) is set to 0. In certain embodiments, step 430 is performed by a processor, such as processor 222 (
Applicants' method transitions from step 440 to step 445 wherein the method determines if the selected priority level (N)-(x) is greater than 0. In certain embodiments, step 445 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 445 that (N)-(x) is not greater than 0, then the method transitions from step 445 to step 455 wherein the method provides to the interconnected information storage device, such as device 230, each of the plurality of operations from the queue, such as queue 228, disposed in the protocol conversion device, such as device 220, interconnecting the information storage device and the system controller, such a controller 210. In certain embodiments, step 455 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 445 that (N)-(x) is greater than 0, then the method transitions from step 445 to step 450 wherein the method determines if the queue includes any operations having the selected priority level of (N)-(x). In certain embodiments, step 450 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 450 that the queue does not include one or more operations having the selected priority level of (N)-(x), then the method transitions from step 450 to step 490 wherein the method increments (x). In certain embodiments, step 490 includes setting (x) equal to (x)+1. In certain embodiments, step 490 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 450 that the queue includes one or more operations having the selected priority level of (N)-(x), then the method transitions from step 450 to step 460 wherein Applicants' method provides to the information storage device one operation having the selected priority level of (N)-(x). In certain embodiments, step 460 is performed by a processor, such as processor 222 (
Applicants' method transitions from step 460 to step 465 wherein the method determines if there are any enqueued operations having a priority greater than the selected priority level of (N)-(x). In certain embodiments, step 465 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 465 that there are any enqueued operations having a priority greater than the selected priority level of (N)-(x), then the method transitions from step 465 to step 470 wherein the method provides to the data storage device those enqueued operations having a priority greater than the selected priority level of (N)-(x). In certain embodiments, step 470 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 465 that there are no enqueued operations having a priority greater than the selected priority level of (N)-(x), then the method transitions from step 465 to step 475 wherein the method determines if there are any enqueued operation having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective. In certain embodiments, step 475 is performed by a processor, such as processor 222 (
QOS objectives comprise, for example, a defined time interval wherein the system should complete the operation. In the event the protocol conversion device continuously receives high priority operations, an enqueued lower priority operation may remain enqueued for a time interval exceeding the QOS time interval.
If Applicants' method determines in step 475 that there are enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective, then the method transitions from step 475 to step 480 wherein the method provides those enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective. In certain embodiments, step 480 is performed by a processor, such as processor 222 (
Applicants' method transitions from step 480 to step 485 and continues as described herein. If Applicants' method determines in step 475 that there are no enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective, then the method transitions from step 475 to step 485 wherein the method determines if there are additional enqueued operations having the selected priority level (N)-(x). In certain embodiments, step 485 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 485 that there are additional enqueued operations having the selected priority level (N)-(x), then the method transitions from step 485 to step 460 and continues as described herein. If Applicants' method determines in step 485 that there are no additional enqueued operations having the selected priority level (N)-(x), then the method transitions from step 485 to step 490 and continues as described herein.
In certain embodiments of Applicants' invention, Applicants' apparatus and method implement two variable attributes set in the first communication protocol, but not supported in the second communication protocol. For example, in certain embodiments Applicants' method transitions from step 320 (
In certain embodiments, (N) is two. In certain embodiments, (N) is three. In certain embodiments, (N) is greater than three.
In certain embodiments, the plurality of operations of step 510 are generated by a host computer, such as host computer 390 (
In step 520, Applicants' protocol conversion device receives the plurality of operations. In certain embodiments, step 520 further includes providing the plurality of operations from a host computer to Applicant's protocol conversion device. In certain embodiments, step 520 further includes providing the plurality of operations by a system controller, such as controller 210, from a data cache, such as cache 134, to Applicants' protocol conversion device.
In step 525, Applicants' method generates an operation number for each of the plurality of operations of step 510. In certain embodiments, step 525 is performed at the time each of the plurality of operations is generated, for example in step 510. In certain embodiments, the plurality of operation numbers of step 525 is generated by a host computer, such as host computer 390 (
In certain embodiments, the plurality of operation numbers is generated by Applicants' protocol conversion device. In certain of these embodiments, each operation number comprises a time stamp representing the time Applicants' protocol conversion device received that operation. In certain embodiments, step 525 is performed by a processor, such as processor 222 (
Applicants' method transitions from step 525 to step 530 wherein the method enqueues the plurality of operations received in step 520 in a queue, such as queue 228, disposed in Applicants' protocol conversion device, such as device 220 (
In step 540, Applicants' method selects one of the (N) priority levels. In certain embodiments, step 540 includes selecting initially the highest priority level. In certain embodiments, step 540 further comprises selecting the (N)-(x) priority level, wherein (x) is set to 0. In certain embodiments, step 540 is performed by a processor, such as processor 222 (
Applicants' method transitions from step 540 to step 545 wherein the method determines if the selected priority level (N)-(x) is greater than 0. In certain embodiments, step 545 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 545 that (N)-(x) is not greater than 0, then the method transitions from step 545 to step 555 wherein the method provides to the interconnected information storage device, such as device 230, the plurality of operations, in ascending order of the operation number, from the queue, such as queue 228, disposed in the protocol conversion device, such as device 220, interconnecting the information storage device and the system controller, such a controller 210. In certain embodiments, step 555 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 545 that (N)-(x) is greater than 0, then the method transitions from step 545 to step 550 wherein the method determines if the queue includes any operations having the selected priority level of (N)-(x). In certain embodiments, step 550 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 550 that the queue does not include one or more operations having the selected priority level of (N)-(x), then the method transitions from step 550 to step 590 wherein the method increments (x). In certain embodiments, step 590 includes setting (x) equal to (x)+1. In certain embodiments, step 590 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 550 that the queue does include one or more operations having the selected priority level of (N)-(x), then the method transitions from step 550 to step 560 wherein the method provides to the interconnected information storage device from the queue one operation having the selected priority level (N)-(x) and the smallest operation number and/or earliest time stamp. In certain embodiments, step 560 is performed by a processor, such as processor 222 (
In certain embodiments, in step 560 the operation comprising the selected priority level and the smallest operation number is provided. In certain embodiments, in step 560 the operation comprising the selected priority level and the earliest time stamp is provided.
Applicants' method transitions from step 560 to step 565 wherein the method determines if there are any enqueued operations having a priority greater than the selected priority level of (N)-(x). In certain embodiments, step 565 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 565 that there are enqueued operations having a priority greater than the selected priority level of (N)-(x), then the method transitions from step 565 to step 570 wherein the method provides to the data storage device those enqueued operations having a priority greater than the selected priority level of (N)-(x), in order of the operation numbers associated with those higher priority operations. In certain embodiments, step 570 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 565 that there are no enqueued operations having a priority greater than the selected priority level of (N)-(x), then the method transitions from step 565 to step 575 wherein the method determines if there are any enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective. In certain embodiments, step 575 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 575 that there are enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective, then the method transitions from step 575 to step 580 wherein the method provides those enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective, by order of operation number. In certain embodiments, step 580 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 575 that there are no enqueued operations having a priority less than the selected priority level of (N)-(x), and which comprise a compromised Quality of Service (“QOS”) objective, then the method transitions from step 575 to step 585 wherein the method determines if there are additional enqueued operations comprises the selected priority level (N)-(x). In certain embodiments, step 585 is performed by a processor, such as processor 222 (
If Applicants' method determines in step 585 that there are additional enqueued operations comprises the selected priority level (N)-(x), then the method transitions from step 585 to step 560 and continues as described herein. Alternatively, if Applicants' method determines in step 585 that there are no additional enqueued operations comprises the selected priority level (N)-(x), then the method transitions from step 585 to step 590 and continues as described herein.
The embodiments of Applicants' method recited in
In certain embodiments, Applicants' invention includes instructions residing in memory, such as for example memory 226 (
In other embodiments, Applicants' invention includes instructions residing in any other computer program product, where those instructions are executed by a computer external to, or internal to, system 100, to performs steps 330, 340, 350, 360, and/or 370, recited in
While the preferred embodiments of the present invention have been illustrated in detail, it should be apparent that modifications and adaptations to those embodiments may occur to one skilled in the art without departing from the scope of the present invention as set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5142627 | Elliot et al. | Aug 1992 | A |
5724358 | Headrick et al. | Mar 1998 | A |
5933784 | Gallagher et al. | Aug 1999 | A |
6085227 | Edlund et al. | Jul 2000 | A |
6111893 | Volftsun et al. | Aug 2000 | A |
6321093 | Dalal | Nov 2001 | B1 |
6341368 | Deans | Jan 2002 | B1 |
6449285 | Mills | Sep 2002 | B1 |
6463056 | Silva et al. | Oct 2002 | B1 |
6549978 | Mansur et al. | Apr 2003 | B2 |
6587911 | Kawamura et al. | Jul 2003 | B1 |
6597921 | Thandu | Jul 2003 | B2 |
6650632 | Volftsun et al. | Nov 2003 | B1 |
6668319 | Newell et al. | Dec 2003 | B1 |
7002980 | Brewer et al. | Feb 2006 | B1 |
7057981 | Kano et al. | Jun 2006 | B2 |
7093033 | Beckett et al. | Aug 2006 | B2 |
7177913 | Connor | Feb 2007 | B2 |
7260777 | Fitzsimons et al. | Aug 2007 | B2 |
7308512 | Son | Dec 2007 | B1 |
7376147 | Seto et al. | May 2008 | B2 |
7562180 | Gyl et al. | Jul 2009 | B2 |
20020062387 | Yatziv | May 2002 | A1 |
20030041278 | Lin | Feb 2003 | A1 |
20030115433 | Kodama | Jun 2003 | A1 |
20030133465 | Alfano | Jul 2003 | A1 |
20050141424 | Lim et al. | Jun 2005 | A1 |
20050160221 | Yamazaki et al. | Jul 2005 | A1 |
20050256990 | Schmisseur et al. | Nov 2005 | A1 |
Number | Date | Country | |
---|---|---|---|
20060106752 A1 | May 2006 | US |