← Back to Patent Explorer
US5598549A Expired / Lapsed US ⏱️ 0.0 years remaining

Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver

Assignee: Taiwan Semiconductor Manufacturing Co TSMC Ltd
•
Filing: 1993-06-11
•
Granted: 1997-01-28
•
Expires: 2013-06-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A scalable software architecture, for optimal performance on a RAID level 1, 3, 4 and 5 disk array or tape array. The software architecture consists of a software device driver and one or more driver daemon processes to control I/O requests to the arrays. Implemented in a UNIX or NetWare operating environment, this architecture provides a transparent interface to the kernels I/O subsystem, physical device drivers and system applications. The array driver and I/O daemon can be run on a uni-processor or multi-processor system platform to optimize job control, error recovery, data recreation, parity generation and asynchronous writes.

Inventors

  • 👤 Dale F. Rathunde

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 04:03
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0614; G06F3/0619; G06F3/0628; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 222 words
An array storage system, comprising: a plurality of drives for storing data; a physical device driver corresponding to each one of said plurality of drives; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received I/O request into a physical I/O request, said physical I/O request being provided to said drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module, different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 2
Dependent Claim 222 words
An array storage system, comprising: a plurality of drives for storing data; a physical device driver corresponding to each one of said plurality of drives; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received I/O request into a physical I/O request, said physical I/O request being provided to said drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module, different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 3
Dependent Claim 43 words
The array storage system according to claim 1, wherein: said plurality of drives includes at least one drive for storing parity information; and virtual I/O requests directed to said parity drive are executed independently of virtual I/O requests directed to said data drives.
Claim 4
Dependent Claim 53 words
The array storage system according to claim 1, wherein: said plurality of drives includes at least one drive for storing parity information; and said virtual I/O daemon module generates said system I/O complete signal prior to receipt of virtual I/O complete signals corresponding to said virtual I/O requests directed to said parity drive.
Claim 5
Dependent Claim 54 words
The array storage system according to claim 1, wherein: said virtual I/O daemon module monitors the operational status of said drives and generates additional virtual I/O requests necessary to recreate data residing on a failed drive in response to a read I/O request, said additional virtual I/O requests being provided to said device driver.
Claim 6
Dependent Claim 41 words
The array system according to claim 4, wherein: said software array driver module and said virtual I/O daemon module include a hash table implementation to insure the integrity of data and parity during virtual I/O operations and array error recovery procedures.
Claim 7
Dependent Claim 43 words
The array system according to claim 5, wherein: each one of said virtual I/O requests accesses up to one cluster of data on one drive in said plurality of drives; and said hash table implementation determines a hash table entry for said cluster.
Claim 8
Dependent Claim 54 words
The array system according to claim 1, wherein: said array storage system is configured in accordance with RAID level 5; and said virtual I/O daemon module generates additional virtual I/O requests necessary to generate parity information in response to a write I/O request, said additional virtual I/O requests being provided to said device driver.
Claim 9
Dependent Claim 39 words
The array system according to claim 7, wherein: said virtual I/O daemon module generates said system I/O complete signal prior to receipt of virtual I/O complete signals corresponding to said additional virtual I/O requests necessary to generate parity information.
Claim 10
Dependent Claim 36 words
The array system according to claim 7, wherein: said software array driver module and said virtual I/O daemon module include a hash table implementation to insure the integrity of data and parity during virtual I/O operations.
Claim 11
Dependent Claim 43 words
The array system according to claim 9, wherein: each one of said virtual I/O requests accesses up to one cluster of data on one drive in said plurality of drives; and said hash table implementation determines a hash table entry for said cluster.
Claim 12
Dependent Claim 28 words
The array storage system according to claim 1, wherein: said array storage system includes a plurality of virtual I/O daemon modules capable of processing virtual jobs in parallel.
Claim 13
Dependent Claim 59 words
The array storage system according to claim 1, wherein: said array storage system is included within a multiprocessor computer system; and said array storage system includes a tunable number of virtual I/O daemon modules depending on the number of CPUs supported on the multiprocessor computer system, said virtual I/O daemon modules being capable of processing virtual jobs in parallel.
Claim 14
Dependent Claim 21 words
The data storage system according to claim 1, wherein: said plurality of data storage devices comprises a plurality of disk drives.
Claim 15
Dependent Claim 24 words
The data storage system according to claim 1, wherein: said plurality of data storage devices comprises a plurality of robotic media changer storage devices.
Claim 16
Dependent Claim 22 words
The data storage system according to claim 1, wherein: said plurality of data storage devices comprises a plurality of tape storage devices.
Claim 17
Dependent Claim 277 words
In a multiple processor data processing system that includes an I/O subsystem, a data storage system comprising: a plurality of disk drives; a physical device driver corresponding to each one of said plurality of disk drives; a software array driver module for receiving a system I/O request from the I/O subsystem and translating said system I/O request to one or more virtual I/O requests, said one or more virtual I/O requests being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; and a plurality of virtual I/O daemon modules for communicating with said physical device drivers and said software array driver module wherein: said software array driver module and said plurality of virtual I/O daemon modules being operative with each of a selected one of a plurality of data storage configurations defined in a group that includes a number of RAID levels;. at least one or said virtual I/O daemon modules generating parity, associated with data storage, in parallel with a virtual I/O request from the I/O subsystem that is being processed using said software array driver module; at least one of said plurality of virtual I/O daemon modules operating in parallel to a first virtual I/O request being processed by said software array driver module to determine an occurrence of an error related to said first virtual I/O request and for processing an error recovery procedure based on the determined error.
Claim 18
Dependent Claim 277 words
In a multiple processor data processing system that includes an I/O subsystem, a data storage system comprising: a plurality of disk drives; a physical device driver corresponding to each one of said plurality of disk drives; a software array driver module for receiving a system I/O request from the I/O subsystem and translating said system I/O request to one or more virtual I/O requests, said one or more virtual I/O requests being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; and a plurality of virtual I/O daemon modules for communicating with said physical device drivers and said software array driver module wherein: said software array driver module and said plurality of virtual I/O daemon modules being operative with each of a selected one of a plurality of data storage configurations defined in a group that includes a number of RAID levels;. at least one or said virtual I/O daemon modules generating parity, associated with data storage, in parallel with a virtual I/O request from the I/O subsystem that is being processed using said software array driver module; at least one of said plurality of virtual I/O daemon modules operating in parallel to a first virtual I/O request being processed by said software array driver module to determine an occurrence of an error related to said first virtual I/O request and for processing an error recovery procedure based on the determined error.
Claim 19
Dependent Claim 38 words
The data storage system according to claim 16, wherein: said plurality of virtual I/O daemon modules comprises a tunable number of virtual I/O daemons depending on the number of CPUs supported on the multiple processor data processing system.
Claim 20
Dependent Claim 36 words
The data storage system according to claim 16, wherein: said multiple processor data processing system employs a UNIX operating system; and said software array driver receives said system I/O request from a UNIX kernal I/O subsystem.
Claim 21
Dependent Claim 224 words
A data storage system comprising: a plurality of data storage devices; a physical device driver corresponding to each one of said data storage devices; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of disk drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module., different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 22
Dependent Claim 224 words
A data storage system comprising: a plurality of data storage devices; a physical device driver corresponding to each one of said data storage devices; a software array driver module for receiving a system I/O request and translating said system I/O request into one or more virtual I/O requests, said virtual I/O request being provided to one or more of said physical device drivers; each one of said physical device drivers receiving a virtual I/O request operating to translate said received virtual I/O request into a physical I/O request, said physical I/O request being provided to said disk drive corresponding to said one of said physical device drivers; a separate call-back module, different from said physical device drivers, for receiving physical I/O complete signals from said plurality of disk drives and translating said physical I/O complete signals into one or more virtual I/O complete signals corresponding to said one or more virtual I/O requests; and a separate virtual I/O daemon module., different from said software array driver module, for receiving said one or more virtual I/O complete signals from said call-back module and translating said received virtual I/O complete signals into a system I/O complete signal; wherein said one or more virtual I/O complete signals are communicated to said virtual I/O daemon module independently of said physical device drivers and said software array driver module.
Claim 23
Dependent Claim 21 words
The data storage system according to claim 19, wherein: said plurality of data storage devices comprises a plurality of disk drives.
Claim 24
Dependent Claim 24 words
The data storage system according to claim 19, wherein: said plurality of data storage devices comprises a plurality of robotic media changer storage devices.
Claim 25
Dependent Claim 22 words
The data storage system according to claim 19, wherein: said plurality of data storage devices comprises a plurality of tape storage devices.

References Cited (Backward Citations)

US4084230A Cited
US4627018A Cited
US5396603A Cited
US5440716A Cited
US5124987A Cited
US5179666A Cited
US5301310A Cited
US5345565A Cited
US5301297A Cited
US5333277A Cited
US5410667A Cited
US5408644A Cited
US5418925A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-01-28 2000-07-29 2001-01-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-01-28 2004-07-29 2005-01-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-01-28 2008-07-29 2009-01-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag