Integrated RAID system with the capability of selecting between software and hardware RAID
First Claim
1. A method for servicing requests comprising the steps of:
- receiving a stream of requests to access one or more logical block addresses in one or more disks in a Redundant Array of Independent Disks (RAID);
monitoring a utilization of a first processor in a network server configured to receive said stream of requests, wherein said network server comprises a first RAID implementation;
monitoring a utilization of a second processor in an adapter coupled to said RAID, wherein said adapter comprises a second RAID implementation; and
routing requests in said stream of requests that are serviceable by said adapter to one or more of said first RAID implementation in said network server and said second RAID implementation in said adapter to service said requests that are serviceable by said adapter based on a value of an execution speed of said first processor in said network server and a value of an execution speed of said second processor in said adapter;
wherein said first RAID implementation is a software RAID, wherein said second RAID implementation is a hardware RAID.
3 Assignments
0 Petitions
Accused Products
Abstract
A system, computer program product and method for servicing requests. A server may be configured to receive a stream of requests to access particular logical block addresses in one or more logical drives in a RAID from one or more clients. The server may be coupled to one or more RAID adapters that are coupled to the RAID. The server may comprise a software RAID and each RAID adapter may comprise a hardware RAID. By monitoring the utilization of the processors in the server and in each RAID adapter, all or part of these received requests may subsequently be routed to either the software RAID or the hardware RAID based on which implementation is more desirable to service these requests.
39 Citations
25 Claims
-
1. A method for servicing requests comprising the steps of:
-
receiving a stream of requests to access one or more logical block addresses in one or more disks in a Redundant Array of Independent Disks (RAID);
monitoring a utilization of a first processor in a network server configured to receive said stream of requests, wherein said network server comprises a first RAID implementation;
monitoring a utilization of a second processor in an adapter coupled to said RAID, wherein said adapter comprises a second RAID implementation; and
routing requests in said stream of requests that are serviceable by said adapter to one or more of said first RAID implementation in said network server and said second RAID implementation in said adapter to service said requests that are serviceable by said adapter based on a value of an execution speed of said first processor in said network server and a value of an execution speed of said second processor in said adapter;
wherein said first RAID implementation is a software RAID, wherein said second RAID implementation is a hardware RAID.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
determining if said first processor in said network server is fully utilized.
-
-
3. The method as recited in claim 2, wherein if said first processor is fully utilized then the method further comprises the step of:
determining if said second processor in said adapter is fully utilized.
-
4. The method as recited in claim 3, wherein if said second processor is not fully utilized then the method further comprises the step of:
routing said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation.
-
5. The method as recited in claim 3, wherein if said second processor is fully utilized then the method further comprises the step of:
routing a first portion of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation and a second portion of said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation based on a ratio of said value of said execution speed of said first processor in said network server and said value of said execution speed of said second processor in said adapter.
-
6. The method as recited in claim 2, wherein if said first processor is not fully utilized then the method further comprises the step of:
determining if said second processor in said adapter is fully utilized.
-
7. The method as recited in claim 6, wherein if said second processor is fully utilized then the method further comprises the step of:
routing of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation.
-
8. The method as recited in claim 6, wherein if said second processor is not fully utilized then the method further comprises the step of:
routing a first portion of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation and a second portion of said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation based on a ratio of said value of said execution speed of said first processor in said network server and said value of said execution speed of said second processor in said adapter.
-
9. A computer program product embodied in a machine readable medium for servicing requests comprising the programming steps of:
-
receiving a stream of requests to access one or more logical block addresses in one or more disks in a Redundant Array of Independent Disks (RAID);
monitoring a utilization of a first processor in a network server configured to receive said stream of requests, wherein said network server comprises a first RAID implementation;
monitoring a utilization of a second processor in an adapter coupled to said RAID, wherein said adapter comprises a second RAID implementation; and
routing requests in said stream of requests that are serviceable by said adapter to one or more of said first RAID implementation in said network server and said second RAID implementation in said adapter to service said requests that are serviceable by said adapter based on a value of an execution speed of said first processor in said network server and a value of an execution speed of said second processor in said adapter;
wherein said first RAID implementation is a software RAID, wherein said second RAID implementation is a hardware RAID.- View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
determining if said first processor in said network server is fully utilized.
-
-
11. The computer program product as recited in claim 10, wherein if said first processor is fully utilized then the computer program product further comprises the programming step of:
determining if said second processor in said adapter is fully utilized.
-
12. The computer program product as recited in claim 11, wherein if said second processor is not fully utilized then the computer program product further comprises the step of:
routing said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation.
-
13. The computer program product as recited in claim 11, wherein if said second processor is fully utilized then the computer program product further comprises the programming step of:
routing a first portion of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation and a second portion of said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation based on a ratio of said value of said execution speed of said first processor in said network server and said value of said execution speed of said second processor in said adapter.
-
14. The computer program product as recited in claim 10, wherein if said first processor is not fully utilized then the computer program product further comprises the programming step of:
determining if said second processor in said adapter is fully utilized.
-
15. The computer program product as recited in claim 14, wherein if said second processor is fully utilized then the computer program product further comprises the programming step of:
routing of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation.
-
16. The computer program product as recited in claim 14, wherein if said second processor is not fully utilized then the computer program product further comprises the programming step of:
routing a first portion of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation and a second portion of said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation based on a ratio of said value of said execution speed of said first processor in said network server and said value of said execution speed of said second processor in said adapter.
-
17. A system, comprising:
-
a network server configured to receive a stream of requests to access one or more logical block addresses in one or more disks in a Redundant Array of Independent Disks (RAID); and
an adapter coupled to said network server and to said RAID, wherein said adapter comprises;
a second processor; and
a non-volatile memory unit coupled to said second processor, wherein said non-volatile memory unit is operable for storing a second RAID implementation, wherein said second RAID implementation is a hardware RAID configured to implement RAID control functions;
wherein said network server comprises;
a memory unit operable for storing a computer program operable for servicing requests, wherein said memory unit is further operable for storing a first RAID implementation configured to implement RAID control functions; and
a first processor coupled to said memory unit, wherein said first processor, responsive to said computer program, comprises;
circuitry operable for receiving a stream of requests to access one or more logical block addresses in one or more disks in a Redundant Array of Independent Disks (RAID);
circuitry operable for monitoring a utilization of a first processor in a network server configured to receive said stream of requests, wherein said network server comprises a first RAID implementation;
wherein said first RAID implementation is a software RAID.circuitry operable for monitoring a utilization of a second processor in said adapter coupled to said RAID, wherein said adapter comprises a second RAID implementation; and
circuitry operable for routing requests in said stream of requests that are serviceable by said adapter to one or more of said first RAID implementation in said network server and said second RAID implementation in said adapter to service said requests that are serviceable by said adapter based on a value of an execution speed of said first processor in said network server and a value of an execution speed of said second processor in said adapter. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
circuitry operable for determining if said first processor in said network server is fully utilized.
-
-
19. The system as recited in claim 18, wherein if said first processor is fully utilized then said first processor further comprises:
circuitry operable for determining if said second processor in said adapter is fully utilized.
-
20. The system as recited in claim 19, wherein if said second processor is not fully utilized then said first processor further comprises:
circuitry operable for routing said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation.
-
21. The system as recited in claim 19, wherein if said second processor is fully utilized then said first processor further comprises:
circuitry operable for routing a first portion of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation and a second portion of said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation based on a ratio of said value of said execution speed of said first processor in said network server and said value of said execution speed of said second processor in said adapter.
-
22. The system as recited in claim 18, wherein if said first processor is not fully utilized then said first processor further comprises:
circuitry operable for determining if said second processor in said adapter is fully utilized.
-
23. The system as recited in claim 22, wherein if said second processor is fully utilized then said first processor further comprises:
circuitry operable for routing of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation.
-
24. The system as recited in claim 22, wherein if said second processor is not fully utilized then said first processor further comprises:
circuitry operable for routing a first portion of said requests that are serviceable by said adapter to said network server to be serviced by said first RAID implementation and a second portion of said requests that are serviceable by said adapter to said adapter to be serviced by said second RAID implementation based on a ratio of said value of said execution speed of said first processor in said network server and said value of said execution speed of said second processor in said adapter.
-
25. A system, comprising:
-
a network server configured to receive a stream of requests to access one or more logical block addresses in one or more disks in a Redundant Array of Independent Disks (RAID), wherein said network server comprises a first RAID implementation; and
an adapter coupled to said network server and to said RAID, wherein said adapter comprises a second RAID implementation;
wherein said first RAID implementation is a software RAID, wherein said second RAID implementation is a hardware RAID.
-
Specification