Digital storage system and method having alternating deferred updating of mirrored storage disks
First Claim
1. A fault-tolerant disk storage subsystem for storing data blocks of digital information for a computer system, comprising:
- a mirrored pair of disks for storing data blocks of digital information in duplicate on both disks of said mirrored pair; and
a controller for said mirrored pair of disks, said controller having a memory;
, said controller comprising;
means for temporarily accumulating in said memory until storage thereof in duplicate on both disks of said mirrored pair a multiplicity of data blocks provided by said computer system as separate writes to the disk storage subsystem;
means for identifying each block stored in said memory that has not yet been stored on one disk of said pair and for identifying each block stored in said memory that has not yet been stored on the other disk of said pair;
means for sorting said accumulated data blocks that have not yet been stored on said one disk into an order that can be efficiently written onto said one disk in a batch run and for sorting said accumulated data blocks that have not yet been stored on said other disk into an order that can be efficiently written onto said other disk in another batch run;
means for providing a first mode of operation in which said one disk is in a write-only mode and said sorted accumulated data blocks that have not been stored on said one disk are written in batch mode onto said one disk, while said other disk serves said computer system in a read-only mode and writes from said computer system are received into said memory;
means for providing a second mode of operation in which said other disk is in a write-only mod and said sorted accumulated data blocks that have not been stored on aid other disk are written in batch mode onto said other disk without interruption, while said one disk serves said computer system in a read-only mode and writes from said computer system are received into said memory;
means for operating said mirrored pair of disks in said first mode of operation during spaced time intervals and in said second mode of operation during at least a portion of the time between said spaced time intervals; and
means for providing a requested data block to said computer system from said memory if said requested data block is in said memory, and otherwise from said other disk if said mirrored pair of disks is operating in said first mode of operation and from said one disk if said mirrored pair of disks is operating in said second mode of operation,whereby data blocks are written onto said mirrored pair of disks in sorted order in batched runs without interference from or with the reading of data blocks requested by said computer system.
2 Assignments
0 Petitions
Accused Products
Abstract
A fault-tolerant high performance mirrored disk subsystem is described which has an improved disk writing scheme that provides high throughput for random disk writes and at the same time guarantees high performance for disk reads. The subsystem also has an improved recovery mechanism which provides fast recovery in the event that one of the mirrored disks fails and during such recovery provides the same performance as during non-recovery periods.
Data blocks or pages which are to be written to disk are temporarily accumulated and sorted (or scheduled) into an order (or schedule) which can be written to disk efficiently, which in a preferred embodiment is in accordance with the physical location on disk at which each such block will be written. This also generally corresponds to an order which is encountered by a writ head during a physical scan of a disk. The disks of a mirrored pair are operated out of phase with each other, so that one will be in read mode while the other is in write mode. Updated blocks are written out to the disk that is in write mode in sorted order, while guaranteed read performance is provided by the other disk that is in read mode. When a batch of updates has been applied to one disk of a mirrored pair, the mirrored pair switch their modes, and the other disk is updated. Preferably the updates are kept in a non-volatile memory, which furthermore advantageously may be made fault-tolerant as well.
During recovery a pair of spare alternating mirrored disks is introduced to which new updates are directed, while a background scan process copies data from the surviving disk to the new mirrored pair.
109 Citations
18 Claims
-
1. A fault-tolerant disk storage subsystem for storing data blocks of digital information for a computer system, comprising:
-
a mirrored pair of disks for storing data blocks of digital information in duplicate on both disks of said mirrored pair; and a controller for said mirrored pair of disks, said controller having a memory;
, said controller comprising;means for temporarily accumulating in said memory until storage thereof in duplicate on both disks of said mirrored pair a multiplicity of data blocks provided by said computer system as separate writes to the disk storage subsystem; means for identifying each block stored in said memory that has not yet been stored on one disk of said pair and for identifying each block stored in said memory that has not yet been stored on the other disk of said pair; means for sorting said accumulated data blocks that have not yet been stored on said one disk into an order that can be efficiently written onto said one disk in a batch run and for sorting said accumulated data blocks that have not yet been stored on said other disk into an order that can be efficiently written onto said other disk in another batch run; means for providing a first mode of operation in which said one disk is in a write-only mode and said sorted accumulated data blocks that have not been stored on said one disk are written in batch mode onto said one disk, while said other disk serves said computer system in a read-only mode and writes from said computer system are received into said memory; means for providing a second mode of operation in which said other disk is in a write-only mod and said sorted accumulated data blocks that have not been stored on aid other disk are written in batch mode onto said other disk without interruption, while said one disk serves said computer system in a read-only mode and writes from said computer system are received into said memory; means for operating said mirrored pair of disks in said first mode of operation during spaced time intervals and in said second mode of operation during at least a portion of the time between said spaced time intervals; and means for providing a requested data block to said computer system from said memory if said requested data block is in said memory, and otherwise from said other disk if said mirrored pair of disks is operating in said first mode of operation and from said one disk if said mirrored pair of disks is operating in said second mode of operation, whereby data blocks are written onto said mirrored pair of disks in sorted order in batched runs without interference from or with the reading of data blocks requested by said computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of storing data blocks of digital information received from a computer system in a storage subsystem having a mirrored pair of storage disks and for retrieving data blocks from said storage subsystem upon request from said computer system, comprising the steps of:
-
temporarily accumulating a group of data blocks received from said computer system in the form of separate writes as batches of data blocks to be stored; sorting said accumulated data blocks in each batch in an order for efficient batch writing said mirrored pair of disks; operating said mirrored pair of disks in a first mode of operation in which one disk of said mirrored pair is in write-only mode while the other disk of said mirrored pair is in read-only mode and in a second mode of operation in which said one disk is in read-only mode while said other disk is in write-only mode; copying onto said one disk during said first mode of operation a batch of accumulated and sorted data blocks in said accumulated group that have not been already written to said one disk; copying onto said other disk during said second mode of operation a batch of accumulated and sorted data blocks in said accumulated group that have not been already written to said other disk; operating said mirrored pair of disks in said first mode of operation during spaced time intervals and in said second mode of operation during at least a portion of the time between said spaced time intervals; and retrieving a data block requested by said computer system from said accumulated group of data blocks if said requested data block is in said accumulated group, and otherwise from said other disk if said mirrored pair of disks is operating in said first mode of operation and from said one disk if said mirrored pair of disks is operating in said second mode of operation, whereby data blocks are written onto said mirrored pair of disks in sorted order without interference from or with the reading of data blocks requested by said computer system. - View Dependent Claims (17, 18)
-
Specification