US10929238B2ActiveUtilityA1

Management of changed-block bitmaps

83
Assignee: STRATO SCALE LTDPriority: Jan 31, 2018Filed: Jan 31, 2018Granted: Feb 23, 2021
Est. expiryJan 31, 2038(~11.6 yrs left)· nominal 20-yr term from priority
G06F 3/065G06F 2009/45579G06F 11/1451G06F 3/0683G06F 11/1458G06F 2201/84G06F 9/45558G06F 3/0619G06F 2201/82G06F 11/1448
83
PatentIndex Score
7
Cited by
5
References
16
Claims

Abstract

An apparatus includes an interface and a processor. The interface is configured to communicate with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks. The computing system continually updates a data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands. The processor is configured, in response to a request to create a copy of the storage volume, to instruct the computing system to (i) create a copy of the data structure and reset the data structure, (ii) create the copy of the storage volume, while continuing to execute the storage commands and update the data structure, and (iii) after the copy of the storage volume is completed, merge the data structure into the copy of the data structure.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. An apparatus, comprising:
 an interface, configured to communicate with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks, wherein the computing system updates a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands, since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and 
 a processor, which is configured, in response to a request to create a copy of the storage volume, to instruct the computing system to:
 (i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed; 
 (ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and 
 (iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure. 
 
 
     
     
       2. The apparatus according to  claim 1 , wherein the computing system is configured to create the copy of the changed-block data structure and reset the changed-block data structure atomically, without processing any intervening storage commands. 
     
     
       3. The apparatus according to  claim 1 , wherein the changed-block data structure and the copy of the changed-block data structure comprise respective bitmaps, and wherein the computing system is configured to merge the changed-block data structure into the copy of the changed-block data structure by performing a bit-wise OR operation between the bitmaps. 
     
     
       4. The apparatus according to  claim 1 , wherein creation of the copy of the changed-block data structure and creation of the copy of the storage volume are unsynchronized with one another in the computing system. 
     
     
       5. The apparatus according to  claim 1 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates that a given storage block has changed, even though the given block has not actually changed. 
     
     
       6. The apparatus according to  claim 1 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates a change in a given storage block, which is reflected in the copy of the storage volume and which was executed in the storage volume after the copy of the changed-block data structure was created. 
     
     
       7. The apparatus according to  claim 1 , wherein the processor is configured to copy and reset the changed-block data structure by swapping the existing changed-block data structure with a new, reset changed-block data structure. 
     
     
       8. An apparatus, comprising:
 a computing system, which is configured to:
 run one or more workloads that issue storage commands for execution in a storage volume comprising multiple storage blocks; and 
 repeatedly update a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and 
 
 a processor, which is configured, in response to a request to create a copy of the storage volume, to instruct the computing system to:
 (i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed; 
 (ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and 
 (iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure. 
 
 
     
     
       9. A method, comprising:
 communicating with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks, wherein the computing system updates a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands, since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and 
 in response to a request to create a copy of the storage volume, instructing the computing system to:
 (i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed; 
 (ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and 
 (iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure. 
 
 
     
     
       10. The method according to  claim 9 , wherein creating the copy of the changed-block data structure and resetting the changed-block data structure are performed atomically, without processing any intervening storage commands. 
     
     
       11. The method according to  claim 9 , wherein the changed-block data structure and the copy of the changed-block data structure comprise respective bitmaps, and wherein the computing system merges the changed-block data structure into the copy of the changed-block data structure by performing a bit-wise OR operation between the bitmaps. 
     
     
       12. The method according to  claim 9 , wherein creation of the copy of the changed-block data structure and creation of the copy of the storage volume are unsynchronized with one another in the computing system. 
     
     
       13. The method according to  claim 9 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates that a given storage block has changed, even though the given block has not actually changed. 
     
     
       14. The method according to  claim 9 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates a change in a given storage block, which is reflected in the copy of the storage volume and which was executed in the storage volume after the copy of the changed-block data structure was created. 
     
     
       15. The method according to  claim 9 , wherein creating the copy and reseting the changed-block data structure comprise swapping the existing changed-block data structure with a new, reset changed-block data structure. 
     
     
       16. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to:
 communicate with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks, wherein the computing system updates a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands, since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and 
 in response to a request to create a copy of the storage volume, instruct the computing system to: 
 (i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed; 
 (ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and 
 (iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.