Patent US4645714A successfully refreshed from Google Patents.
Patent US1946450A successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0584804A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Redundant array of disks with improved storage and recovery speed

Assignee: Mitsubishi Electric Corp
•
Filing: 1993-08-25
•
Granted: —
•
Expires: 2013-08-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a redundant array of disks, the disks are divided into areas of different sizes, so that small amounts of data can be stored in an area of an appropriate size on a single disk, instead of being spread over multiple disks. A usage status table indicates which areas are in use. Check information is generated and stored only for areas indicated to be in use. When new check information is generated, it is therefore possible to omit the reading of unnecessary old data and old check information. When a disk fails and is replaced with a standby disk, only the data in areas indicated to be in use are reconstructed. Check information can be stored on a solid-state disk.

Inventors

  • 👤 Toshio c/o Mitsubishi Denki K.K. Matsumoto
  • 👤 Hiroshi c/o Mitsubishi Denki K.K. Baba
  • 👤 Kazuhiko c/o Mitsubishi Denki K.K. Itoh
  • 👤 Shiro c/o Mitsubishi Denki K.K. Ogura

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-04 14:36
CPC Classifications
G; G11; G11B; G11B20/00; G11B20/10; G11B20/18; G11B20/1816; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F11/108; G06F11/30; G06F11/3003; G06F11/3034; G06F11/3055; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0611; G06F3/0613; G06F3/0628; G06F3/0638; G06F3/0644; G06F3/0646; G06F3/065; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689; G11B20/12; G11B20/1217; G11B20/1252; G11B20/1803; G11B20/1833; G11B20/1883; G11B27/00; G11B27/002; G11B27/10; G11B27/11; G11B27/19; G11B27/28; G11B27/32; G11B27/327; G11B27/329; G06F11/14; G06F11/1446; G06F11/1458; G06F11/1461; G06F11/16; G06F11/20; G06F11/2053; G06F11/2056; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1019; G06F2211/1033; G06F2211/1054; G11B2220/00; G11B2220/20; G11B2220/40; G11B2220/41; G11B2220/415; G11B2220/60; G11B2220/65

Claims Analysis

Total Claims: 56
Claim 1
Independent Claim 73 words
A method of storing data in a redundant array of disks, comprising the steps of: partitioning each disk in said redundant array into areas of at least two different sizes; receiving a command to store a certain quantity of data in said redundant array; selecting a minimum number of said areas with a total capacity adequate to store said quantity of data; and storing said quantity of data in the areas thus selected.
Claim 2
Dependent Claim 20 words
The method of claim 1, wherein areas of identical size are disposed in contiguous locations on each of said disks.
Claim 3
Dependent Claim 23 words
The method of claim 1, wherein areas of identical size are disposed in at least partly non-contiguous locations on each of said disks.
Claim 4
Dependent Claim 26 words
The method of claim 1, comprising the further step of providing, in a semiconductor memory, an area table (11) having pointers to areas of different sizes.
Claim 5
Dependent Claim 30 words
The method of claim 1, wherein the step of partitioning each disk into areas is carried out as an initial step, prior to storage of any data on the disk.
Claim 6
Dependent Claim 48 words
The method of claim 1, wherein the step of partitioning each disk into areas comprises the further steps of: initially partitioning the disk into blocks having a uniform size; and combining contiguous blocks into areas of different sizes as commands to store different quantities of data are received.
Claim 7
Dependent Claim 79 words
The method of claim 1, wherein said redundant array has a group of disks such that: all disks in the group are identically partitioned, the areas on all disks in the group thus comprising sets of corresponding areas of identical size, each set of corresponding areas consisting of one area on each disk in said group; and in each said set of corresponding areas, one area is designated for storing check information for other areas in the same set.
Claim 8
Dependent Claim 22 words
The method of claim 7, wherein all areas designated for storing check information are disposed on a single disk in said group.
Claim 9
Dependent Claim 20 words
The method of claim 7, wherein areas designated for storing check information are distributed over all disks in said group.
Claim 10
Independent Claim 160 words
A method of storing data in a redundant group of disks; comprising the steps of: partitioning each disk in said group into areas; designating certain areas as data areas for storing data; designating certain other areas as check areas for storing check information of corresponding data areas disposed on different disks in said group; maintaining, in a semiconductor memory, a usage status table (12) indicating which areas are in use and which are not in use; receiving, from a host computer (13), new data to be stored in said group of disks; choosing selected data areas in which to store said new data; writing said new data in said selected data areas; and writing, in corresponding check areas, new check information pertaining to the new data written in said selected areas and to data in any corresponding areas indicated by said usage status table to be in use, but not pertaining to data areas not indicated to be in use.
Claim 11
Dependent Claim 85 words
The method of claim 10, comprising the further steps of: determining, from said usage status table (12), whether, in order to generate said new check information, old data must be read from said selected data areas and old check information must be read from corresponding check areas; reading the old data, if any, and old check information, if any, thus determined to be necessary; and generating said new check information from said new data and from any old data and old check information thus read.
Claim 12
Dependent Claim 40 words
The method of claim 10, comprising the further step of notifying said host computer that the storing of said new data has been completed as soon as the step of writing said new data in said selected data areas ends.
Claim 13
Dependent Claim 13 words
The method of claim 10, wherein said usage status table (12) is bit-mapped.
Claim 14
Dependent Claim 27 words
The method of claim 10, wherein said usage status table (12) indicates identical usage status for a set of data areas corresponding to a single check area.
Claim 15
Dependent Claim 28 words
The method of claim 10, wherein said usage status table (12) indicates individually whether each data area on each disk in said group is in use or not.
Claim 16
Dependent Claim 65 words
The method of claim 15, wherein a file allocation table comprising chains of pointers to areas in use is stored on the disks of said redundant array by an operating system running on said host computer (13), and said step of maintaining, in a semiconductor memory, a usage status table (12) comprises the further step of copying said file allocation table to said semiconductor memory.
Claim 17
Dependent Claim 87 words
The method of claim 15, comprising the further steps of: receiving, from said host computer (13), a command to delete data stored in certain areas on certain disks in said group; determining, from said usage status table (12), whether any corresponding areas on other disks in said group are in use; and if no such corresponding areas on other disks in said group are in use, modifying said usage status table (12) to indicate that the areas containing the data to be deleted are not in use.
Claim 18
Independent Claim 120 words
A method of replacing faulty disks in a redundant array of disks having a standby disk (10), comprising the steps of: partitioning each disk in said redundant array into areas; storing data in some areas among said areas, and storing check information in other areas among said areas; detecting failure of a disk in said redundant array; determining which areas were in use on the disk that failed; reconstructing data of the areas determined to be in use on the disk that failed by reading data and check information from other disks in the redundant array, without reconstructing data of areas that were determined not to be in use; and writing the data thus reconstructed on said standby disk (10).
Claim 19
Dependent Claim 41 words
The method of claim 18, wherein the step of determining which areas were in use is carried out by maintaining, in a semiconductor memory, a usage status table (12) indicating which areas are in use and which are not in use.
Claim 20
Dependent Claim 32 words
The method of claim 18, wherein the step of determining which areas were in use is carried out by reconstructing system areas (15, 16, 17) and tracing pointers provided in these areas.
Claim 21
Independent Claim 133 words
A method of storing new data in a redundant array of disks, comprising the steps of: receiving said new data from a host computer (13); storing said new data in a semiconductor memory (4); selecting an area on at least one disk in said redundant array in which to store said new data; writing said new data on the area thus selected; notifying said host computer (13) that the storing of said new data is completed as soon as the foregoing step of writing the new data ends; reading data from another area on at least one other disk in said redundant array; computing check information from the new data stored in said semiconductor memory (4) and the data thus read; and writing said check information on a disk in said redundant array.
Claim 22
Dependent Claim 42 words
The method of claim 21, wherein the steps of reading data from another area, computing check information, and writing said check information are omitted if more new data to be stored are received from said host computer (13) within a certain time.
Claim 23
Dependent Claim 92 words
The method of claim 21, wherein: the steps described in claim 21 are carried out by a processor (3) that executes foreground tasks and background tasks, said foreground tasks having higher priority than said background tasks; the steps of storing said new data in said semiconductor memory (4), selecting areas, writing said new data on said areas, and notifying said host computer (13) are performed as foreground tasks; and the steps of reading data from another area, computing new check information, and writing said new check information are performed as background tasks.
Claim 24
Independent Claim 95 words
A method of storing new data in a redundant group of disks, comprising the steps of: receiving said new data from a host computer (13); writing said new data on at least one disk in said group; notifying said host computer (13) that the storing of said new data is completed as soon as the foregoing step of writing the new data ends; and reading data from disks in said group at periodic intervals, computing check information from the data thus read, and writing said check information on at least one disk in said group.
Claim 25
Dependent Claim 18 words
The method of claim 24, wherein said periodic intervals are adjustable in length according to desired data reliability.
Claim 26
Dependent Claim 33 words
The method of claim 24 wherein, in the step of reading data, computing check information, and writing said check information at periodic intervals, all data stored in said group of disks are read.
Claim 27
Dependent Claim 52 words
The method of claim 24, comprising the further step of memorizing areas in which data have been updated, wherein: in the reading of data, computing of check information, and writing of said check information at an end of a periodic interval, only data that have been updated during that interval are read.
Claim 28
Independent Claim 53 words
A method of storing data in a redundant array of disks having both rotating disks (21, 22, 23, 24) and a solid-state disk (25), comprising the steps of: storing data on rotating disks (21, 22, 23, 24) in said redundant array; and storing check information of said data on said solid-state disk (25).
Claim 29
Dependent Claim 14 words
The method of claim 28, wherein said solid-state disk (25) comprises non-volatile memory devices.
Claim 30
Dependent Claim 51 words
The method of claim 28 wherein said solid-state disk (25) comprises volatile memory devices, having the further steps of: reading data from said rotating disks (21, 22, 23, 24) at power-up; computing check information from the data thus read; and storing the check information thus computed on said solid-state disk (25).
Claim 31
Dependent Claim 34 words
The method of claim 28, comprising the further step of storing, on one rotating disk (27 or 28) in said redundant array, check information identical to check information stored on said solid-state disk (25).
Claim 32
Dependent Claim 38 words
The method of claim 31, wherein said solid-state disk (25) consists of volatile memory devices, comprising the further step of loading said solid-state disk (25) with check information from said one rotating disk (27 or 28) at power-up.
Claim 33
Dependent Claim 97 words
The method of claim 31, comprising the further steps of: receiving new data to be stored in said redundant array from a host computer (13); selecting areas for storing said new data on said rotating disks; reading old check information from corresponding areas of said solid-state disk (25); generating new check information from said old check information and said new data; writing said new data in the areas selected for storage thereof; writing said new check information on said solid-state disk (25); and writing said new check information in corresponding areas of said one rotating disk (28).
Claim 34
Dependent Claim 34 words
The method of claim 33, comprising the further step of notifying said host computer (13) that storage of said new data is completed as soon as the step of writing said new data ends.
Claim 35
Dependent Claim 97 words
A redundant array of disks, comprising: a plurality of disks (9) for storing data, partitioned into areas of at least two different sizes; a first semiconductor memory (4) for storing new data received from a host computer (13); a second semiconductor memory for storing an area table (11) with pointers to areas of different size, among said areas; and a microprocessor (3) programmed to refer to said area table (11), select a minimum number of said areas having a total capacity adequate to store said new data, and write said new data on the areas thus selected.
Claim 36
Dependent Claim 20 words
The array of claim 35, wherein areas of identical size are disposed in contiguous locations on each of said disks.
Claim 37
Dependent Claim 23 words
The array of claim 35, wherein areas of identical size are disposed at least partly in non-contiguous locations on each of said disks.
Claim 38
Dependent Claim 39 words
The array of claim 35, wherein each disk is partitioned into blocks of uniform size, and said microprocessor (3) is programmed to combine contiguous blocks into areas of different sizes, in order to store different quantities of new data.
Claim 39
Dependent Claim 78 words
The array of claim 35, wherein said array has a group of disks such that: all disks in the group are identically partitioned, the areas on all disks in the group thus comprising sets of corresponding areas of identical size, each set of corresponding areas consisting of one area on each disk in said group; and in each said set of corresponding areas, one area is designated for storing check information for other areas in the same set.
Claim 40
Dependent Claim 22 words
The array of claim 39, wherein all areas designated for storing check information are disposed on a single disk in said group.
Claim 41
Dependent Claim 20 words
The array of claim 39, wherein areas designated for storing check information are distributed over all disks in said group.
Claim 42
Dependent Claim 198 words
A redundant array of disks, comprising: a plurality of disks (9) partitioned into areas, certain areas being designated as data areas for storing data, and certain areas being designated as check areas for storing check information of corresponding data areas on different disks; a first semiconductor memory (4) for storing new data received from a host computer (13); a second semiconductor memory for storing a usage status table (12) indicating, for each disk in said redundant array, which areas are in use and which are not in use; a microprocessor (3) coupled to said plurality of disks, said first semiconductor memory (4), and said second semiconductor memory, programmed to choose selected data areas for storing said new data, write said new data on said selected data areas, and write new check information on corresponding check areas; and a check processor (5) coupled to said microprocessor (3), for generating said new check information from said new data, and from old data and old check information read from said disks as necessary according to information in said usage status table (12), said new check information pertaining only to areas indicated by said usage status table (12) to be in use.
Claim 43
Dependent Claim 40 words
The array of claim 42, wherein said microprocessor (3) is programmed to notify said host computer (13) that storing of said new data has been completed as soon as said new data have been written on said selected data areas.
Claim 44
Dependent Claim 38 words
The array of claim 42, wherein said microprocessor (3) is programmed to write said new data as a foreground task, and to write said new check information as a background task having lower priority than said foreground task.
Claim 45
Dependent Claim 20 words
The array of claim 42, wherein said microprocessor (3) is programmed to write said new check information at regular intervals.
Claim 46
Dependent Claim 13 words
The array of claim 42, wherein said usage status table (12) is bit-mapped.
Claim 47
Dependent Claim 51 words
The array of claim 42, wherein a file allocation table comprising chains of pointers to areas in use is stored on the disks of said redundant array by an operating system running on said host computer (13), and said usage status table (12) is created by copying said file allocation table.
Claim 48
Dependent Claim 22 words
The array of claim 42, further comprising at least one standby disk (10) for replacing a failed disk in said redundant array.
Claim 49
Dependent Claim 63 words
The array of claim 48, wherein said microprocessor (3) is programmed to detect a failed disk, reconstruct data of areas that were in use on the disk that failed by reading data and check information from other disks in the redundant array, without reconstructing data of areas that were not in use, and write the data thus reconstructed on said standby disk (10).
Claim 50
Dependent Claim 63 words
A redundant array of disks, comprising: a plurality of rotating disks (21, 22, 23, 24) for storing data; at least one solid-state disk (25) for storing check information; and an array controller (1) coupled to read and write data on said rotating disks (21, 22, 23, 24) and to read and write check information, pertaining to said data, on said solid-state disk (25).
Claim 51
Dependent Claim 14 words
The array of claim 50, wherein said solid-state disk (25) comprises non-volatile memory devices.
Claim 52
Dependent Claim 18 words
The array of claim 50, further comprising an uninterruptible power supply (26) for powering said solid-state disk (25).
Claim 53
Dependent Claim 27 words
The array of claim 50, comprising a further rotating disk (27 or 28) for storing check information identical to check information stored on said solid-state disk (25).
Claim 54
Dependent Claim 42 words
The array of claim 53, wherein said further rotating disk (27) is used to back up said solid-state disk (25), contents of said solid-state disk (25) being transferred to said further rotating disk (27) before said solid-state disk (25) is powered off.
Claim 55
Dependent Claim 40 words
The array of claim 53, wherein said further rotating disk (28) is used to mirror said solid-state disk (25), identical check information being written to said further rotating disk (28) whenever check information is written to said solid-state disk (25).
Claim 56
Dependent Claim 16 words
The array of claim 55, wherein check information is read preferentially from said solid-state disk (25).

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag