Rapid Recovery From Downtime Of Mirrored Storage Device
First Claim
1. A method, comprising steps of:
- in response to receiving one or more requests to write a plurality of data blocks;
a first storage device writing said plurality of data blocks to a non-volatile cache of a primary store of said first storage device, said primary store of said first storage device storing said plurality of data blocks, wherein said first storage device is one of a mirrored set of storage devices for mirroring data that includes said plurality of data blocks;
tracking said plurality of data blocks as dirty data blocks that have not been written to a second storage device;
retaining said plurality of data blocks in said non-volatile cache of said first storage device; and
resynchronizing said second storage device using said plurality of data blocks retained in said non-volatile cache of said first storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
No-loss rapid recovery performs resynchronization efficiently while concurrently allowing availability to mirrored data on the storage device. No-loss rapid recovery has two stages and involves storage devices that have both a non-volatile cache and primary storage and that operate as mirror buddies. The first stage is referred to herein as the buddy-retention stage. During the buddy-retention stage, writes to mirrored data are not performed on the offline mirror buddy but are performed on the online mirror buddy. The mirrored data changed in the online mirrored buddy is retained in the non-volatile cache of the retention buddy. The next stage is referred to herein as the rapid resynchronization stage. In this stage, the changed mirrored data retained by the retention buddy for no-loss rapid recovery is used to resynchronize the offline buddy. The storage device is resynchronized using the changed mirrored data retained in the cache of the mirror buddy.
24 Citations
26 Claims
-
1. A method, comprising steps of:
-
in response to receiving one or more requests to write a plurality of data blocks; a first storage device writing said plurality of data blocks to a non-volatile cache of a primary store of said first storage device, said primary store of said first storage device storing said plurality of data blocks, wherein said first storage device is one of a mirrored set of storage devices for mirroring data that includes said plurality of data blocks; tracking said plurality of data blocks as dirty data blocks that have not been written to a second storage device; retaining said plurality of data blocks in said non-volatile cache of said first storage device; and resynchronizing said second storage device using said plurality of data blocks retained in said non-volatile cache of said first storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising steps of:
-
in response to receiving one or more requests to write a plurality of data blocks; a first storage device writing said plurality of data blocks to a non-volatile cache of a primary store of said first storage device, said primary store of said first storage device storing said plurality of data blocks, wherein said first storage device is one of a mirrored set of storage devices for mirroring data that includes said plurality of data blocks; while performing cache replacement, retaining said plurality of data blocks in said non-volatile cache of said first storage device; said first storage device receiving a message indicating to cease retaining said plurality of data blocks; and in response to receiving said message, said first storage device ceasing to retain said plurality of data blocks. - View Dependent Claims (12, 13)
-
-
14. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause performance of steps:
-
in response to receiving one or more requests to write a plurality of data blocks; a first storage device writing said plurality of data blocks to a non-volatile cache of a primary store of said first storage device, said primary store of said first storage device storing said plurality of data blocks, wherein said first storage device is one of a mirrored set of storage devices for mirroring data that includes said plurality of data blocks; tracking said plurality of data blocks as dirty data blocks that have not been written to a second storage device; retaining said plurality of data blocks in said non-volatile cache of said first storage device; and resynchronizing said second storage device using said plurality of data blocks retained in said non-volatile cache of said first storage device. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause performance of steps:
-
in response to receiving one or more requests to write a plurality of data blocks; a first storage device writing said plurality of data blocks to a non-volatile cache of a primary store of said first storage device, said primary store of said first storage device storing said plurality of data blocks, wherein said first storage device is one of a mirrored set of storage devices for mirroring data that includes said plurality of data blocks; while performing cache replacement, retaining said plurality of data blocks in said non-volatile cache of said first storage device; said first storage device receiving a message indicating to cease retaining said plurality of data blocks; and in response to receiving said message, said first storage device ceasing to retain said plurality of data blocks. - View Dependent Claims (25, 26)
-
Specification