← Back to Patent Explorer
US5634096A Expired / Lapsed US ⏱️ 0.0 years remaining

Using virtual disks for disk system checkpointing

Assignee: International Business Machines Corp
•
Filing: 1994-10-31
•
Granted: 1997-05-27
•
Expires: 2014-10-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A scheme is presented for storing data on disks in such a way that a checkpoint can easily be taken across several disks connected to different processors in a distributed or parallel computer. A checkpoint can be used to restore the entire disk system to a known state after one or more of the disks or processors fails. When a failure occurs, the disk system is restored to its state at the current checkpoint. The scheme allows significant saving in disk space by requiring that only the data modified since the last checkpoint be copied. The checkpointing algorithm is presented as part of the invention. The invention allows checkpointing of disk space independently of the use of the disk space, for example, in a file system.

Inventors

  • 👤 Sandra J. Baylor
  • 👤 Peter F. Corbett
  • 👤 Blake G. Fitch
  • 👤 Mark E. Giampapa

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 12:28
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1435

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 230 words
A method of checkpointing lost data in a multiprocessor, distributed disk array computer system to protect against losing data, comprising: providing a logical disk representing the data stored on one or more physical disks associated with each processor of the multiprocessor system; assigning to each of the processors a set of virtual disks, the virtual disks being mapped via the logical disk to data storage locations on the physical disks; designating one virtual disk in each set to be a user virtual disk, and updating the data stored in the user virtual disk when desired; designating another of the virtual disks in each set to be a checkpoint virtual disk, the checkpoint virtual disks containing most recent checkpoint data and parity blocks for reconstructing the checkpoint data in the event of a physical disk failure; designating another of the virtual disks in each set to be a constructing checkpoint virtual disk, the constructing checkpoint virtual disk containing data desired to be saved as checkpoint data; constructing new parity blocks derived from the data desired to be saved as checkpoint data in the constructing checkpoint virtual disks; when the new parity blocks have been constructed, assigning the constructing checkpoint virtual disks to be new checkpoint virtual disks, and assigning the checkpoint virtual disks to be spare virtual disks, or saving them as a finite sequence of checkpoints in additional virtual disks.
Claim 2
Independent Claim 230 words
A method of checkpointing lost data in a multiprocessor, distributed disk array computer system to protect against losing data, comprising: providing a logical disk representing the data stored on one or more physical disks associated with each processor of the multiprocessor system; assigning to each of the processors a set of virtual disks, the virtual disks being mapped via the logical disk to data storage locations on the physical disks; designating one virtual disk in each set to be a user virtual disk, and updating the data stored in the user virtual disk when desired; designating another of the virtual disks in each set to be a checkpoint virtual disk, the checkpoint virtual disks containing most recent checkpoint data and parity blocks for reconstructing the checkpoint data in the event of a physical disk failure; designating another of the virtual disks in each set to be a constructing checkpoint virtual disk, the constructing checkpoint virtual disk containing data desired to be saved as checkpoint data; constructing new parity blocks derived from the data desired to be saved as checkpoint data in the constructing checkpoint virtual disks; when the new parity blocks have been constructed, assigning the constructing checkpoint virtual disks to be new checkpoint virtual disks, and assigning the checkpoint virtual disks to be spare virtual disks, or saving them as a finite sequence of checkpoints in additional virtual disks.
Claim 3
Dependent Claim 53 words
A method of restoring lost data in a multiprocessor system having checkpointed data in accordance with claim 1, comprising: when a system failure occurs, reassigning the checkpoint virtual disks to be the user virtual disks, whereby to restore the system to its state as of the time of a most recent checkpointing operation.
Claim 4
Dependent Claim 15 words
The method of claim 1, wherein each set of virtual disks comprises three virtual disks.
Claim 5
Dependent Claim 17 words
The method of claim 1, wherein each set of virtual disks comprises at least four virtual disks.
Claim 6
Independent Claim 137 words
A method of checkpointing data stored on one or more storage devices in a computer employing a plurality of processors and a plurality of distributed disk storage devices, comprising the steps of: classifying all storage space associated with the processors as one or more logical disks; assigning a plurality of virtual disks to a processor, the virtual disks together comprising a subset of the logical disks; assigning functions to the virtual disks of each processor such that each function is assigned to one or more virtual disks of each processor; storing a checkpoint of the distributed disk system in one or more virtual disks, portions of the checkpoint being distributed among one or more of the virtual disks, wherein the checkpoint represents the state of the distributed disk system at a particular time; periodically updating the checkpoint.
Claim 7
Independent Claim 137 words
A method of checkpointing data stored on one or more storage devices in a computer employing a plurality of processors and a plurality of distributed disk storage devices, comprising the steps of: classifying all storage space associated with the processors as one or more logical disks; assigning a plurality of virtual disks to a processor, the virtual disks together comprising a subset of the logical disks; assigning functions to the virtual disks of each processor such that each function is assigned to one or more virtual disks of each processor; storing a checkpoint of the distributed disk system in one or more virtual disks, portions of the checkpoint being distributed among one or more of the virtual disks, wherein the checkpoint represents the state of the distributed disk system at a particular time; periodically updating the checkpoint.
Claim 8
Dependent Claim 20 words
The method of claim 5, wherein the functions comprise: user virtual disk, checkpoint virtual disk and constructing checkpoint virtual disk.
Claim 9
Dependent Claim 13 words
The method of claim 6, wherein the functions further comprise spare virtual disk.
Claim 10
Dependent Claim 41 words
The method of claim 5, wherein the step of periodically updating comprises: using a single process thread to coordinate the update of the checkpoint; using a single global modulo counter to indicate the virtual disk containing the most recent valid checkpoint.
Claim 11
Dependent Claim 66 words
The method of claim 8, wherein the step of updating further comprises: using a single global thread: causing the local state of each processor to be frozen; initiating a checkpointing operation on each of the processors; upon determining that each processor has completed its checkpointing operation, incrementing the global checkpoint counter to change the assignment of the checkpoint; instructing each processor to release its old checkpoint.
Claim 12
Dependent Claim 85 words
The method of claim 9, wherein the step of taking a local checkpoint comprises: copying the block list of an active virtual disk to a spare virtual disk; incrementing a local active block list modulo counter to change the virtual disk assigned to be the user virtual disk; resuming user programs using the new user virtual disk; constructing parity blocks for constructing a checkpoint virtual disk; when parity block construction is complete, indicating to the local checkpoint thread that the local checkpoint construction is complete.
Claim 13
Independent Claim 301 words
A method of constructing a checkpoint in a multiprocessor system, comprising: maintaining a first block list corresponding to a group of blocks stored in memory for an active version of a file; creating a second block list, identical to the first block list, and maintaining the second block list as a checkpoint; modifying data in the first group of blocks, comprising the steps of: copying data residing in a first disk location to a new disk location; overwriting some or all of the data in the new disk location with new data; replacing the entry in the first block list which corresponds to the first disk location with the address of the new disk location; accounting for the number of blocks addressed by the first and second block lists, comprising the steps of: providing used and reserved block counters, and a maximum limit for the processor; for each file, providing a new block counter and a reserved block counter; setting the used block counter of each file to be the union of blocks used by the checkpoint and user block lists; setting the reserved block counter of each file to be equal to the number of blocks in the checkpoint block list that are not also in the user block list of the file; when a block of the user block list is overwritten, incrementing the used block counter of that file and of the system by one and decrementing the reserved block counter of that file and of the system; setting the total number of used blocks to be equal to the sum of the used block counts for each file; setting the total number of reserved blocks to equal the sum of reserved block counts of each file; maintaining the counters when files are deleted, overwritten, resized or checkpointed.
Claim 14
Independent Claim 301 words
A method of constructing a checkpoint in a multiprocessor system, comprising: maintaining a first block list corresponding to a group of blocks stored in memory for an active version of a file; creating a second block list, identical to the first block list, and maintaining the second block list as a checkpoint; modifying data in the first group of blocks, comprising the steps of: copying data residing in a first disk location to a new disk location; overwriting some or all of the data in the new disk location with new data; replacing the entry in the first block list which corresponds to the first disk location with the address of the new disk location; accounting for the number of blocks addressed by the first and second block lists, comprising the steps of: providing used and reserved block counters, and a maximum limit for the processor; for each file, providing a new block counter and a reserved block counter; setting the used block counter of each file to be the union of blocks used by the checkpoint and user block lists; setting the reserved block counter of each file to be equal to the number of blocks in the checkpoint block list that are not also in the user block list of the file; when a block of the user block list is overwritten, incrementing the used block counter of that file and of the system by one and decrementing the reserved block counter of that file and of the system; setting the total number of used blocks to be equal to the sum of the used block counts for each file; setting the total number of reserved blocks to equal the sum of reserved block counts of each file; maintaining the counters when files are deleted, overwritten, resized or checkpointed.
Claim 15
Dependent Claim 43 words
A method of reconstructing lost data in a system employing the checkpoint constructing method of claim 11, comprising: overwriting the first block list with the entire second block list; deallocating any blocks in the first block list not overwritten in the copying step.
Claim 16
Dependent Claim 37 words
The method of claim 6, further comprising: if taking a checkpoint or extending a file would result in the sum of the system reserved and used counters exceeding the maximum limit, disallowing the checkpointing or extending operation.

References Cited (Backward Citations)

US3736566A Cited
US5418916A Cited
US5271013A Cited
US5247638A Cited
US5280611A Cited
US5317739A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-05-26 2000-11-25 2001-05-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-05-26 2004-11-25 2005-05-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-05-26 2008-11-25 2009-05-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag