Synchronous block level replication across availability zones
AssigneeGoogle Inc.
InventorsAndrey Arkharov, Andrei Burago, Jonathan Forbes, Anton Sukhanov, Fabricio Voznika
Life of this patent
Estimating the term…
Abstract
A replicated block storage service provides durable and high performance network-attached storage replicated in two or more zones of a single region, and remains available despite a single zone failure. A probe file is generated to determine a health state of a replicated disk. When a disk is degraded, a lease is created indicating which replica is trusted and providing visibility to backend jobs to facilitate reconciliation of data between the first replica and the second replica. Moreover, degraded file markers are generated for use by the backend jobs in quickly identifying the data to be copied.
Claims20
A method for maintaining a replicated disk in a distributed storage system, comprising:
- maintaining, in one or more memories in a first zone of the distributed storage system, a first replica including a first copy of disk data including a plurality of files;
- maintaining, in the one or more memories in a second zone of the distributed storage system, a second replica including a second copy of the disk data including the plurality of files;
- attempting, by a first virtual machine attached to the replicated disk, a write command to a specified file in both the first replica and the second replica;
- determining, based on a result of the attempted write command, a health state of the replicated disk;
- and
- when the determined health state of the replicated disk indicates that the first replica is unhealthy, closing only the specified file in both replicas while continuing to write to other files of the plurality of files on each of the first and second replicas, creating a new file corresponding to the specified file in the second replica, and creating a degraded file corresponding to the specified file in the second replica, wherein the degraded file is marked as degraded.
A system for maintaining a replicated disk in a distributed storage system, comprising:
- one or more memories in a first zone of the distributed storage system, the one or more memories in the first zone storing a first replica including a first copy of disk data including a plurality of files;
- one or more memories in a second zone of the distributed storage system, the one or more memories in the first zone storing a second replica including a second copy of the disk data including the plurality of files;
- one or more processors in communication with at least one of the first replica or the second replica, the one or more processors configured to:
- attempt a write command to a specified file in both the first replica and the second replica;
- determine, based on a result of the attempted write command, a health state of the replicated disk;
- and
- when the determined health state of the replicated disk indicates that the first replica is unhealthy:
- close only the specified file in both replicas while continuing to write to other files of the plurality of files on each of the first and second replicas,
- create a new file corresponding to the specified file in the second replica, and
- create a degraded file corresponding to the specified file in the second replica, wherein the degraded file is marked as degraded.
A non-transitory computer-readable medium storing instructions executable by one or more processor for performing a method of maintaining a replicated disk in a distributed storage system, the method comprising:
- maintaining a first replica including a first copy of disk data including a plurality of files;
- maintaining a second replica including a second copy of the disk data including the plurality of files;
- attempting a write command to a specified file in both the first replica and the second replica;
- determining, based on a result of the attempted write command, a health state of the replicated disk;
- and
- when the determined health state of the replicated disk indicates that the first replica is unhealthy, closing only the specified file in both replicas while continuing to write to other files of the plurality of files on each of the first and second replicas, creating a new file corresponding to the specified file in the second replica, and creating a degraded file corresponding to the specified file in the second replica, wherein the degraded file is marked as degraded.
Dependencies are inferred from the claim text.