WO1998028686B1 - Storage subsystem load balancing - Google Patents

Storage subsystem load balancing

Info

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
Application number
PCT/US1997/023083
Other languages
French (fr)
Other versions
WO1998028686A1 (en
Filing date
Publication date
Priority claimed from US08/772,618 external-priority patent/US6108684A/en
Application filed filed Critical
Priority to AU56047/98A priority Critical patent/AU5604798A/en
Publication of WO1998028686A1 publication Critical patent/WO1998028686A1/en
Publication of WO1998028686B1 publication Critical patent/WO1998028686B1/en

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

30AMENDED CLAIMS[received by the International Bureau 21 July 1998 (21.07.98); original claims 1-31 replaced by amended claims 1-26 (8 pages)]
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.
PCT/US1997/023083 1996-12-23 1997-12-15 Storage subsystem load balancing WO1998028686A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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