Redundant storage gateways
First Claim
1. A method, comprising:
- configuring two or more storage gateways as a storage gateway group on a local network and assigning one or more volumes to each storage gateway device in the storage gateway group, wherein each storage gateway provides an interface between one or more client processes on the local network and a storage service on a remote network for accessing client data maintained on a remote data store by the storage service;
performing, by each storage gateway in the storage gateway group;
exposing a volume assigned to the storage gateway to the one or more client processes on the local network via one or more I/O ports;
receiving write requests directed to the volume from the one or more client processes via the I/O ports, appending write data indicated by the write requests to a write log corresponding to the volume on a local data store for the storage gateway, recording location information for the write data in the write log to a metadata store corresponding to the volume, and uploading write data from the write log corresponding to the volume to the remote data store;
sending the write data directed to the volume to one or more other storage gateways in the storage gateway group, wherein each of the one or more other storage gateways appends received write data directed to the volume to a write log corresponding to the volume on a local data store for the respective storage gateway; and
receiving write data directed to one or more other volumes from the one or more other storage gateways in the storage gateway group, appending the received write data to one or more other write logs corresponding to the one or more other volumes on the local data store for the storage gateway, and recording location information for the write data in the one or more other write logs to one or more other metadata stores corresponding to the one or more other volumes;
determining that one of the storage gateways in the storage gateway group is unavailable;
selecting another storage gateway in the storage gateway group to take over a different volume that was assigned to the unavailable storage gateway;
the selected storage gateway taking over storage gateway operations for the different volume; and
exposing the different volume to the one or more client processes on the local network via the one or more I/O ports.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, apparatus, and computer-accessible storage media for providing redundant storage gateways. A client may create a storage gateway group and add storage gateways to the group. The client may assign one or more volumes on a remote data store to each the storage gateways in the group. Volume data for each storage gateway in the group may be replicated to at least one other storage gateway in the group. If one of the gateways in the group becomes unavailable, one or more other gateways in the group may take over volumes previously assigned to the unavailable gateway, using the replicated data in the group to seamlessly resume gateway operations for the respective volumes. Client processes that previously communicated with the unavailable gateway may be manually or automatically directed to the gateway(s) that are taking over the unavailable gateway'"'"'s volumes.
137 Citations
28 Claims
-
1. A method, comprising:
-
configuring two or more storage gateways as a storage gateway group on a local network and assigning one or more volumes to each storage gateway device in the storage gateway group, wherein each storage gateway provides an interface between one or more client processes on the local network and a storage service on a remote network for accessing client data maintained on a remote data store by the storage service; performing, by each storage gateway in the storage gateway group; exposing a volume assigned to the storage gateway to the one or more client processes on the local network via one or more I/O ports; receiving write requests directed to the volume from the one or more client processes via the I/O ports, appending write data indicated by the write requests to a write log corresponding to the volume on a local data store for the storage gateway, recording location information for the write data in the write log to a metadata store corresponding to the volume, and uploading write data from the write log corresponding to the volume to the remote data store; sending the write data directed to the volume to one or more other storage gateways in the storage gateway group, wherein each of the one or more other storage gateways appends received write data directed to the volume to a write log corresponding to the volume on a local data store for the respective storage gateway; and receiving write data directed to one or more other volumes from the one or more other storage gateways in the storage gateway group, appending the received write data to one or more other write logs corresponding to the one or more other volumes on the local data store for the storage gateway, and recording location information for the write data in the one or more other write logs to one or more other metadata stores corresponding to the one or more other volumes; determining that one of the storage gateways in the storage gateway group is unavailable; selecting another storage gateway in the storage gateway group to take over a different volume that was assigned to the unavailable storage gateway; the selected storage gateway taking over storage gateway operations for the different volume; and exposing the different volume to the one or more client processes on the local network via the one or more I/O ports. - View Dependent Claims (2, 3, 4)
-
-
5. A storage gateway, comprising:
-
at least one processor; one or more I/O ports; and a memory comprising program instructions, wherein the program instructions are executable by the at least one processor to; provide an interface between one or more client processes on a local network and a storage service on a remote network for accessing client data maintained on a remote data store by the storage service; receive write data directed to a volume from another storage gateway on the local network and store the write data directed to the volume to a local data store, wherein the volume is exposed by the other gateway such that the other gateway uploads the write data to the remote data store for the volume, wherein the storage gateway and the other storage gateway are on the same local network, wherein the local data store is distinct from the storage service on the remote network, wherein the volume is assigned to the other storage gateway; and upon determining that the other storage gateway is unavailable, take over the volume that was assigned to the other storage gateway, wherein, to take over the volume, the program instructions are executable by the at least one processor to; begin uploading the write data directed to the volume from the local data store to the remote data store; and expose, by the storage gateway, the volume to the one or more client processes on the local network via one or more I/O ports such that the volume is assigned to the storage gateway and the storage gateway stores write data for the volume to the local data store and uploads the write data to the remote data store for the volume via the storage service on the remote network. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-accessible storage medium storing program instructions computer-executable to implement a storage gateway on a computing device operable to:
-
provide an interface between one or more client processes on a local network and a storage service on a remote network for accessing client data maintained on a remote data store by the storage service; expose one or more volumes to the one or more client processes on the local network via one or more I/O ports, wherein the one or more volumes are assigned to the storage gateway; receive write data directed to the one or more volumes from the one or more client processes via the one or more I/O ports, store the write data directed to the one or more volumes to a local data store, and upload the write data directed to the one or more volumes from the local data store to the remote data store; send the write data directed to the one or more volumes to one or more other storage gateways in a storage gateway group on the local network; receive write data directed to one or more other volumes from the one or more other storage gateways in the storage gateway group and store the write data directed to the one or more other volumes to the local data store, wherein each of the one or more other volumes is assigned to a particular one of the one or more other storage gateways; wherein the storage gateway is configured to take over at least one volume that was assigned to one of the one or more other storage gateways in the storage gateway group; and wherein to take over the at least one volume, the storage gateway is configured to, for each volume taken over, expose the volume to the one or more client processes on the local network via the one or more I/O ports such that the volume is assigned to the storage gateway and the storage gateway stores write data for the at least one volume to the local data store and uploads the write data to the remote data store for the at least one volume via the storage service on the remote network. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification