Scalable file storage service
First Claim
Patent Images
1. A system, comprising:
- a plurality of computing devices that implement, using resources of a provider network that includes a plurality of availability containers with independent failure profiles;
a service access subsystem configured to receive client requests formatted according to one or more industry-standard file system interfaces from a plurality of compute instances of a virtual computing service implemented at the provider network;
a metadata subsystem configured to implement sequential consistency semantics on at least a subset of file store operations; and
a storage subsystem configured to store at least respective data portions of one or more file stores, wherein a particular data portion of a particular file store of the one or more file stores is organized as a replica group comprising a plurality of extent replicas including a first extent replica at a first availability container of the provider network and a second extent replica at a second availability container of the provider network;
wherein, in response to a particular client request received at the service access subsystem and directed to a file store object, the plurality of computing devices is configured to;
perform an atomic metadata operation comprising a group of file system metadata modifications to metadata that corresponds to data of the file store object, including a first metadata modification at a first node of the metadata subsystem and a second metadata modification at a second node of the metadata subsystem; and
apply at least one modification to the data of the file store object at a plurality of extent replicas at the storage subsystem prior to a transmission of a response to the particular client request, wherein the data of the file store object is stored on a plurality of nodes of the storage subsystem and the metadata that corresponds to the data of the file store object is stored on one or more other nodes of the metadata subsystem separate from the data of the particular file store object.
1 Assignment
0 Petitions
Accused Products
Abstract
A client request, formatted in accordance with a file system interface, is received at an access subsystem of a distributed multi-tenant storage service. After the request is authenticated at the access subsystem, an atomic metadata operation comprising a group of file system metadata modifications is initiated, including a first metadata modification at a first node of a metadata subsystem of the storage service and a second metadata modification at a second node of the metadata subsystem. A plurality of replicas of at least one data modification corresponding to the request are saved at respective storage nodes of the service.
-
Citations
23 Claims
-
1. A system, comprising:
-
a plurality of computing devices that implement, using resources of a provider network that includes a plurality of availability containers with independent failure profiles; a service access subsystem configured to receive client requests formatted according to one or more industry-standard file system interfaces from a plurality of compute instances of a virtual computing service implemented at the provider network; a metadata subsystem configured to implement sequential consistency semantics on at least a subset of file store operations; and a storage subsystem configured to store at least respective data portions of one or more file stores, wherein a particular data portion of a particular file store of the one or more file stores is organized as a replica group comprising a plurality of extent replicas including a first extent replica at a first availability container of the provider network and a second extent replica at a second availability container of the provider network; wherein, in response to a particular client request received at the service access subsystem and directed to a file store object, the plurality of computing devices is configured to; perform an atomic metadata operation comprising a group of file system metadata modifications to metadata that corresponds to data of the file store object, including a first metadata modification at a first node of the metadata subsystem and a second metadata modification at a second node of the metadata subsystem; and apply at least one modification to the data of the file store object at a plurality of extent replicas at the storage subsystem prior to a transmission of a response to the particular client request, wherein the data of the file store object is stored on a plurality of nodes of the storage subsystem and the metadata that corresponds to the data of the file store object is stored on one or more other nodes of the metadata subsystem separate from the data of the particular file store object. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method, comprising:
performing, by one or more computing devices; receiving a particular client request directed to a file store object, formatted in accordance with an industry-standard file system interface, at an access subsystem of a multi-tenant storage service; determining, at the access subsystem, that the client request meets authentication and authorization requirements; initiating, in response to the particular client request, an atomic metadata operation comprising a group of file system metadata modifications to metadata that corresponds to data of the file store object, including a first metadata modification at a first node of a metadata subsystem of the storage service and a second metadata modification at a second node of the metadata subsystem, wherein the data of the file store object is stored on one or more nodes of a storage subsystem of the storage service separate from the metadata that corresponds to the data of the file store object; verifying, in response to the particular client request, that a plurality of replicas of at least one data modification at a storage subsystem of the storage service have been saved; and storing a record of completion of the particular client request, wherein the record is to be used, asynchronously with respect to the particular client request, to generate a billing amount to a customer of the storage service in accordance with a usage-based pricing policy. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a node of a storage subsystem of a distributed storage service, wherein the node is configured to:
-
store, at a first data center, a plurality of extent replicas associated with a set of file stores, including a first extent replica comprising data of a first file store and a second extent replica comprising metadata associated with the first file store, wherein one or more additional extent replicas corresponding to the first extent replica and the second extent replica are stored at other data centers, and wherein the first extent replica is designated as a master data replica of a particular replica group corresponding to a particular file store object, wherein data of the particular file store object is stored on one or more nodes of the first extent replica and metadata corresponding to the data of the particular file store object is stored on one or more other nodes of the second extent replica separate from the data of the particular file store object; receive a write request directed to the master data replica from an access subsystem of the distributed storage service, wherein the access subsystem implements an industry-standard file system interface and is configured to identify the master replica using metadata managed by a metadata subsystem of the distributed storage service; and coordinate, in response to the write request, respective updates to a plurality of members of the particular replica group using a consensus based state management protocol. - View Dependent Claims (18)
-
-
19. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a node of a metadata subsystem of a distributed storage service, wherein the node is configured to:
-
coordinate storage of metadata associated with one or more file stores implemented at the distributed storage service; receive, from an access subsystem of the distributed storage service, an internal operation request generated at the access subsystem in response to a client request formatted in accordance with an industry-standard file system interface; determine that, to respond to the internal operation request directed to a file store object, a plurality of metadata objects associated with the file store including a first metadata object and a second metadata object that each comprise metadata corresponding to data of the file store object are to be modified in accordance with sequential consistency semantics, wherein at least a portion of the first metadata object is stored at a first extent replica group and at least a portion of the second metadata object is stored at a second extent replica group, and wherein the data of the file store object is stored on one or more nodes of a storage subsystem separate from the metadata corresponding to the data of the file store object; initiate an update protocol to implement updates to the first extent replica group and the second extent replica group in accordance with the sequential consistency semantics. - View Dependent Claims (20)
-
-
21. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a node of an access subsystem of a distributed storage service, wherein the node is configured to:
-
expose one or more network addresses to enable a plurality of clients of the distributed storage service to submit service requests in accordance with one or more industry-standard file system interfaces; receive, in accordance with a particular interface of the one or more file system industry-standard interfaces, an I/O request directed to a particular object of a file store comprising a plurality of blocks, wherein each block is mapped to one or more physical pages by the storage service; obtain metadata pertaining to the particular object from a metadata subsystem of the distributed storage service; determine, using the metadata, (a) a particular node of a storage subsystem of the distributed storage service that stores at least one replica of contents of a particular logical block of the plurality of blocks and interacts with other nodes of the storage subsystem using a consensus-based protocol to implement update operations, and (b) an offset within the particular logical block that is to be accessed in response to the file I/O request; and transmit an internal I/O request indicating the offset to the particular node of the storage subsystem. - View Dependent Claims (22, 23)
-
Specification