Online data movement without compromising data integrity
Abstract
Embodiments are directed to modifying storage capacity within a data store and to modifying resiliency for a data store. In one scenario, a computer system receives a request to move data. The computer system may determine that data is to be moved from an allocation on one data store to a new allocation on another data store. The computer system may create a new allocation on the other data store, where the new allocation is configured to receive data from the first data store. The computer system then moves the data to the new allocation on the second data store as data I/O requests are received at the first data store. Data store access requests are synchronized with the data movement by directing the data store access requests to the first data store, to the second data store or to both data stores depending on the type of access request.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . At a computer system including at least one processor, a computer-implemented method for modifying storage capacity within a data store, the method comprising:
receiving a request to move one or more portions of data; determining that data is to be moved from an allocation on a first data store to a new allocation on the second data store, the first and second data stores being configured to store allocations of data; creating the new allocation on the second data store, the new allocation being configured to receive at least a portion of data from the first data store; and moving the data to the new allocation on the second data store as data I/O requests are received at the first data store, wherein data store access requests are synchronized with the data movement by directing the data store access requests to the first data store, to the second data store or to both data stores depending on the type of access request.
2 . The method of claim 1 , wherein determining that data is to be moved from the first data store to the second data store comprises determining which data or data stores are being most heavily utilized.
3 . The method of claim 1 , wherein determining that data is to be moved from the first data store to the second data store further comprises determining which data among the stored data is moveable.
4 . The method of claim 1 , wherein the second data store comprises at least one hard drive, and wherein the new allocation on the second data store is located nearer to the beginning of the second data store than the allocation on the first data store.
5 . The method of claim 1 , wherein the second data store comprises a data storage media that was added to the computing system, the second data store being located on a fault domain that is different from the fault domain of the first data store.
6 . The method of claim 5 , wherein the fault domain comprises a hardware storage rack, such that the second data store comprises data storage media that was added to hardware storage rack that is different from the hardware storage rack of the first data store.
7 . The method of claim 1 , wherein the second data store comprises a plurality of block storage devices, at least two of which are of different capacity.
8 . The method of claim 7 , further comprising:
adding at least one hard disk to the plurality of block storage devices in the second data store; and rebalancing at least a portion of data stored on the first data store among the newly added hard drive and at least one of the existing plurality of hard disks, the rebalancing being performed without compromising existing resiliency implementations on the second data store.
9 . The method of claim 7 , further comprising:
removing at least one hard disk from the plurality of hard disks in the first data store; and rebalancing at least a portion of data stored on the first data store among the remaining hard disks of the plurality of hard disks, the rebalancing being performed without compromising existing resiliency implementations on the second data store.
10 . The method of claim 1 , wherein data I/O collisions are prevented during transition of the data to the new allocation by allowing a user's data writes take priority over the computing system's data writes.
11 . The method of claim 1 , further comprising deleting one or more previously used allocations on the first data store upon determining that the data contained in the allocation has been moved to the second data store.
12 . The method of claim 11 , wherein the previously used allocation includes a pointer to the newly created allocation on the second data store, such that if data is deleted during transition of the data from the first data store to the second data store, the newly created allocation is notified of the deletion.
13 . At a computer system including at least one processor, a computer-implemented method for modifying resiliency for at least a portion of a data store, the method comprising:
determining that a resiliency scheme for at least a specified portion of a data store is to be changed from a first resiliency scheme to a second, different resiliency scheme, the data store including one or more portions of data; determining how the data within the specified portion of the data store is to be altered according to the change in resiliency scheme; and modifying the resiliency scheme of the specified portion of the data store, such that the resiliency scheme for the specified portion of the data store is changed, while the resiliency scheme for other portions of the data store is not changed.
14 . The method of claim 13 , wherein the resiliency scheme for the specified portion of the data store is changed from mirror to parity or from parity to mirror.
15 . The method of claim 13 , further comprising:
adding a storage device to the data store, wherein the specified portion of the data store is implementing an N-way mirror resiliency scheme; and implementing an N+1-way mirroring scheme for the data store, wherein the data store data is split between two storage devices.
16 . The method of claim 13 , further comprising:
removing a storage device from the data store; and rebalancing the data that was stored on the removed data storage device among the remaining storage devices, without rebalancing existing data on the remaining storage devices.
17 . The method of claim 16 , wherein allocations are implemented within the data store to logically define specified areas of storage, each allocation identifying where the allocation is located within the data store, what data it contains and where its data is stored on one or more different data storage devices.
18 . A computer system comprising the following:
one or more processors; one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, cause the computing system to perform a method for modifying storage capacity within a data store, the method comprising the following:
receiving a request to move one or more portions of data off of a first data store and on to a second data store;
identifying which data is to be moved from the first data store to the second data store;
creating a new allocation on the second data store, the new allocation being configured to receive at least a portion of data from the first data store; and
moving the data to the new allocation on the second data store as data I/O requests are received at the first data store, such that data writes are sent to both the first and second data stores, and data reads are sent to the first data store until the data of the first data store is copied to the new allocation on the second data store.
19 . The computer system of claim 18 , wherein allocations are implemented within the data store to logically define specified areas of storage, each allocation identifying where the allocation is located within the data store, what data it contains and where its data is stored on one or more different data storage devices, the allocations being stored in a mapping table.
20 . The computer system of claim 19 , further comprising:
removing at least one storage device from the data store; accessing the mapping table to determine which allocations were stored on the removed storage devices; and rebalancing the data of the allocations stored on the removed drive to one or more other storage devices of the data store.Join the waitlist — get patent alerts
Track US2016080490A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.