A method and system for updating status information in a persistent storage. The method comprises the steps of defining a table in persistent storage (NVS) for holding information about changes to the status information; and when that status information is changed, making an entry in the table to record the changed information. A task is initialized to update the information on the disk drive. This updating is done by (i) checking the table to determine if any changes have been recorded in the persistent storage, and (ii) if any changes have been recorded in the persistent storage, then copying the status information from the persistent storage to the disk drive.
|
4. A system for updating status information in a persistent storage, the system comprising:
a persistent storage (NVS) defining a table for holding information about changes to the status information; and
a controller to make an entry in the table when the status information is changed to record the changed information; maintaining a header for the table, the header including pointers to the first and last entries in the table; and to initialize a task to update the information on the disk drive, by
i) checking the table to determine if any changes have been recorded in the persistent storage, and
iii) if any changes have been recorded in the persistent storage, then copying the status information from the persistent storage to the disk drive.
1. A method of updating status information in persistent storage, the method comprising:
defining a table in said persistent storage (NVS) for holding information about changes to the status information;
when the status information is changed, making an entry in the table to record the changed information;
maintaining a header for the table, the header including pointers to the first and last entries in the table; and
initializing a task to update the status information on a disk drive, including
i) checking the table to determine if any changes have been recorded in the persistent storage, and
ii) if any changes have been recorded in the persistent storage, then copying the status information from the persistent storage to the disk drive.
11. A system for updating a copy in a disk storage of status information, the system comprising:
a memory storage defining a table for holding information about changes to the status information; and
a controller for making an entry in the table, when the status information is changed, to indicate that the status information has changed, to maintain a header for the table, the header including pointers to the first and last entries in the table; and to initialize a task to update the copy of the status information in the disk storage by (i) checking the table to determine if changes have been made to the status information, and (ii) if any changes have been made to the status information, then updating the copy of the status information in the disk storage to include said changes.
7. A method of updating a copy in a disk storage of status information in a memory area, the method comprising:
defining a table for holding information about changes to the status information in the memory area;
when the status information is changed, making an entry in the table to indicate that the status information has changed;
maintaining a header for the table, the header including pointers to the first and last entries in the table; and
initializing a task to update the copy of the status information in the disk storage, including
i) checking the table to determine if changes have been made to the status information, and
ii) if any changes have been made to the status information, then updating the copy of the status information in the disk storage to include said changes.
3. A method of updating status information in a persistent storage, the method comprising:
defining a table in said persistent storage (NVS) for holding information about changes to the status information;
when the status information is changed, making an entry in the table to record the changed information; and
initializing a task update the status information on a disk drive, including
i) checking the table to determine if any changes have been recorded in the persistent storage, and
ii) if any changes have been recorded in the persistent storage, then copying the status information from the persistent storage to the disk drive; and
wherein the table includes a header area and an array of journal entries, the header area includes pointers to the first and last journal entries, each of the journal entries identifying changed information.
15. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for updating a copy in a disk storage of status information in a memory area, said method steps comprising:
defining a table for holding information about changes to the status information in the memory area;
when the status information is changed, making an entry in the table to indicate that the status information has changed;
maintaining a header for the table, the header including pointers to the first and last entries in the table; and
initializing a task to update the copy of the status information in the disk storage, including
i) checking the table to determine if changes have been made to the status information; and
ii) if any changes have been made to the status information, then updating the copy of the status information in the disk storage to include said changes.
2. A method according to
5. A system according to
6. A system according to
8. A method according to
9. A method according to
10. A method according to
12. A system according to
13. A system according to
14. A system according to
16. A program storage device according to
17. A program storage device according to
18. A program storage device according to
|
1. Field of the Invention
This invention generally relates to methods and systems for updating control or configuration data in a persistent storage.
2. Prior Art
Many computer systems, such as many main frame computer systems, use direct access storage devices (DASD) to store data. Indeed, because of the vast amount of data stored in these systems, many of these computer systems include a controller, separate from the main, or host, computer, to manage the DASD. These controllers, which themselves may include one or more processing units, act in response to commands or instructions from the host computer to control and configure the DASD and the data stored thereon. The information describing the status of the DASD is referred to as global status (GS) information, and this information may change over time, for example in response to commands or instructions from the host computer. It is important that this global status information be maintained across various error conditions, including the loss of power.
The Global Status information is organized by Logical Subsystem (LSS), with a separate Global Status area for each LSS. Each Global Status area contains all the information for the LSS. Some of this data is related to the state of the each device, some is related to the Copy Services (CS) sessions that exist in the LSS, etc.
There is a copy of this entire structure maintained in local storage. Whenever any of this information changes, it must be updated in some nonvolatile location. In current implementations, this may be accomplished by updating the local copy in memory and then writing the entire structure for the LSS to DASD. The operation that initiated the status change is not considered to be complete until this write is complete. Since writing to DASD requires a long time, this method causes long delays in the completion of operations which require a GS update. When there are many updates for different devices in the same LSS, each one writes the same Global Status structure and the operations are unnecessarily serialized, causing even longer delays in their completion. For example, if 100 FlashCopy establishes are done on 100 volumes in the same LSS, the same global status track will be written 100 times.
An object of this invention is to improve systems and methods for updating global status information in DASD.
Another object of the invention is to temporarily write global status change information to a buffer in non-volatile storage and then asynchronously write the global status information from the non-volatile storage to disk drives.
These and other objectives are attained with a method and system for updating status information in a persistent storage. The method comprises the steps of defining a table in persistent storage (NVS) for holding information about changes to the status information; and when that status information is changed, making an entry in the table to record the changed information. A task is initialized to update the information on the disk drive. This updating is done by (i) checking the table to determine if any changes have been recorded in the persistent storage, and (ii) if any changes have been recorded in the persistent storage, then copying the status information from the persistent storage to the disk drive.
Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description, given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.
Many types of host computers or host computer systems may be used with the present invention. For instance, the host computer may be a main frame computer. The present invention can also be used, for example, with servers, work stations, and multiple computer systems. The World Wide Web may also be used as host computer 12.
Similarly, many types of data storage devices 14 can be used in the practice of this invention. The storage devices may be, or include, for example, disk drives, optical disks, CDs, or other data storage devices.
Also, as will be understood by those of ordinary skill in the art, any suitable types of adapters 20 and 22 may be used in controller 16. These adapters are used to insure that data and messages are in the proper format as they pass between host computer 12 and memory clusters 24 and 26 and between these memory clusters and storage devices 14. These adapters may be used, if desired, to provide other services. Many suitable adapters are well known in the art.
Processor means 24c and 26c are used to manage the memory clusters 24 and 26. These processors may also be used to provide additional features such as monitoring, repair, service, or status access. Any suitable processor means may be used to provide the necessary or desired functions.
In the operation of system 10, controller 12 is used to control and to configure storage devices 14 and the data thereon. In this operation, these controllers 12 use information, referred to as global status information, that describes the status and condition of the storage devices. With the embodiment of the system 10 illustrated in
As mentioned above, in current systems, this may be accomplished by updating the local copy in memory and then writing the entire structure to the secondary storage disks. The operation that initiated the status change is not considered to be complete until this write is complete. Since writing to secondary storage discs requires a long time, this method causes long delays in the completion of operations that require an update. When there are many updates for different devices in the same specific disc area, each one writes the same change information and the operations are unnecessarily serialized, causing even longer delays in their completion. For example, if 100 changes are done on 100 volumes in the same specific disk area, the same change information will be written 100 times.
The present invention utilizes the fact that writing to non-volatile storage (NVS) is performed at electronic speeds and is much faster than writing to the physical drive. The amount of space available in the NVS is less than the total amount of global status information that must be maintained, so it is not possible to maintain the entire global status with the NVS. Instead, the NVS is used to store only the data that is actually modified and this data is written to the secondary storage as soon as possible, so that the amount of NVS space used by the journal at any one time is minimized. This is accomplished by defining a Global Status Journal Table within the NVS. Whenever a status update is required, an entry is made into this table describing the changed data, in addition to making the update in the local memory structure. As soon as the journal update is complete, the data are considered to be hardened and the operation complete from the client's viewpoint A task is then initiated to collect the updates for each LSS and write them to the secondary storage disks. When the write to the secondary storage disks has completed, the corresponding journal entries are removed from the NVS.
If, at the time of a global status update, there is no space available in the journal to add a new entry, then preferably, the update is written directly to the secondary storage disks.
Preferably, as illustrated in
The LSS field 76 identifies which global status track is being updated. The Data Descriptor field 80 describes which part of the global status track was modified, and this field may have multiple parts to fully define the field that has been updated. For example, if it is a device status field being updated, the modifier will also contain the device address; if it is related to a particular session, then it will also contain the session id, and so forth. The Data field 82 contains the actual data to be stored in the location defined by the Data Descriptor. If a single operation updates multiple fields in the global status structure, then it will result in the creation of multiple journal entries.
With reference to
With reference to
When all of the DASD writes are complete, all Journal entries from the first and last valid entries (at the time that the DASD writes were initiated) are removed from the Journal at step 130. At step 132, the task determines whether the journal is empty. On the one hand, if no new entries were added after the time that the Write to DASD task started, then the Journal is now empty and the Write task is complete. On the other hand, if additional updates were made, then the head pointer is set to the first newly created entry in the Journal, effectively removing all entries that have been written to DASD. The Write to DASD task then picks up all the new modifications and makes another cycle of writing status tracks to DASD.
Modifications to this method may be made to have separate journal structures for each LSS (that is, for each global status track). The NVS area may be partitioned to have a separate area of each LSS and to have separate, independent processes to write the global status for each LSS.
As long as no incidents occur which lose or corrupt the global status information in the local memory area, there is no need to use the status information that resides in the Journal or on DASD. However, if the local memory copy is lost, for example due to a power loss, then this memory copy must be rebuilt, using the nonvolatile information that has been saved. In the current implementation, that is, without the Journaling of updates, this is done by simply reading the global status from DASD and using it to rebuild the status information in memory. With the above-described Journaling of the present invention, however, the DASD does not necessarily contain all of the updates because there may be information in the NVS journal that has not been written to DASD. A second step in the recovery is required.
Specifically, when it is determined that the global status information must be rebuilt, the global status tracks are first read from DASD into the local global status structures. Then, each Journal entry is processed, in order, and the update described by the Data Descriptor and Data fields applied to the global status structure. After all updates have been applied, then the state has been restored to the correct condition.
While it is apparent that the invention herein disclosed is well calculated to fulfill the objects stated above, it will be appreciated that numerous modifications and embodiments may be devised by those skilled in the art, and it is intended that the appended claims cover all such modifications and embodiments as fall within the true spirit and scope of the present invention.
Micka, William Frank, Stanley, Warren Keith, Spear, Gail Andrea, Werner, Sam Clark
Patent | Priority | Assignee | Title |
7360046, | Apr 21 2005 | Hitachi, Ltd. | Storage system and data management method |
7533298, | Sep 07 2005 | NetApp, Inc | Write journaling using battery backed cache |
7571292, | Mar 21 2006 | International Business Machines Corporation | Producing tertiary instant virtual copies without volume suspension |
7599951, | Mar 25 2004 | EMC IP HOLDING COMPANY LLC | Continuous data backup |
Patent | Priority | Assignee | Title |
4680700, | Dec 07 1983 | International Business Machines Corporation | Virtual memory address translation mechanism with combined hash address table and inverted page table |
4713755, | Jun 28 1985 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
4905196, | Apr 26 1984 | BBC Brown, Boveri & Company Ltd. | Method and storage device for saving the computer status during interrupt |
5043871, | Mar 26 1986 | Hitachi, Ltd. | Method and apparatus for database update/recovery |
5581726, | Dec 21 1990 | Fujitsu Limited | Control system for controlling cache storage unit by using a non-volatile memory |
5671390, | May 23 1995 | International Business Machines Corporation | Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media |
5734895, | Nov 29 1993 | NEC Corporation | File recovery system |
5758054, | Mar 02 1990 | EMC Corporation | Non-volatile memory storage of write operation identifier in data storage device |
5835940, | Oct 14 1993 | Fujitsu Limited | disk apparatus with multiple raid operating modes |
6148383, | Jul 09 1998 | International Business Machines Corporation | Storage system employing universal timer for peer-to-peer asynchronous maintenance of consistent mirrored storage |
EP690379, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 31 2002 | SPEAR, GAIL A | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012917 | /0709 | |
May 31 2002 | STANLEY, WARREN K | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012917 | /0709 | |
May 31 2002 | WERNER, SAM C | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012917 | /0709 | |
Jun 03 2002 | MICKA, WILLIAM F | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 012917 | /0709 | |
Jun 06 2002 | International Business Machines Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Dec 15 2004 | ASPN: Payor Number Assigned. |
Jul 30 2008 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 24 2012 | REM: Maintenance Fee Reminder Mailed. |
Dec 19 2012 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 19 2012 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Jul 18 2016 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 08 2008 | 4 years fee payment window open |
Aug 08 2008 | 6 months grace period start (w surcharge) |
Feb 08 2009 | patent expiry (for year 4) |
Feb 08 2011 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 08 2012 | 8 years fee payment window open |
Aug 08 2012 | 6 months grace period start (w surcharge) |
Feb 08 2013 | patent expiry (for year 8) |
Feb 08 2015 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 08 2016 | 12 years fee payment window open |
Aug 08 2016 | 6 months grace period start (w surcharge) |
Feb 08 2017 | patent expiry (for year 12) |
Feb 08 2019 | 2 years to revive unintentionally abandoned end. (for year 12) |