Rapid recovery from downtime of mirrored storage device
First Claim
1. A method, comprising steps of:
- from a storage device client of a mirrored set of storage devices for mirroring data that includes a plurality of data blocks, a first storage device receiving one or more requests indicating to retain data blocks in a non-volatile cache of said first storage device;
wherein said first storage device and a second storage device belong to said mirrored set of storage devices;
in response to receiving one or more requests to write said plurality of data blocks stored in a primary store of said first storage device;
said first storage device writing said plurality of data blocks to said non-volatile cache of said first storage device;
in response to receiving said one or more requests indicating to retain data blocks, marking each data block of said plurality of data blocks for recovery retention;
performing cache management on said non-volatile cache, wherein performing cache management includes, while each data block of said plurality of data blocks is clean, foregoing replacing said each data block in response to said each data block being marked for recovery retention; and
after foregoing replacing said each data block of said plurality of data blocks, 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.
-
Citations
14 Claims
-
1. A method, comprising steps of:
-
from a storage device client of a mirrored set of storage devices for mirroring data that includes a plurality of data blocks, a first storage device receiving one or more requests indicating to retain data blocks in a non-volatile cache of said first storage device; wherein said first storage device and a second storage device belong to said mirrored set of storage devices; in response to receiving one or more requests to write said plurality of data blocks stored in a primary store of said first storage device; said first storage device writing said plurality of data blocks to said non-volatile cache of said first storage device; in response to receiving said one or more requests indicating to retain data blocks, marking each data block of said plurality of data blocks for recovery retention; performing cache management on said non-volatile cache, wherein performing cache management includes, while each data block of said plurality of data blocks is clean, foregoing replacing said each data block in response to said each data block being marked for recovery retention; and after foregoing replacing said each data block of said plurality of data blocks, 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. One or more non-transitory storage media storing sequences of instructions which, when executed by one or more computing devices, cause:
-
from a storage device client of a mirrored set of storage devices for mirroring data that includes a plurality of data blocks, a first storage device receiving one or more requests indicating to retain data blocks in a non-volatile cache of said first storage device; wherein said first storage device and a second storage device belong to said mirrored set of storage devices; in response to receiving one or more requests to write said plurality of data blocks stored in a primary store of said first storage device; said first storage device writing said plurality of data blocks to said non-volatile cache of said first storage device; in response to receiving said one or more requests indicating to retain data blocks, marking each data block of said plurality of data blocks for recovery retention; performing cache management on said non-volatile cache, wherein performing cache management includes, while each data block of said plurality of data blocks is clean, foregoing replacing said each data block in response to said each data block being marked for recovery retention; and after foregoing replacing said each data block of said plurality of data blocks, 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 (9, 10, 11, 12, 13, 14)
-
Specification