Methods and apparatus for system memory efficient disk access to a raid system using stripe control information
First Claim
Patent Images
1. A method for accessing a plurality of disk drives having data stored thereon with a stripe organization, said method comprising:
- (a) receiving a data transfer request, the data transfer request identifies requested data to be retrieved from the disk drives;
(b) obtaining stripe control information, the stripe control information including at least a sequence of commands for accessing data from the disk drives;
(c) determining initial control information for each of the disk drives based on the data transfer request and the stripe control information, the initial control information including at least an initial command, a length and a next command indicator;
(d) accessing the disk drives in accordance with the initial control information for each of the disk drives to obtain a portion of the requested data; and
(e) thereafter accessing the disk drives in accordance with the stripe control information to obtain a remaining portion of the requested data, said accessing (e) comprising(e1) for each of the disk drives, selecting one of the sequence of commands in the stripe control information based on the next command indicator;
(e2) respectively accessing each of the disk drives in accordance with the selected command for each of the disk drives; and
(e3) subsequently, respectively accessing each of the disk drives in accordance with the commands sequentially following the selected command in the stripe control information for each of the disk drives.
2 Assignments
0 Petitions
Accused Products
Abstract
A technique for accessing a series of secondary storage devices where a reduced amount of main memory is needed to implement the data transfer is disclosed. The technique operates to share control information stored in the main memory so that most of the main memory allocated to implementing a data transfer is shared by the series of the secondary storage drives.
63 Citations
30 Claims
-
1. A method for accessing a plurality of disk drives having data stored thereon with a stripe organization, said method comprising:
-
(a) receiving a data transfer request, the data transfer request identifies requested data to be retrieved from the disk drives; (b) obtaining stripe control information, the stripe control information including at least a sequence of commands for accessing data from the disk drives; (c) determining initial control information for each of the disk drives based on the data transfer request and the stripe control information, the initial control information including at least an initial command, a length and a next command indicator; (d) accessing the disk drives in accordance with the initial control information for each of the disk drives to obtain a portion of the requested data; and (e) thereafter accessing the disk drives in accordance with the stripe control information to obtain a remaining portion of the requested data, said accessing (e) comprising (e1) for each of the disk drives, selecting one of the sequence of commands in the stripe control information based on the next command indicator; (e2) respectively accessing each of the disk drives in accordance with the selected command for each of the disk drives; and (e3) subsequently, respectively accessing each of the disk drives in accordance with the commands sequentially following the selected command in the stripe control information for each of the disk drives. - View Dependent Claims (2, 3)
-
-
4. A method for accessing a plurality of disk drives having data stored thereon with a stripe organization, said method comprising:
-
(a) receiving a data transfer request, the data transfer request identifies requested data to be retrieved from the disk drives; (b) obtaining stripe control information, the stripe control information including at least a sequence of commands for accessing data from the disk drives; (c) determining initial control information for each of the disk drives based on the data transfer request and the stripe control information, the initial control information including at least an initial command, a length and a next command indicator; (d) accessing the disk drives in accordance with the initial control information for each of the disk drives to obtain a portion of the requested data; and (e) thereafter accessing the disk drives in accordance with the stripe control information to obtain a remaining portion of the requested data said accessing (e) of the disk drives being performed in accordance with the sequence of commands, and the next command indicator pointing to one of the commands in the sequence of commands where the next command following the initial command is obtained. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer system, comprising:
-
a plurality of disk storage devices having data striped across said disk storage devices; a main memory including random-access memory (RAM), the RAM including a permanent resident portion and a transitory portion; stripe control information stored in the RAM, said stripe control information contains at least one or more commands for data access that define the striping of the data across said disk storage devices; a virtual-to-physical address translator to translate virtual addresses to physical addresses; and a storage device controller for controlling access to said disk storage devices, said controlling including receiving a data transfer request, forwarding the data transfer request to said virtual-to-physical address translator to produce a physical scatter-gather list for the data transfer request, determining initial control information for the physical scatter-gather list, determining subsequent control information for the physical scatter-gather list from the stripe control information, and accessing each of said disk storage devices in accordance with the initial control information and then in accordance with the subsequent control information, said accessing in accordance with the subsequent control information comprising (i) for each of the disk drives, selecting one of the commands in the subsequent control information, (ii) respectively accessing each of the disk drives in accordance with the selected command for each of the disk drives, and (iii) subsequently, respectively accessing each of the disk drives in accordance with the commands sequentially following the selected command in the subsequent control information for each of the disk drives. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A computer system, comprising:
-
a plurality of disk storage devices having data striped across said disk storage devices; a main memory including random-access memos (RAM), the RAM including a permanent resident portion and a transitory portion; stripe control information stored in the RAM, said stripe control information contains at least one or more commands for data access that define the striping of the data across said disk storage devices; virtual-to-physical address translator to translate virtual addresses to physical addresses; and a storage device controller for controlling access to said disk storage devices, said controlling receives a data transfer request and includes, means for forwarding the data transfer request to said virtual-to-physical address translator to produce a physical scatter-gather list for the data transfer request; means for determining initial control information for the physical scatter-gather list; means for determining subsequent control information for the physical scatter-gather list from the stripe control information; and means for accessing each of said disk storage devices in accordance with the initial control information and then in accordance with the subsequent control information, wherein said means for accessing operates to access the disk storage devices in accordance with the subsequent control information comprising (i) for each of the disk drives, selecting one of the commands in the subsequent control information, (ii) respectively accessing each of the disk drives in accordance with the selected command for each of the disk drives, and (iii) subsequently, respectively accessing each of the disk drives in accordance with the commands sequentially following the selected command in the subsequent control information for each of the disk drives.
-
-
20. A computer readable medium containing program instructions for accessing a plurality of disk drives having data stored thereon in a striped manner, said computer readable medium comprising:
-
computer readable code devices for receiving a data transfer request, the data transfer request identifies requested data to be retrieved from the disk drives; computer readable code devices obtaining stripe control information, the stripe control information including at least a sequence of commands for accessing data from the disk drives; computer readable code devices for determining initial control information for each of the disk drives based on the data transfer request and the stripe control information, the initial control information including at least an initial command a length and a next command indicator; computer readable code devices for accessing the disk drives in accordance with the initial control information for each of the disk drives to obtain a portion of the requested data; and computer readable code devices for thereafter accessing the disk drives in accordance with the stripe control information to obtain a remaining portion of the requested data, the accessing operates to (i) for each of the disk drives, selecting one of the sequence of commands in the stripe control information based on the next command indicator, (ii) respectively accessing each of the disk drives in accordance with the selected command for each of the disk drives, and (iii) subsequently, respectively accessing each of the disk drives in accordance with the commands sequentially following the selected command in the stripe control information for each of the disk drives. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A computer readable medium containing program instructions for transferring data from a plurality of disk drives having data stored thereon in a striped manner said computer readable medium comprising:
-
computer readable code devices for receiving a data transfer request, the data transfer request identifies requested data to by retrieved from the disk drives; computer readable code devices obtaining stripe control information, the stripe control information including at least a sequence of commands for accessing data from the disk drives; computer readable code devices for determining initial control information for each of the disk drives based on the data transfer request and the stripe control information, the initial control information including at least an initial command, a length and a next command indicator; computer readable code devices for accessing the disk drives in accordance with the initial control information for each of the disk drives to obtain a portion of the requested data; and computer readable code devices for thereafter accessing the disk drives in accordance with the stripe control information to obtain a remaining portion of the requested data, said accessing of the disk drives being performed in accordance with the sequence of commands, and the next command indicator pointing to one of the commands in the sequence of commands where the next command following the initial command is obtained. - View Dependent Claims (28, 29, 30)
-
Specification