Method and apparatus for raid load balancing
First Claim
1. A method for distributing read commands to disks associated with a redundant array of inexpensive disks (RAID) mirroring system, comprising:
- establishing a first and second counter, the first counter associated with a first disk drive, the second counter associated with a second disk drive;
receiving a command from an operating system;
determining if the received command is a read command;
examining the first and second counters if the received command is the read command, the examining including, determining which of the first and second counters is a lower value counter or if the first and second counters are of equal value;
selecting a drive associated with the lower value counter or if the counters are of equal value selecting a first drive;
incrementing the lower value counter or the first counter if counters are of equal value; and
directing the read command to the drive associated with the lower value counter or the first drive if the counters are of equal value.
10 Assignments
0 Petitions
Accused Products
Abstract
Methods and an apparatus for RAID load balancing are provided. One exemplary method includes establishing first and second counters where the first counter is associated with a first drive and the second counter is associated with a second drive. Next, a command is received form an operating system. Then, it is determined if the received command is a read command. If the received command is a read command, then the counters are examined to determine which of the counters is a lower value counter or if the counters are of equal value. Next, a drive associated with the lower value counter is selected or if the counters are of equal value a first drive is selected. The lower value counter is then incremented. Then, the read command is directed to the drive associated with the lower value counter or the first drive if the counters are of equal value.
38 Citations
22 Claims
-
1. A method for distributing read commands to disks associated with a redundant array of inexpensive disks (RAID) mirroring system, comprising:
-
establishing a first and second counter, the first counter associated with a first disk drive, the second counter associated with a second disk drive;
receiving a command from an operating system;
determining if the received command is a read command;
examining the first and second counters if the received command is the read command, the examining including, determining which of the first and second counters is a lower value counter or if the first and second counters are of equal value;
selecting a drive associated with the lower value counter or if the counters are of equal value selecting a first drive;
incrementing the lower value counter or the first counter if counters are of equal value; and
directing the read command to the drive associated with the lower value counter or the first drive if the counters are of equal value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for maintaining a substantially even load of read commands on multiple disk drives associated with a RAID mirroring system, comprising:
-
associating each of the multiple disk drives with a counter, each counter being configured to track a queue of read commands for a corresponding disk drive;
examining each counter to identify a least loaded disk drive;
incrementing the counter associated with the least loaded disk drive;
sending a read command to the least loaded disk drive;
processing the read command in the least loaded disk drive;
generating an interrupt; and
decrementing the counter associated with the least loaded disk drive in response to the generated interrupt. - View Dependent Claims (8, 9, 10)
-
-
11. A computer readable media having program instructions for maintaining a substantially even load of read commands on multiple disk drives associated with a RAID mirroring system, comprising:
-
program instructions for associating each of the multiple disk drives with a counter, each counter being configured to track a queue of read commands for a corresponding disk drive;
program instructions for examining each counter to identify a least loaded disk drive;
program instructions for incrementing the counter associated with the least loaded disk drive;
program instructions for sending a read command to the least loaded disk drive;
program instructions for processing the read command in the least loaded disk drive;
program instructions for generating an interrupt; and
program instructions for decrementing the counter associated with the least loaded disk drive in response to the generated interrupt. - View Dependent Claims (12, 13, 14)
-
-
15. An apparatus for distributing read commands between disk drives, the apparatus comprising:
-
a central processing unit;
an operating system, the operating system configured to generate commands;
a first and second disk drive, wherein the first and second disk drives are mirrors of one another; and
a RAID driver in communication with the first and second disk drives, the RAID driver including code for identifying a read command from the generated commands and identifying a least busy disk drive, wherein the read command is sent to the least busy disk drive, and a counter associated with the least busy disk drive, the counter being incremented in response to receiving the read command, and decremented in response to an interrupt generated upon completion of processing the read command. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. An apparatus for maintaining a substantially even load of read commands on multiple disk drives associated with a RAID mirroring system, comprising:
-
a central processing unit;
an operating system, the operating system configured to generate commands;
a first and second disk drive, wherein each of the first and second disk drives is associated with a counter, each counter being configured to track a queue of read commands; and
a RAID driver in communication with the first and second disk drives, the RAID driver including code for identifying a read command from the generated commands and identifying a least busy disk drive, wherein the read command is sent to the least busy disk drive to increment the counter of the least busy disk drive and the completion of the read command decrements the counter associated with the least busy disk drive in response to a generated interrupt. - View Dependent Claims (22)
-
Specification