WO1998028686B1 - Storage subsystem load balancing - Google Patents
Storage subsystem load balancingInfo
- Publication number
- WO1998028686B1 WO1998028686B1 PCT/US1997/023083 US9723083W WO9828686B1 WO 1998028686 B1 WO1998028686 B1 WO 1998028686B1 US 9723083 W US9723083 W US 9723083W WO 9828686 B1 WO9828686 B1 WO 9828686B1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- controller
- request
- completion information
- host system
- controllers
- Prior art date
Links
Abstract
Methods and associated apparatus for balancing the I/O request processing load within a plurality of controllers (102, 104) in a storage subsystem (100). The methods of the present invention are operable within interconnected controllers of a storage subsystem (100) to shift the processing of received I/O requests to less loaded controllers and to do so in a manner transparent to legacy attached host systems (122, 124). In a first embodiment of the present invention referred to as back-end load balancing, I/O requests are transferred from a first controller (102), to which the I/O request was directed by the attached host system (122, 124), to a second controller (104) for further processing. In this back-end load balancing embodiment, all write data associated with a write request as well as returned information including status or read data, is exchanged between the first (102) and second controllers (104) such that the first controller (102) performs all communication with the attached host system. In a second embodiment referred to as front-end load balancing, the first controller (102) receives an I/O request and transfers the request of a second controller (104). The second controller (104) then completes the I/O request including any requisite communication with the attached host system (222) to receive write data from the host system (222) or to return status or read data to the host system (222). The second controller (104) uses a false ID value, or otherwise substitutes itself for the first controller (102), in communicating with the attached host system (222) such that the attached host system (222) is fooled to believe that all communication is with first controller (102).
Claims
1. In a storage subsystem having a plurality of controllers, a method for balancing the I/O request processing load over said plurality of controllers comprising the steps of: receiving an I/O request from an attached host system within a first controller of said plurality of controllers; determining that a second controller of said plurality of controllers is less loaded than said first controller; transferring control of said I/O request to said second controller for further processing in response to the determination that said second controller is less loaded than said first controller; generating completion information within said second controller in response to said further processing of said I/O request; and returning said completion information to said attached host system.
2. The method of claim 1 further comprising the steps of: transmitting said completion information from said second controller to said first controller; and transmitting said completion information from said first controller to said attached host system.
3. The method of claim 2 wherein said I/O request is a write request having write data associated therewith and wherein said method further comprises the steps of: transmitting said write data from said host system to said first controller; and transmitting said write data from said first controller to said second controller. 31
4. The method of claim 2 wherein said I/O request is a read request and wherein said completion information includes read data requested by said read request.
5. The method of claim 1 further comprising the steps of: substituting said second controller for said first controller in communicating with said attached host system for purposes of further processing of said I/O request; and transmitting said completion information from said second controller to said attached host system wherein said first controller appears to said attached host system to be the source of said completion information.
6. The method of claim 5 wherein said completion information includes an ID field to identify the source of said completion information and wherein said method further comprises the step of: transmitting said completion information from said second controller to said attached host system, wherein said ID field identifies said first controller as the source of said completion information.
7. The method of claim 6 wherein said I/O request is a write request having write data associated therewith and wherein said method further comprises the step of: transmitting said write data from said attached host system to said second controller.
8. The method of claim 6 wherein said I/O request is a read request and wherein said completion information includes read data requested by said read request.
9. In a storage subsystem having a plurality of controllers commonly attached to storage devices within the storage subsystem, a back-end write load balancing method comprising the steps of: receiving, within a first controller of said plurality of controllers, an I/O write request from said host system; receiving, within said first controller, write data associated with said I/O write request from said host system; determining that a second controller of said plurality of controllers is less loaded than said first controller; transferring said I/O write request and said write data to said second controller for further processing in response to the determination that said second controller is less loaded than said first controller; generating completion information within said second controller in response to said further processing of said I/O write request; transferring said completion information from said second controller to said first controller; and returning said completion information from said first controller to said host system.
10. In a storage subsystem having a plurality of controllers commonly attached to storage devices within the storage subsystem, a back-end read load balancing method comprising the steps of: receiving, within a first controller of said plurality of controllers, an I/O read request from said host system; determining that a second controller of said plurality of controllers is less loaded than said first controller; transferring said I/O read request to said second controller for further processing in response to the determination that said second controller is less loaded than said first controller; generating completion information within said second controller in response to said further processing of said I/O read request; 33
transferring said completion information from said second controller to said first controller; and returning said completion information from said first controller to said host system.
11. The method of claim 10 wherein said completion information includes read data requested by said I/O read request.
12. In a storage subsystem having a plurality of controllers commonly attached to a host system and commonly attached to storage devices within the storage subsystem, a front-end write load balancing method comprising the steps of: receiving, within a first controller of said plurality of controllers, an I/O write request from said host system; determining that a second controller of said plurality of controllers is less loaded than said first controller; transferring said I/O write request to said second controller for further processing in response to the determination that said second controller is less loaded than said first controller; and receiving, within said second controller from said host system, write data associated with said I/O write request.
13. The method of claim 12 further comprising the steps of: generating completion information within said second controller in response to said further processing of said I/O write request; and returning said completion information from said second controller to said host system.
14. The method of claim 13 wherein the step of returning said completion information includes the steps of: 34
substituting said second controller for said first controller in communicating with said host system for purposes of further processing of said I/O request; and transmitting said completion information from said second controller to said host system wherein said first controller appears to said host system to be the source of said completion information.
15. The method of claim 14 wherein said completion information includes an ID field to identify the source of said completion information and wherein the step of returning said completion data includes the step of: transmitting said completion information from said second controller to said host system wherein said ID field identifies said first controller as the source of said completion information.
16. In a storage subsystem having a plurality of controllers commonly attached to a host system and commonly attached to storage devices within the storage subsystem, a front-end read load balancing method comprising the steps of: receiving, within a first controller of said plurality of controllers, an I/O read request from said host system; determining that a second controller of said plurality of controllers is less loaded than said first controller; transferring said I/O read request to said second controller for further processing in response to the determination that said second controller is less loaded than said first controller; generating completion information within said second controller in response to said further processing of said I/O read request; and returning said completion information from said second controller to said host system. 35
17. The method of claim 16 wherein said completion information includes read data requested by said I/O read request.
18. A program storage device readable by a computer, tangibly embodying a program or instructions executable by computers in a plurality of controllers connecting a plurality of attached host systems to a common storage subsystem to perform the method steps for balancing the I/O request processing load over said plurality of controllers, said method steps comprising: receiving an I/O request from an attached host system within a first controller of said plurality of controllers; determining that a second controller of said plurality of controllers is less loaded than said first controller; and transferring control of said I/O request to said second controller for further processing in response to the determination that said second controller is less loaded than said first controller.
19. The program storage device of claim 18 wherein the method further comprises the steps of: generating completion information within said second controller in response to said further processing of said I/O request; and returning said completion information to said attached host system.
20. The program storage device of claim 19 wherein the method further comprises the steps of: transmitting said completion information from said second controller to said first controller; and transmitting said completion information from said first controller to said attached host system. 36
21. The program storage device of claim 20 wherein said I/O request is a write request having write data associated therewith and wherein the method further comprises the steps of: transmitting said write data from said host system to said first controller; and transmitting said write data from said first controller to said second controller.
22. The program storage device of claim 20 wherein said I/O request is a read request and wherein said completion information includes read data requested by said read request.
23. The program storage device of claim 19 wherein the method further comprises the steps of: substituting said second controller for said first controller in communicating with said attached host system for purposes of further processing of said I/O request; and transmitting said completion information from said second controller to said attached host system wherein said first controller appears to said attached host system to be the source of said completion information.
24. The program storage device of claim 23 wherein said completion information includes an ID field to identify the source of said completion information and wherein the method further comprises the step of: transmitting said completion information from said second controller to said attached host system, wherein said ID field identifies said first controller as the source of said completion information.
25. The program storage device of claim 24 wherein said I/O request is a write request having write data associated therewith and wherein the method further comprises the step of: 37
transmitting said write data from said attached host system to said second controller.
26. The program storage device of claim 24 wherein said I/O request is a read request and wherein said completion information includes read data requested by said read request.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU56047/98A AU5604798A (en) | 1996-12-23 | 1997-12-15 | Storage subsystem load balancing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/772,618 US6108684A (en) | 1996-12-23 | 1996-12-23 | Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers |
US08/772,618 | 1996-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1998028686A1 WO1998028686A1 (en) | 1998-07-02 |
WO1998028686B1 true WO1998028686B1 (en) | 1998-09-03 |
Family
ID=25095667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/023083 WO1998028686A1 (en) | 1996-12-23 | 1997-12-15 | Storage subsystem load balancing |
Country Status (3)
Country | Link |
---|---|
US (1) | US6108684A (en) |
AU (1) | AU5604798A (en) |
WO (1) | WO1998028686A1 (en) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571324B1 (en) * | 1997-06-26 | 2003-05-27 | Hewlett-Packard Development Company, L.P. | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
USRE42761E1 (en) | 1997-12-31 | 2011-09-27 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US7810123B1 (en) * | 1998-02-18 | 2010-10-05 | Verizon Corporate Services Group Inc. | Method and system for interactive multimedia |
WO1999063438A1 (en) * | 1998-06-05 | 1999-12-09 | Mylex Corporation | Apparatus, system and method for n-way raid controller |
EP1026575A3 (en) * | 1999-02-08 | 2006-09-06 | Hitachi, Ltd. | Disk array system and method of changing its configuration |
US6341356B1 (en) | 1999-03-25 | 2002-01-22 | International Business Machines Corporation | System for I/O path load balancing and failure which can be ported to a plurality of operating environments |
JP4001698B2 (en) * | 1999-10-14 | 2007-10-31 | 富士通株式会社 | Load balancing system |
US6738818B1 (en) * | 1999-12-27 | 2004-05-18 | Intel Corporation | Centralized technique for assigning I/O controllers to hosts in a cluster |
US6983330B1 (en) * | 1999-12-29 | 2006-01-03 | Emc Corporation | Method and apparatus for using multiple paths for processing out of band commands |
US6775720B1 (en) * | 2000-04-04 | 2004-08-10 | Emc Corporation | Method and system for configuring a mass storage system for measuring system performance |
JP4462711B2 (en) * | 2000-04-18 | 2010-05-12 | 株式会社日立製作所 | Storage system |
US6625747B1 (en) * | 2000-06-30 | 2003-09-23 | Dell Products L.P. | Computer storage system and failover method |
US20020133728A1 (en) * | 2000-11-14 | 2002-09-19 | Sanjay Agarwal | Network traffic based adaptive power management system for computer networks |
US6606694B2 (en) * | 2000-12-22 | 2003-08-12 | Bull Hn Information Systems Inc. | Write logging in mirrored disk subsystems |
JP4009434B2 (en) * | 2001-04-18 | 2007-11-14 | 株式会社日立製作所 | Magnetic disk unit coupling device |
US6941260B2 (en) * | 2001-04-26 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for emulating a fiber channel port |
US7076510B2 (en) * | 2001-07-12 | 2006-07-11 | Brown William P | Software raid methods and apparatuses including server usage based write delegation |
US20030088658A1 (en) * | 2001-11-08 | 2003-05-08 | Davies Ian R. | Obtaining information to facilitate system usage |
JP4219602B2 (en) * | 2002-03-01 | 2009-02-04 | 株式会社日立製作所 | Storage control device and control method of storage control device |
JP2003316522A (en) * | 2002-04-26 | 2003-11-07 | Hitachi Ltd | Computer system and method for controlling the same system |
US7020770B2 (en) * | 2002-07-12 | 2006-03-28 | Lsi Logic Corporation | Method and apparatus for configuration of RAID controllers |
US7383381B1 (en) | 2003-02-28 | 2008-06-03 | Sun Microsystems, Inc. | Systems and methods for configuring a storage virtualization environment |
US8166128B1 (en) | 2003-02-28 | 2012-04-24 | Oracle America, Inc. | Systems and methods for dynamically updating a virtual volume in a storage virtualization environment |
US7290168B1 (en) | 2003-02-28 | 2007-10-30 | Sun Microsystems, Inc. | Systems and methods for providing a multi-path network switch system |
US7236987B1 (en) | 2003-02-28 | 2007-06-26 | Sun Microsystems Inc. | Systems and methods for providing a storage virtualization environment |
JP4386694B2 (en) | 2003-09-16 | 2009-12-16 | 株式会社日立製作所 | Storage system and storage control device |
US20050091426A1 (en) * | 2003-10-23 | 2005-04-28 | Horn Robert L. | Optimized port selection for command completion in a multi-ported storage controller system |
JP4391265B2 (en) * | 2004-02-26 | 2009-12-24 | 株式会社日立製作所 | Storage subsystem and performance tuning method |
US7257684B1 (en) | 2004-05-25 | 2007-08-14 | Storage Technology Corporation | Method and apparatus for dynamically altering accessing of storage drives based on the technology limits of the drives |
US7464019B1 (en) | 2004-07-14 | 2008-12-09 | Unisys Corporation | Method of resolving conflicts of virtualized disks between two operating environments |
JP4448005B2 (en) * | 2004-10-22 | 2010-04-07 | 株式会社日立製作所 | Storage system |
US7996509B2 (en) * | 2007-09-26 | 2011-08-09 | International Business Machines Corporation | Zoning of devices in a storage area network |
US7958381B2 (en) * | 2008-06-27 | 2011-06-07 | International Business Machines Corporation | Energy conservation in multipath data communications |
US8073674B2 (en) * | 2008-09-23 | 2011-12-06 | Oracle America, Inc. | SCSI device emulation in user space facilitating storage virtualization |
US8255676B2 (en) * | 2009-07-22 | 2012-08-28 | Netapp, Inc. | Non-disruptive methods for updating a controller of a storage system |
US10360150B2 (en) * | 2011-02-14 | 2019-07-23 | Suse Llc | Techniques for managing memory in a multiprocessor architecture |
US9807161B2 (en) * | 2013-09-16 | 2017-10-31 | Axis Ab | Distributed events in an access control system |
JP6336813B2 (en) * | 2014-04-16 | 2018-06-06 | 富士通株式会社 | Storage virtualization apparatus, storage virtualization apparatus control method, and control program |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US11061604B2 (en) * | 2018-09-28 | 2021-07-13 | Infortrend Technology, Inc. | Method and storage system architecture for accessing data by means of a compatible module |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11507308B2 (en) * | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11734131B2 (en) * | 2020-04-09 | 2023-08-22 | Micron Technology, Inc. | Memory device having redundant media management capabilities |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE645702C (en) * | 1935-03-26 | 1937-06-02 | Karl Ronge | Lid lock for pressure cooker |
US3702006A (en) * | 1971-06-09 | 1972-10-31 | Ibm | Method for balancing the utilization of input/output devices |
US5764922A (en) * | 1986-11-04 | 1998-06-09 | Unisys Corporation | I/O system for off-loading operating system functions |
JPH05134886A (en) * | 1990-11-30 | 1993-06-01 | Fujitsu Ltd | Deadlock detection system |
US5274799A (en) * | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
US5317731A (en) * | 1991-02-25 | 1994-05-31 | International Business Machines Corporation | Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor |
US5313584A (en) * | 1991-11-25 | 1994-05-17 | Unisys Corporation | Multiple I/O processor system |
US5379417A (en) * | 1991-11-25 | 1995-01-03 | Tandem Computers Incorporated | System and method for ensuring write data integrity in a redundant array data storage system |
US5459864A (en) * | 1993-02-02 | 1995-10-17 | International Business Machines Corporation | Load balancing, error recovery, and reconfiguration control in a data movement subsystem with cooperating plural queue processors |
DE59310083D1 (en) * | 1993-09-24 | 2000-09-07 | Siemens Ag | Load balancing method in a multiprocessor system |
EP0707269A1 (en) * | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cache coherence network for a multiprocessor data processing system |
US5682537A (en) * | 1995-08-31 | 1997-10-28 | Unisys Corporation | Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system |
US5671365A (en) * | 1995-10-20 | 1997-09-23 | Symbios Logic Inc. | I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events |
US5694571A (en) * | 1995-10-31 | 1997-12-02 | Sun Microsystems, Inc. | Utilizing a rotating randomly accessible mass storage medium as a caching device for another rotating mass storage medium |
US5787304A (en) * | 1996-02-05 | 1998-07-28 | International Business Machines Corporation | Multipath I/O storage systems with multipath I/O request mechanisms |
-
1996
- 1996-12-23 US US08/772,618 patent/US6108684A/en not_active Expired - Lifetime
-
1997
- 1997-12-15 AU AU56047/98A patent/AU5604798A/en not_active Abandoned
- 1997-12-15 WO PCT/US1997/023083 patent/WO1998028686A1/en active Application Filing
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO1998028686B1 (en) | Storage subsystem load balancing | |
US6108684A (en) | Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers | |
US6065096A (en) | Integrated single chip dual mode raid controller | |
US4792896A (en) | Storage controller emulator providing transparent resource sharing in a computer system | |
CN1010619B (en) | Cache invalidation protocol for digital data processing system | |
EP1012734B1 (en) | Address translation in computer bus bridge devices | |
EP0769744A3 (en) | System and method for sharing multiple storage arrays by multiple host computer systems | |
WO2006038717B1 (en) | External data interface in a computer architecture for broadband networks | |
WO1995027243B1 (en) | Sound board emulation using digital signal processor | |
US5524225A (en) | Cache system and method for providing software controlled writeback | |
US5463752A (en) | Method and system for enhancing the efficiency of communication between multiple direct access storage devices and a storage system controller | |
EP0139254A2 (en) | Apparatus and method for direct memory to peripheral and peripheral to memory data transfer | |
CN101176077A (en) | System and method of remote media cache optimization for use with multiple processing units | |
US20020194405A1 (en) | Disk array system with large storage capacity | |
EP0316251B1 (en) | Direct control facility for multiprocessor network | |
KR100252084B1 (en) | Method for writing/reading data and data access apparatus in multi-process system | |
JP3098550B2 (en) | Bus control method | |
JP3086245B2 (en) | Other system access designation device | |
JP2824890B2 (en) | SCSI protocol controller | |
JPH0752403B2 (en) | Data transfer method and device | |
JPS6415854A (en) | Memory access control system | |
JPH01174042A (en) | Line control system | |
US20020174281A1 (en) | System and method for conversion of addresses of varying bit lengths between a bus and a device controller | |
JPH0644012A (en) | Data transfer system using pseudo magnetic disk device | |
JPH01303554A (en) | Information processor |