Allocation method of physical regions of a disc array to a plurality of logically-sequential data, adapted for increased parallel access to data
First Claim
Patent Images
1. In a disc array which comprises:
- a plurality of disc storage devices for storing a plurality of error correcting data groups, each error correcting data group comprising a plurality of data and error correcting code data therefor, andan array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices,each disc storage device having a plurality of storage regions each for storing either data or error correcting code data,a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions,wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices,a method for allocating one of said plurality of storage regions within said plurality of disc storage devices to data to be written therein, comprising the steps of;
storing allocation status information designating a plurality of unallocated storage regions for storing data, not allocated to any data, within a plurality of storage regions within said plurality of disc storage devices; and
allocating a plurality of unallocated storage regions which satisfy a predetermined condition, to a plurality of sequentially-ordered data to be written, said allocating being executed sequentially according to an order of said plurality of sequentially-ordered data to be written, said plurality of unallocated storage regions being selected from a plurality of unallocated storage regions designated by said stored allocation status information;
wherein said predetermined condition comprises first and second conditions to be satisfied simultaneously;
wherein said first condition is that said storage region allocated to each of said plurality of sequentially-ordered data to be written belongs to one of said plurality of disc storage devices which is different from any one of first and second disc storage devices, wherein said first disc storage device includes a first storage region which has been allocated to one data within a predetermined number of data preceding said each of said plurality of sequentially-ordered data to be written, said second storage device includes a second storage region which stores error correcting code data belonging to an error correcting data group stored by a group of storage regions to which said first storage region belongs;
wherein said second condition is that a storage region which stores a particular error correcting code data belongs to one of said plurality of storage devices which is different from said first and second disc storage devices, said particular error correcting code data belonging to an error correcting data group which is stored by a group of storage regions including said storage region allocated to said each of said plurality of sequentially-ordered data to be written.
1 Assignment
0 Petitions
Accused Products
Abstract
Logical blocks are allocated to a plurality of logically sequential blocks of data by referring to disc array configuration information and a list of candidate logical blocks that may be allocated, so that the drives for retaining the logical blocks assigned to the blocks of data and the drives for holding the parities for these logical blocks will be all different. Thus, a total number of drives which operate in parallel for executing sequential writes to the disc array can be increased to a maximum extent.
-
Citations
38 Claims
-
1. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups, each error correcting data group comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing either data or error correcting code data, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, a method for allocating one of said plurality of storage regions within said plurality of disc storage devices to data to be written therein, comprising the steps of; storing allocation status information designating a plurality of unallocated storage regions for storing data, not allocated to any data, within a plurality of storage regions within said plurality of disc storage devices; and allocating a plurality of unallocated storage regions which satisfy a predetermined condition, to a plurality of sequentially-ordered data to be written, said allocating being executed sequentially according to an order of said plurality of sequentially-ordered data to be written, said plurality of unallocated storage regions being selected from a plurality of unallocated storage regions designated by said stored allocation status information; wherein said predetermined condition comprises first and second conditions to be satisfied simultaneously; wherein said first condition is that said storage region allocated to each of said plurality of sequentially-ordered data to be written belongs to one of said plurality of disc storage devices which is different from any one of first and second disc storage devices, wherein said first disc storage device includes a first storage region which has been allocated to one data within a predetermined number of data preceding said each of said plurality of sequentially-ordered data to be written, said second storage device includes a second storage region which stores error correcting code data belonging to an error correcting data group stored by a group of storage regions to which said first storage region belongs; wherein said second condition is that a storage region which stores a particular error correcting code data belongs to one of said plurality of storage devices which is different from said first and second disc storage devices, said particular error correcting code data belonging to an error correcting data group which is stored by a group of storage regions including said storage region allocated to said each of said plurality of sequentially-ordered data to be written. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing either data or error correcting code data, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, a method for allocating one of said plurality of storage regions within said plurality of disc storage devices to data to be written therein, comprising the steps of; storing allocation status information designating a plurality of unallocated storage regions for storing data, not allocated to any data, within a plurality of storage regions within said plurality of disc storage devices; and allocating a plurality of unallocated storage regions which satisfies a predetermined condition, to a plurality of sequentially-ordered data to be written, said allocating being executed sequentially according to an order of said plurality of sequentially-ordered data to be written, said plurality of unallocated storage regions being selected from said plurality of unallocated storage regions designated by said stored allocation status information; wherein said condition is that said storage region allocated to each of said plurality of sequentially-ordered data to be written belongs to one of said plurality of disc storage devices which is different from any one of a group of disc storage devices into which a plurality of data to be written preceding said each data to be written have been written, among said plurality of sequentially-ordered data to be written wherein a total number of said plurality of data to be written preceding said each data to be written is equal to a total number of said plurality of disc storage devices minus one. - View Dependent Claims (15, 16)
-
-
17. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing either data or error correcting code data, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, said array controller having a circuit for generating error correcting code data from plural data belonging to a same error correcting data group, and for writing said plural data and said generated error correcting code data into said plurality of disc storage devices in parallel; a method for allocating one of said plurality of storage regions within said plurality of disc storage devices to data to be written therein, comprising the steps of; forming a plurality of partial data groups from a plurality of sequentially-ordered data to be written, each partial data group comprising a plurality of data equal in number to a total number of data to be included in a same error correcting data group; selecting a group of unallocated storage regions for each partial data group, said group of unallocated storage regions including ones for storing plural data belonging to a same error correcting data group; and sequentially allocating said unallocated storage regions within said selected group, to a plurality of data within said each partial data group; wherein said allocating of said unallocated storage regions within said selected group is executed in such a manner that one of said unallocated storage regions of said selected group which belongs to a particular one of said plurality of disc storage devices is first allocated to one of said plurality of data within said each partial data group, wherein said particular disc storage device is one which includes a storage region which stores error correcting code data for another partial data group to which a group of unallocated storage regions have been allocated just before said each partial data group. - View Dependent Claims (18, 19)
-
-
20. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, said array controller having a circuit for supplying each disc storage device with a write request requesting said each disc storage device to write a plurality of data together; each disc storage device having a cache memory for temporally storing a plurality of data to be written and a circuit for sequentially writing said plurality of data stored in said cache memory into successive storage regions within said each disc storage device; a method for allocating one of said plurality of storage regions within said plurality of disc storage devices to data to be written therein, comprising the steps of; determining a total number of data blocks which can be stored in said cache memory included in each of said plurality of disc storage devices, based upon a size of said cache memory; dividing a plurality of sequentially-ordered data blocks to be written, into a plurality of groups of sequentially-ordered data blocks, so that a total number of data blocks included in each group within said plurality of group of said sequentially-ordered data blocks does not exceed said determined total number; and allocating a plurality of storage regions located at successive locations within one of said plurality of disc storage devices to data blocks of each group within said plurality of groups of sequentially-ordered data blocks. - View Dependent Claims (21, 22)
-
-
23. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing data or error correcting codes, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, a method for allocating one of said plurality of storage regions within said plurality of disc storage regions to data to be written therein, comprising the steps of; storing allocation status information designating a plurality of unallocated storage regions for storing data, not allocated to any data, within a plurality of storage regions within said plurality of disc storage devices; and sequentially allocating a plurality of unallocated storage regions which satisfies a predetermined condition, within a plurality of storage regions as designated by said allocation status information, to a plurality of data supplied sequentially to said array controller; wherein said predetermined condition comprise first and second conditions to be satisfied simultaneously; wherein said first condition is that said storage region allocated to each of said plurality of data belongs to one of said plurality of disc storage devices which is different from any one of first and second disc storage devices, wherein said first disc storage device is one which includes a first storage region which has been allocated to one of said plurality of data supplied to array controller just before said each of said plurality of data, wherein said second storage device is one which includes a second storage region which stores error correcting code data belonging to an error correcting data group which are stored by a group of storage regions to which said first storage region belongs; wherein said second condition is that a particular storage region which stores error correcting code data belongs to one of said plurality of disc storage devices which is different from said first and second disc storage device, wherein said particular storage region is one for storing an error correcting data group which are stored by a group of storage regions which includes said storage region allocated to said each of said plurality of data. - View Dependent Claims (24, 25, 26, 27, 28)
-
-
29. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing either data or error correcting code data, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices; said array controller having a plurality of request queues each provided in correspondence to one of said plurality of disc storage devices, with each request queue storing write requests and read requests for a corresponding disc storage device; a method for allocating one of said plurality of storage regions within said plurality of disc storage devices to data to be written therein, comprising the steps of; storing allocation status information designating a plurality of unallocated storage regions for storing data, not allocated to any data, within a plurality of storage regions within said plurality of disc storage devices; and allocating a plurality of unallocated storage regions which satisfies a predetermined condition, to a plurality of sequentially-ordered data to be written, said allocating being executed sequentially according to an order of said plurality of sequentially-ordered data to be written, said plurality of unallocated storage regions being selected from said plurality of unallocated storage regions designated by said stored allocation status information; wherein said predetermined condition is that an unallocated first storage region, to be allocated to each of said plurality of sequentially-ordered data to be written, belongs to a first one of said plurality of disc storage devices which has relatively fewer requests waiting for execution in said request queue for said first disc storage device, and that a second storage region for error correcting code data which belongs to a same group of storage regions as said unallocated first storage region belongs to a second one of said plurality of disc storage devices which has relatively fewer requests waiting for execution in said request queue for said second disc storage device. - View Dependent Claims (30, 31, 32, 33)
-
-
34. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing either data or error correcting code data, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, a method for accessing said disc array, comprising the steps of; (a) sequentially executing a plurality of write requests each issued by an upper apparatus connected to said disc array and each designating one of a plurality of sequentially-ordered data, wherein said executing includes accessing, for each of said write requests, one storage region which stores data designated by said each write request, and accessing, for said each write request, another storage region which stores error correcting code data, within a same group of storage regions to which said first storage region belongs; (b) controlling execution of said step (a), so that execution of a succeeding one of two write requests sequentially supplied by said upper apparatus is started in parallel to execution of a preceding one of said two write requests; wherein a first storage region group is predetermined so as to be different from a second storage region group, wherein said first storage region group includes a first storage region which stores a succeeding one of two arbitrary successive data within said sequentially-ordered data and a second storage region which stores error correcting code data for said succeeding data, wherein said second storage region group includes a third storage region which stores a preceding one of said two arbitrary successive data and a fourth storage region which stores error correcting code data for said succeeding data; wherein any one of two of said plurality of disc storage devices which respectively includes said first and second storage regions are predetermined so as to be different from any of two of said plurality of disc storage devices which respectively includes said third and fourth storage regions. - View Dependent Claims (35, 36)
-
-
37. In a disc array which comprises:
-
a plurality of disc storage devices for storing a plurality of error correcting data groups each comprising a plurality of data and error correcting code data therefor, and an array controller for controlling execution of data read requests and data write requests for said plurality of disc storage devices, each disc storage device having a plurality of storage regions each for storing either data or error correcting code data, a plurality of storage regions included in said plurality of disc storage devices being divided into a plurality of groups of storage regions, wherein storage regions belonging to each group of storage regions belong to different ones of said plurality of disc devices and store a plurality of data and error correcting code data both belonging to a same error correcting data group, in such a manner that error correcting code data belonging to different error correcting data groups are dispersed in said plurality of disc devices, a method of accessing said disc array, comprising the steps of; (a) responsive to each of a plurality of read requests each issued by said upper apparatus and each designating one of said plurality of sequentially-ordered data, reading said data designated by said each read request from a storage region which has been allocated to said data; (b) controlling execution of said step (a), so that execution of said step (a) is started for a succeeding one of two arbitrary read requests sequentially supplied by said upper apparatus, in parallel to execution of said step (a) for a preceding one of said two write requests; wherein a plurality of storage regions within said plurality of disc storage devices which store said plurality of sequentially-ordered data are predetermined so that a plurality of storage regions within said plurality of disc storage devices which store a predetermined number of successive data among said plurality of sequentially-ordered data belong to mutually different ones of said plurality of disc storage devices, wherein said predetermined number is equal to a total number of said disc storage devices. - View Dependent Claims (38)
-
Specification