A data storage system and a method of managing data in the storage system. A method of performing a write to a data storage system, including a first storage device and a second storage device, may include writing a first set of header information to a first storage device and a second storage device. The first set of header information includes a first sequence number and a second sequence number, in which the first set of header information includes a first sequence number incremented to indicate a change from the second sequence number. The method may also include returning status of completion of writing the second set of header information. Invalid data or an interruption may also be detected by examining the first and second sequence numbers. data is written to the first storage device and the second storage device. Then, a second set of header information is written to a first storage device and a second storage device. The second set of header information includes a first sequence number and a second sequence number, in which the second set of header information includes a second sequence number incremented to correspond to the first sequence number.
|
1. A method of performing a write to data storage system including a first storage device and a second storage device, comprising:
writing a first set of header information to a first storage device and a second storage device, wherein the first set of header information includes a first sequence number and a second sequence number, in which the first set of header information includes the first sequence number incremented to indicate a change from the second sequence number; writing data to the first storage device and the second storage device; and writing a second set of header information to the first storage device and the second storage device, wherein the second set of header information includes a first sequence number and a second sequence number, in which the second set of header information includes the second sequence number incremented to correspond to the first sequence number.
13. A data storage system suitable for performing a write of data, comprising:
a first data storage device suitable for storing data; a second data storage device suitable for storing data; a data storage controller coupled to the first storage device and the second storage device, the data storage controller suitable for performing a program of instructions, wherein the program of instructions configures the data storage controller to write a first set of header information to the first storage device and the second storage device, wherein the first set of header information includes a first sequence number incremented to indicate initiation of a write operation; to write data to the first storage device and the second storage device; and to write a second set of header information to the first storage device and the second storage device, wherein the second set of header information includes a second sequence number incremented to indicate completion of the write operation.
2. The method as described in
3. The method as described in
4. The method as described in
5. The method as described in
6. The method as described in
7. The method as described in
8. The method as described in
9. The method as described in
10. The method as described in
11. The method as described in
12. The method as described in
14. The data storage system as described in
15. The data storage system as described in
16. The data storage system as described in
17. The data storage system as described in
18. The data storage system as described in
19. The data storage system as described in
20. The data storage system as described in
21. The data storage system as described in
22. The data storage system as described in
23. The data storage system as described in
24. The data storage system as described in
|
The present invention generally relates to the field of data storage, and particularly to a method for managing critical data in an N-way mirrored storage device.
Persistent, efficient and safe storage of electronic data is of the utmost importance. Every aspect of modem life, from electronic commerce, storage of business and personal information, and the like have as a necessary and integral component the use and storage of electronic data. One method utilized to ensure access to electronic data is the use of a storage system employing a plurality of separate electronic data storage devices. For example, a storage system may include a variety of disk drives arranged in a redundant array of independent disks (RAID) format, with data mirrored across the plurality of disks. In this way, should one device become unavailable, data may be accessed from one of the other devices.
Users of an N-Way Mirrored storage system may write data using a variety of mechanisms. For example, a write may be performed using both non-critical and critical writes. Non-critical writes are typically write operations for which interruptions, or partially-completed operations, need not be detected and/or corrected. Critical writes typically include operations for which interruptions are detected and/or corrected. Correction may include, for instance, ensuring that copies of the data on a storage device are the same, even if the data represents only a partially completed critical write operation. However, during a critical write, an interruption may occur which may call into question the validity of the data. Such an interruption may defeat the very purpose of a data storage system, namely the establishment of a valid data set, especially in an environment in which devices may be added and/or removed, and in which recovery from interruption during an update of the storage devices may be achieved.
Therefore, it would be desirable to provide a method of managing data in a storage system.
Accordingly, the present invention is directed to a method of managing data in a storage system. In a first aspect of the present invention, a method of performing a write to a data storage system including a first storage device and a second storage device includes writing a first set of header information to a first storage device and a second storage device. The first set of header information includes a first sequence number and a second sequence number, in which the first set of header information includes a first sequence number incremented to indicate a change from the second sequence number. Data is written to the first storage device and the second storage device. Then, a second set of header information is written to a first storage device and a second storage device. The second set of header information includes a first sequence number and a second sequence number, in which the second set of header information includes a second sequence number incremented to correspond to the first sequence number.
In a second aspect of the present invention, a data storage system includes a first data storage device and a second data storage device suitable for storing electronic data. A data storage controller suitable for performing a program of instructions is coupled to the first data storage device and the second data storage device. The program of instruction configures the data storage controller to write a first set of header information to the first storage device and the second storage device. The first set of header information includes a first sequence number incremented to indicate initiation of a write operation. Data is written to the first storage device and the second storage device. A second set of header information is written to the first storage device and the second storage device, wherein the second set of header information includes a second sequence number incremented to indicate completion of the data write.
In a third aspect of the present invention, a method, includes obtaining a database identifier from a data storage device included in a data storage system. The obtained database identifier is compared with a previously stored database identifier, wherein if the obtained data identifier does not correspond with a previously stored database identifier, the data storage device is not native to a data storage system
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention.
The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which:
FIG. 4B. illustrates an alternative embodiment of the present invention which can be utilized to detect stale data; and
Reference will now be made in detail to the presently preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings.
Referring generally now to
Referring now to
In accordance with the present invention three distinct pieces of information are utilized to establish a valid data set and determine if recovery operations are needed, as shown in the embodiment depicted in FIG. 1B. The three pieces of information include a database ID 152, 154 & 156, and two sequence numbers, which for purposes of the present discussion are labeled sequence number "A" 158, 160 & 162 and sequence number "B" 164, 166 & 168. This data may be stored in a special location on each of the drives 170, 172 & 174 in the database 176. The sequence numbers are used to detect interruptions from a "critical write" operation. The information may also be utilized to detect if foreign data has been introduced and thus, whether a merge operation is required.
The database ID is a unique value that may be computed based on the storage device serial number and a time stamp when the database is created, and other like methods of creating a unique value as contemplated by a person of ordinary skill in the art without departing from the spirit and scope of the present invention. A database ID may be included to make it possible for an entire foreign database to be recognized and merged into the native system (i.e. when one or more drives from a foreign system are inserted into a native system).
In general, users of an N-Way-Mirrored storage facility may write data using a variety of mechanisms. For example, in contemplated embodiments, a write may be performed using one of two mechanisms, namely non-critical and critical writes. Non-critical writes are typically write operations for which interruptions, or partially-completed operations, need not be detected/corrected. However, critical writes may include operations for which interruptions must be detected and/or corrected. Correction may include ensuring that all copies of the data on the N-Way-Mirrored storage devices are the same, even if the data represents only a partially completed critical write operation.
One application for which these two different types of writes may be employed is in a database system. Insertions of individual records, such as segments of data, into the database generally require that the data record is written, and then an index structure is modified to reference the data record. The write of the data record may usually be handled in a non-critical fashion, since an interruption of the operation will simply cause the system to restart before any index structure points to the new record (although critical data record writes are also contemplated by the present invention). In non-critical instances, it may not matter if an N-Way-Mirrored device contains mismatched copies of a data record. For example, since no index record points to the data record yet, the database will not try to access that data record.
However, in most instances, an index record update would generally be handled as a critical write. Interruption of the index record update may have to be detected at restart time to ensure that all copies of the data on the N-Way-Mirrored device are the same. Even if fully-mirrored matching data represents a partially-completed write, the database system may be prepared to recognize this condition and handle it accordingly, such as by utilizing a cyclic redundancy check (CRC) computation/analysis (for detection) and rollback/rollforward (for data integrity).
Therefore, an important consideration in the storage of critical data is that, preferably, all N copies of the data are the same. Consequently, the return of a consistent result to a client se of the N-Way-Mirrored device may be ensured, regardless of which of the N copies is used to satisfy a read request.
Referring now to
In a normal operating mode, both sequence numbers on all drives will be the same. When a "critical write" operation is initiated 202, header information may be written to all drives 204 with the sequence number A incremented 206 by one. This is done as a single atomic operation before phase two is allowed to begin 208. Phase two is the data phase in which all data is written out to all drives 210. When the data is completely written to all drives, phase three is allowed to begin 212. In phase three, the header information is written again 214 and in this phase sequence number B is incremented 216 to once again match sequence number A. Only when all three phases have completed is the write operation allowed to complete 218 and return status to a client 220, such as an application 114 operating on a host system 112 as depicted in FIG. 1A.
Referring generally now to
For example, as shown in the embodiment depicted in
Referring now to
Similarly, if an interruption occurred in phase three, all of the sequence number A's will match, but some of the sequence number B's will match the A's and some will not have been incremented. For example, as shown in
For instance, a set of four drives 362, 364, 366 & 368 may have a first set of sequence numbers 370, 372, 374 & 376 that match. A second set of sequence numbers, sequence number B 378 & 380, of at least one drive, in this instance two drives 366 & 368, match the first sequence numbers, sequence number A 370, 372, 374 & 376.
However, other sequence numbers of the second set of sequence numbers were not incremented. In this instance, sequence number B 382 & 384 is one less than the other sequence number, such as sequence number A 370, 372, 374 & 376 as well as the other sequence number B 378 & 380 of the two incremented drives 366 & 368. As discussed in the previous embodiment shown in
Invalid data, such as stale data, may also be detected using the sequence numbers. For instance, as shown in the exemplary embodiment illustrated in
Likewise, the present invention may also be utilized to detect stale data as shown in the embodiment depicted in FIG. 4B. If a drive 452 contains a sequence number A 454 that is one less than the largest sequence number A, such as other sequence number A 456, 458 & 460 of at least one other drive 462, 464 & 466 of the system, and the system contains a drive (or drives) whose sequence number B 468, 470 & 472 matches the largest sequence number A 456, 458 & 460, then this drive 452 is also detected as containing stale data, and may be rewritten as described previously.
Referring now to
For example, a storage system warm up is initiated in step or block 502. Database IDs are obtained in step or block 504 from the corresponding drives, such as the drives and database IDs shown in FIG. 1B. The database ID from each drive is compared with stored ID values in step or block 506. The database ID is a unique value that may be computed based on the storage device serial number and a time stamp when the database is created, and other like methods of creating a unique value as contemplated by a person of ordinary skill in the art without departing from the spirit and scope of the present invention. If the database IDs correspond as determined in step or block 508, all the drives are native to the storage system and thus, the storage system is ready to perform transactions in step or block 510.
However, if the database IDs do not correspond in step or block 508, data may be written from the new drive to native drives to be included with preexisting data on the other native drives in step or block 512. Thus, the database ID enables an entire foreign database to be recognized and merged into the native system. Further, it may be desirable to then write both sets of data back to the new drive so that all the available drives correspond in step or block 514. For example, when one or more drives from a foreign system are inserted into a native system, and the data included on the drives, as well as the drives themselves, are to be included in the system.
Additionally, in some instances it may be preferable to overwrite the new drive. In this case, data may be written from the native drives to the new drive in step or block 516 so that data included on the drives 106, 108 & 110 (
Although incrementing is described in which values increase, it should be apparent to a person of ordinary skill in the art that the present invention contemplates reducing values and like methods utilized to provide a sequence. Further, an increment contemplates any value, which may be utilized to indicate a change from an initial value to a second changed value. Moreover, although the matching of the first sequence number and the second sequence number is described, it should be apparent that one to one correspondence between the values is not required, as the present invention may employ a known difference between sequence numbers to determine if a write operation has been performed, interrupted, corrupted, and the like, and other like methods of comparison and correspondence as contemplated by a person of ordinary skill in the art.
It is believed that the method of managing critical data in an N-Way mirrored storage device of the present invention and many of its attendant advantages will be understood by the foregoing description. It is also believed that it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form hereinbefore described being merely an explanatory embodiment thereof. It is the intention of the following claims to encompass and include such changes.
Delaney, William P., Yarnell, Gregory A., Humlicek, Donald R., Moore, Joseph G., Krehbiel, Stanley E.
Patent | Priority | Assignee | Title |
7137033, | Nov 20 2003 | International Business Machines Corporation | Method, system, and program for synchronizing subtasks using sequence numbers |
7330955, | Oct 18 2004 | Seagate Technology LLC | Recovery record for updating a system configuration |
7962780, | Aug 22 2008 | International Business Machines Corporation | Command sequence numbering apparatus and method |
8402210, | Nov 11 2004 | Hitachi, Ltd. | Disk array system |
9049242, | Jun 22 2005 | Seagate Technology LLC | Atomic cache transactions in a distributed storage system |
Patent | Priority | Assignee | Title |
5632027, | Sep 14 1995 | International Business Machines Corporation | Method and system for mass storage device configuration management |
5822782, | Oct 27 1995 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Methods and structure to maintain raid configuration information on disks of the array |
6332177, | Oct 19 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | N-way raid 1 on M drives block mapping |
6553511, | May 17 2000 | NetApp, Inc | Mass storage data integrity-assuring technique utilizing sequence and revision number metadata |
20020078315, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 15 2001 | LSI Logic Corporation | (assignment on the face of the patent) | / | |||
Jul 18 2001 | DELANEY, WILLIAM P | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012032 | /0008 | |
Jul 18 2001 | MOORE, JOSEPH G | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012032 | /0008 | |
Jul 18 2001 | HUMLICEK, DONALD R | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012032 | /0008 | |
Jul 18 2001 | KREHBIEL, STANLEY E | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012032 | /0008 | |
Jul 18 2001 | YARNELL, GREGORY A | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012032 | /0008 | |
Apr 06 2007 | LSI Logic Corporation | LSI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033102 | /0270 | |
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 14 2014 | LSI Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035390 | /0388 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 |
Date | Maintenance Fee Events |
Jun 20 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 22 2008 | ASPN: Payor Number Assigned. |
Jun 28 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 07 2015 | REM: Maintenance Fee Reminder Mailed. |
Dec 30 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Dec 30 2006 | 4 years fee payment window open |
Jun 30 2007 | 6 months grace period start (w surcharge) |
Dec 30 2007 | patent expiry (for year 4) |
Dec 30 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 30 2010 | 8 years fee payment window open |
Jun 30 2011 | 6 months grace period start (w surcharge) |
Dec 30 2011 | patent expiry (for year 8) |
Dec 30 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 30 2014 | 12 years fee payment window open |
Jun 30 2015 | 6 months grace period start (w surcharge) |
Dec 30 2015 | patent expiry (for year 12) |
Dec 30 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |