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
First Claim
Patent Images
1. 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.
12 Assignments
0 Petitions
Accused Products
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.
79 Citations
22 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. 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. - View Dependent Claims (17, 18)
-
-
19. 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. - View Dependent Claims (20, 21, 22)
-
Specification