Maintenance of consistent, redundant mass storage images
First Claim
1. A computer operating under control of an operating system, the computer comprising:
- a non-volatile storage device;
a volatile memory including a first, contiguous, non-persistent memory region, directly accessible by the operating system and initialized during a boot cycle, and a second, contiguous persistent memory region not directly accessible by the operating system and not initialized during a boot cycle, and an intermediary program in communication with the operating system and the second, persistent memory region, wherein the intermediary program enables the operating system to address the second, persistent memory region to store in the second, persistent memory region of the volatile memory a list of write transactions posted to the non-volatile storage device.
22 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for providing improved maintenance of consistent, redundant mass storage images. In one embodiment, one feature of the invention is the presence of non-volatile storage and persistent volatile memory, where the persistent volatile memory is used to store write transactions posted to non-volatile storage. Another feature of the invention is an intermediary program, such as a device driver, that serves as an intermediary between the operating system and non-volatile storage that processes write requests from the operating system directed to non-volatile storage, stores their contents in persistent volatile memory, and then completes the write to non-volatile storage. Yet another feature of the invention is that the contents of the persistent memory region are resistant to initialization or modification during a boot cycle. Another feature of the invention is that the intermediary program processes write requests atomically, preventing the results of incomplete or partial transactions from subsequent loading from the persistent memory region by computer applications.
182 Citations
12 Claims
-
1. A computer operating under control of an operating system, the computer comprising:
-
a non-volatile storage device;
a volatile memory including a first, contiguous, non-persistent memory region, directly accessible by the operating system and initialized during a boot cycle, and a second, contiguous persistent memory region not directly accessible by the operating system and not initialized during a boot cycle, and an intermediary program in communication with the operating system and the second, persistent memory region, wherein the intermediary program enables the operating system to address the second, persistent memory region to store in the second, persistent memory region of the volatile memory a list of write transactions posted to the non-volatile storage device. - View Dependent Claims (2, 3, 9, 10, 11, 12)
wherein, in the event of a system failure, the operating system repairs the contents of the non-volatile storage device by reading the list of write transactions stored in said second, contiguous persistent region of the volatile memory and completing the write transactions read from the list. -
9. The computer of claim 1 wherein the first, non-persistent memory region and the second, persistent memory region comprise different physical volatile memory elements.
-
10. The computer of claim 1 wherein the intermediary program comprises a device driver.
-
11. The computer of claim 1 additionally comprising a basic input/output system (BIOS) preventing direct access to the second, persistent memory region by the operating system.
-
12. The computer of claim 1 additionally comprising a non-volatile memory element storing information concerning the configuration of the second, persistent memory region.
-
-
4. A storage medium having computer-readable program means embodied thereon which, when loaded into a computer having an operating system, a first, contiguous, non-persistent memory region and a second, contiguous persistent memory region, and a non-volatile storage device, provides the computer with improved recovery from system failures, said program comprising:
-
(a) computer-readable program means for intercepting write transactions directed to the non-volatile storage device;
(b) computer-readable program means for storing the write transaction as an entry in the second, contiguous persistent memory region of the volatile memory; and
(c) computer-readable program means for writing the write transaction to the non-volatile storage device. - View Dependent Claims (5)
(d) computer-readable program means for identifying the write transaction stored in the second, contiguous persistent memory region of the volatile memory “
completed”
upon the successful completion of step (c).
-
-
6. In a computer system comprising an operating system, an intermediary program, a non-volatile storage device, and a volatile memory element proportioned into a first, contiguous non-persistent memory region and a second contiguous persistent memory region, a method for providing improved recovery from system failures, the method comprising the steps of:
-
(a) intercepting a write transaction from the operating system;
(b) storing the write transaction as an entry the in second, persistent region of the volatile memory;
(c) reading the write transaction from the second, persistent region of the volatile memory relevant; and
(d) writing the write transaction to the non-volatile storage device. - View Dependent Claims (7)
(e) marking the write transaction stored in the persistent region of the volatile memory element “
completed”
following the successful completion of step (d).
-
-
8. In a computer system comprising an operating system, a device driver, a persistent volatile memory partitioned into a first, contiguous non-persistent region and a second, contiguous, persistent region containing the stored contents of write transactions directed to a non-volatile storage device, a method for providing improved recovery from system failures, the method comprising the steps of:
-
(a) selecting write transactions stored in the second, persistent region of volatile memory marked uncompleted;
(b) reconstructing information related to the uncompleted write transactions (c) completing the transaction; and
(d) marking the uncompleted write transactions as completed after the successful completion of step (c).
-
Specification