Techniques and systems for data segregation in redundancy coded data storage systems
First Claim
1. A computer-implemented method, comprising:
- in response to obtaining a data storage request whose fulfillment involves storing data in a plurality of volumes of durable storage of a data storage system, the data storage request specifying a home region of a plurality of regions, storing the data by at least;
using a redundancy code, redundancy coding the data into a bundle of bundle-encoded shards that includes a set of data shards and a set of derived shards, the set of data shards including an original form of the data, the set of derived shards including a redundancy-coded form of the data, a quorum quantity of the bundle of bundle-encoded shards being sufficient to recreate the data via the redundancy code, the quorum quantity being less than a quantity of shards in the bundle;
encrypting the set of data shards using an encryption key to produce an encrypted set of data shards;
processing the encryption key so as to generate a set of encryption key shards, the set of encryption key shards having a size equal to a size of the set of data shards, a quorum quantity of the set of encryption key shards being;
less than the quorum quantity of the bundle of bundle-encoded shards; and
sufficient to regenerate the encryption key;
distributing the encrypted set of data shards and the set of encryption key shards among a first set of volumes of the plurality of volumes, the first set of volumes being located in the home region;
storing the set of derived shards among a second set of volumes of the plurality of volumes, the second set of volumes located outside of the home region; and
tracking shard storage in the second set of volumes so as to prevent a total number of shards of the set of derived shards from being stored among the second set of volumes such that a number of shards that is stored outside of the home region is insufficient to recreate the data.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system, such as a data storage system, implements techniques for segregating and controlling access to data stored in multiple regions. In some embodiments, redundancy coded shards generated from the data and stored in durable storage of a data storage system is allocated across multiple regions, but in a fashion that prevents actors with access to regions outside that of a “home” region from recovering a sufficient number of unique shards to regenerate the data represented thereby. In some embodiments, encryption is used to segregate the data by encrypting the generated shards, then storing the cryptographic information on or otherwise controlling access on hosts or other devices of only the home region.
203 Citations
20 Claims
-
1. A computer-implemented method, comprising:
in response to obtaining a data storage request whose fulfillment involves storing data in a plurality of volumes of durable storage of a data storage system, the data storage request specifying a home region of a plurality of regions, storing the data by at least; using a redundancy code, redundancy coding the data into a bundle of bundle-encoded shards that includes a set of data shards and a set of derived shards, the set of data shards including an original form of the data, the set of derived shards including a redundancy-coded form of the data, a quorum quantity of the bundle of bundle-encoded shards being sufficient to recreate the data via the redundancy code, the quorum quantity being less than a quantity of shards in the bundle; encrypting the set of data shards using an encryption key to produce an encrypted set of data shards; processing the encryption key so as to generate a set of encryption key shards, the set of encryption key shards having a size equal to a size of the set of data shards, a quorum quantity of the set of encryption key shards being; less than the quorum quantity of the bundle of bundle-encoded shards; and sufficient to regenerate the encryption key; distributing the encrypted set of data shards and the set of encryption key shards among a first set of volumes of the plurality of volumes, the first set of volumes being located in the home region; storing the set of derived shards among a second set of volumes of the plurality of volumes, the second set of volumes located outside of the home region; and tracking shard storage in the second set of volumes so as to prevent a total number of shards of the set of derived shards from being stored among the second set of volumes such that a number of shards that is stored outside of the home region is insufficient to recreate the data. - View Dependent Claims (2, 3, 4)
-
5. A system, comprising:
at least one computing device configured to implement one or more services, wherein the one or more services; in response to obtaining a data storage request whose fulfillment involves storing data in a plurality of volumes of durable storage of a data storage system, the data storage request specifying a home region of a plurality of regions, store the data by at least causing the one or more services to; using a redundancy code, redundancy code the data into a bundle of bundle-encoded shards that includes a set of data shards and set of derived shards, the set of data shards including an original form of the data, the set of derived shards including a redundancy-coded form of the data, a quorum quantity of the bundle being sufficient to recreate the data via the redundancy code, the quorum quantity being less than a quantity of shards in the bundle; encrypt the set of data shards using an encryption key to produce an encrypted set of data shards; process the encryption key so as to generate a set of encryption key shards, the set of encryption key shards having a size equal to a size of the set of data shards, a quorum quantity of the set of encryption key shards being; less than the quorum quantity of the bundle of bundle-encoded shards; and sufficient to regenerate the encryption key; distribute the encrypted set of data shards and some of the set of encryption key shards among a first set of volumes of the plurality of volumes, the first set of volumes being located in the home region; store the set of derived shards among a second set of volumes, the second set of volumes located outside of the home region; and track shard storage in the second set of volumes so as to prevent a total number of shards of the set of derived shards from being stored among the second set of volumes such that a number of shards that is stored outside of the home region is insufficient to recreate the data. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
in response to obtaining a data storage request whose fulfillment involves storing data in a plurality of volumes of durable storage of a data storage system, the data storage request specifying a home region of a plurality of regions, store the data by at least causing the computer system to; using a redundancy code, redundancy code the data into a bundle of bundle-encoded shards that includes a set of data shards and set of derived shards, the set of data shards including an original form of the data, the set of derived shards including a redundancy-coded form of the data, a quorum quantity of the bundle being sufficient to recreate the data via the redundancy code, the quorum quantity being less than a quantity of shards in the bundle; encrypt the set of data shards using an encryption key to produce an encrypted set of data shards; process the encryption key so as to generate a set of encryption key shards, the set of encryption key shards having a size equal to a size of the set of data shards, a quorum quantity of the set of encryption key shards being; less than the quorum quantity of the bundle of bundle-encoded shards; and sufficient to regenerate the encryption key; distribute the encrypted set of data shards and some of the set of encryption key shards among a first set of volumes of the plurality of volumes, the first set of volumes being located in the home region; store the set of derived shards among a second set of volumes of the plurality of volumes, the second set of volumes located outside of the home region; and track shard storage in the second set of volumes so as to prevent a total number of shards of the set of derived shards from being stored among the second set of volumes such that a number of shards that is stored outside of the home region is insufficient to recreate the data. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
Specification