Systems and methods for copying an operating source volume

US10884871B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10884871-B2
Application numberUS-201816055347-A
CountryUS
Kind codeB2
Filing dateAug 6, 2018
Priority dateAug 7, 2017
Publication dateJan 5, 2021
Grant dateJan 5, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure is directed at systems and methods for copying a source volume to a target volume. The disclosed systems/methods facilitate copying the source volume to the target volume while an operating system is configured to write to the source volume, while ensuring that the resulting copy in the target volume represents a crash-consistent state of the source volume at a single point in time. According to some embodiments, the disclosed systems and methods reduce the amount of time that the operating system writing to the source volume spends in copy-on-write mode. The disclosed systems/methods can decrease the performance burden on the operating system (e.g., free up processing resources at the operating system for other tasks), while also decreasing the amount of memory required for the copying process.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method for copying a source volume comprising multiple blocks to a target volume while an operating system is configured to write to the source volume, the method comprising: (a) designating a set of one or more blocks to be copied from the source volume to the target volume; (b) copying the designated set of one or more blocks from the source volume to the target volume while the operating system is configured to write to the source volume; (c) identifying blocks of the source volume that were written to by the operating system while the operating system was configured to write to the source volume during step (b); (d) if one or more blocks were identified in step (c), comparing an aggregate size of the identified one or more blocks to a threshold, wherein: (d)(i) if the aggregate size is greater than or equal to the threshold: changing the designated set of one or more blocks to be copied from the source volume to the target volume to include only one or more of the identified one or more blocks, and repeating steps (b), (c), and (d); (d)(ii) if the aggregate size is below the threshold: causing the operating system to enter a copy-on-write mode, in which contents of a block of the source volume that is targeted by a write instruction from the operating system are preserved in a copy-on-write file before the write instruction modifies the contents of the targeted block included in the source volume; bringing the target volume into a crash-consistent state consistent with a state of the source volume at a single point in time associated with the time the copy-on-write mode was entered by the operating system, wherein, after the operating system enters the copy-on-write mode, the method copies only one or more of the blocks identified in a last iteration of step (c) from the source volume to the target volume if the blocks identified in the last iteration of step (c) were not written to by the operating system while in copy-on-write mode prior to copying the blocks identified in the last iteration of step (c), and, if the blocks identified in the last iteration of step (c) were written to by the operating system while in cony-on-write mode prior to copying the blocks identified in the last iteration of step (c), the method copies only one or more of the blocks identified in the last iteration of step (c) from the copy-on-write file to the target volume, wherein the operating system refrains from entering the copy-on-write mode during steps (a), (b), (c), and (d)(i). 2. The method of claim 1 , wherein the method concludes if no blocks were identified in step (c). 3. The method of claim 1 , wherein designating the set of one or more blocks to be copied from the source volume to the target volume in step (a) comprises designating at least one of (i) all allocated blocks in the source volume, and (ii) all blocks in the source volume. 4. The method of claim 1 , further comprising designating a set of excluded blocks in the source volume, wherein the designating the set of one or more blocks to be copied from the source volume to the target volume in step (a) comprises excluding the excluded blocks from the designated set of one or more blocks to be copied from the source volume to the target volume. 5. The method of claim 1 , further comprising: receiving, during step (b), an indication that the operating system has written to a block of the source volume; determining, during step (b), whether the written-to block has already been copied to the target volume; if the written-to block has already been copied to the target volume, adding an identifier corresponding to the written-to block to a list of modified blocks; and if the written-to block has not already been copied to the target volume, refraining from adding the identifier corresponding to the written-to block to the list of modified blocks, wherein step (c) comprises evaluating said list of modified blocks. 6. The method of claim 5 , wherein the evaluating said list of modified blocks comprises identifying the file types associated with at least one of the modified blocks and determining if said file type is designated to be copied. 7. The method of claim 1 , further comprising: receiving, during step (b), an instruction from the operating system to write to a block of the source volume; and adding an identifier corresponding to the written-to block to a list of modified blocks, wherein step (c) comprises evaluating said list of modified blocks. 8. The method of claim 7 , wherein the evaluating said list of modified blocks comprises identifying the file types associated with at least one of the modified blocks and determining if said file type is designated to be copied. 9. The method of claim 1 , wherein the threshold is determined based on a maximum number of blocks that may be transferred from the source volume to the target volume within a target maximum time. 10. The method of claim 1 , wherein the threshold is determined based on a pre-defined proportion of a total size of at least one of the source volume and the target volume. 11. The method of claim 1 , wherein the aggregate size of the identified one or more blocks is a numerical count of the identified one or more blocks, and the threshold comprises a number of blocks. 12. The method of claim 1 , wherein the source volume is a client device and the target volume is a backup aggregator at a site local to the client device. 13. The method of claim 1 , wherein the source volume is a client device and the target volume is a storage server at a cloud storage center remote from the client device. 14. The method of claim 1 , wherein the source volume includes an image-based backup, and wherein the set of one or more blocks to be copied from the source volume to the target volume includes one or more blocks of the image-based backup. 15. The method of claim 1 , wherein the target volume is a cloud storage volume. 16. The method of claim 1 , wherein step (b) comprises sending the designated set of one or more blocks to the target volume via the internet. 17. A method for copying a source volume comprising multiple blocks to a cloud storage volume while an operating system is configured to write to the source volume, the method comprising: (a) designating a set of one or more blocks to be copied from the source volume to the cloud storage volume, wherein the source volume includes an image-based backup, and wherein the set of one or more blocks to be copied from the source volume to the cloud storage volume includes one or more blocks of the image-based backup; (b) copying the designated set of one or more blocks from the source volume to the cloud storage volume while the operating system is configured to write to the source volume by sending the designated stet of one or more blocks to the cloud storage volume via the internet; (c) identifying blocks of the source volume that were written to by the operating system while the operating system was configured to write to the source volume during step (b); (d) if one or more blocks were identified in step (c), comparing an aggregate size of the identified one or more blocks to a threshold, wherein: (d)(i) if the aggregate size is greater than or equal to the threshold: changing the designated set of one or more blocks to be copied from the source volume to the cloud storage volume to include only one or more of the identified one or more blocks, and repeating steps (b), (c), and (d); (d)(ii) if the aggregate size is below the threshold: causing the operating system

Assignees

Inventors

Classifications

  • G06F3/064Primary

    Management of blocks · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • while ensuring consistency · CPC title

  • by selection of backup contents · CPC title

  • Improving I/O performance · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10884871B2 cover?
The present disclosure is directed at systems and methods for copying a source volume to a target volume. The disclosed systems/methods facilitate copying the source volume to the target volume while an operating system is configured to write to the source volume, while ensuring that the resulting copy in the target volume represents a crash-consistent state of the source volume at a single poi…
Who is the assignee on this patent?
Datto Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/064. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).