| CPC G06F 11/1464 (2013.01) [G06F 3/0619 (2013.01); G06F 3/0622 (2013.01); G06F 3/065 (2013.01); G06F 3/067 (2013.01); G06F 11/1461 (2013.01); G06F 11/2071 (2013.01); G06F 2201/84 (2013.01)] | 20 Claims |

|
1. A system, comprising:
one or more computers comprising one or more respective processors and memory that implement a private block data storage service at a private data center operated by and on behalf of a single organization, the private block data storage service configured to:
in response to one or more requests received via an application programming interface (API) of the private block data storage service:
provision a volume on behalf of a client, wherein the volume is created on one or more first block data storage systems located at the private data center of the client, wherein the volume is attached to a first group of virtual machine compute nodes hosted at the private data center, and wherein the first group of virtual machine compute nodes execute copies of a program to provide access to the volume; and
provision a mirror volume for the volume, wherein the mirror volume is created on one or more second block data storage systems at a geographic location remote from the private data center, wherein the mirror volume is attached to a second group of virtual machine compute nodes that execute copies of the program to provide access to the volume, and wherein the mirror volume is to be kept consistent with the volume by the block data storage service;
service data access requests to the volume using the first group of virtual machine compute nodes, wherein the data access requests are received by the private block data storage service over a network, wherein the private block data storage service load balances the data access requests among the first group of virtual machine compute nodes that execute copies of the program to provide access to the volume, and wherein the private block data storage service collects and stores audit data about the volume that tracks at least some of the data access requests performed on the volume by different users;
send an update message to the one or more second block data storage systems when data in the volume is modified, wherein the update message causes the one or more second block data storage systems to replicate the modifications of the volume to the mirror volume; and
after a promotion of the mirror volume to act as the volume in response to an unavailability of the volume, service additional data access requests using the mirror volume attached to the second group of virtual machine compute nodes that execute copies of the program to provide access to the volume.
|