US2019065067A1PendingUtilityA1
Backup files to a disk image
Est. expiryOct 10, 2033(~7.2 yrs left)· nominal 20-yr term from priority
G06F 3/065G06F 3/0614G06F 3/0683G06F 11/1451
51
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Performing a file backup includes receiving a file to backup from a source machine and performing a write operation to write the file to a mount point in a file system on a backup server. The backup also includes intercepting a block-level data block to be written which is generated by the write operation; and writing the block-level data block to a corresponding, respective block of a disk image file having a plurality of blocks.
Claims
exact text as granted — not AI-modified1 - 30 . (canceled)
31 . A method, comprising:
receiving, by an application executing on a first computer system, a request from a second computer system to backup a particular file, wherein the request includes the particular file; causing, by the application, an operating system of the first computer system to generate a set of block-level write requests based on the particular file, wherein each of the set of block-level write requests includes data to be written to a respective block of a storage medium accessible to the first computer system; for each block-level write request in the set, the application:
intercepting that block-level write request from the operating system;
determining whether that block-level write request includes data that is not stored in the respective block associated with that block-level write request; and
writing the data included in that block-level write request to the respective block only in response to the determining indicating that that block-level write request includes data that is not stored in the respective block.
32 . The method of claim 31 , further comprising:
creating, by the application, a disk image on the storage medium, wherein the disk image comprises a plurality of blocks for storing data, and wherein the particular file is written to a set of the plurality of blocks.
33 . The method of claim 32 , further comprising:
maintaining, by the application, a table having a respective entry for each of the plurality of blocks of the disk image, wherein a given entry is operable to store a hash value that is calculated by hashing data stored in a block corresponding to that given entry.
34 . The method of claim 33 , wherein the determining of whether that block-level write request includes data that is not stored in the respective block includes:
calculating, by the application, a first hash value based on the data included in that block-level write request; and comparing, by the application, the first hash value with a second hash value stored in an entry of the table that corresponds to the respective block associated with that block-level write request, wherein the first hash value not matching the second hash value indicates that the data included in that block-level write request is not stored in the respective block.
35 . The method of claim 33 , wherein the determining of whether that block-level write request includes data that is not stored in the respective block includes:
determining, by the application, whether an entry of the table that corresponds to the respective block associated with that block-level write request includes a hash value.
36 . The method of claim 33 , further comprising:
for each block-level write request in the set, the application further:
calculating a hash value based on the data included in that block-level write request; and
storing the calculated hash value in an entry of the table that corresponds to the respective block associated with that block level write request only in response to the determining indicating that that block-level write request includes data that is not stored in the respective block.
37 . The method of claim 31 , wherein the causing of the operating system to generate the set of block-level write requests includes:
sending, to the operating system by the application, a request to write the particular file to a mount point of a file system created by the application.
38 . A non-transitory computer readable medium having program instructions stored thereon that are capable of causing a computer system to implement an application capable of performing operations comprising:
receiving, from another computer system, a request to backup a particular file included in the request; causing an operating system of the computer system to generate a set of block-level write requests for writing data of the particular file to a disk image accessible to the computer system, wherein each of the set of block-level write requests indicates one or more blocks of the disk image and includes data to be written to the one or more indicated blocks; and for a given block-level write request in the set:
intercepting the given block-level write request generated by the operating system;
determining whether the given block-level write request includes data that is not stored in the one or more blocks indicated by the given block-level write request; and
writing data included in the given block-level write request to the disk image for only blocks indicated by the given block-level write request that are determined to not store data, included in the given block-level write request, that is to be written to those blocks.
39 . The medium of claim 38 , wherein the operations further comprise:
maintaining information that provides, for each one of the one or more blocks indicated by the given block-level write request, an indication of data stored in that block.
40 . The medium of claim 39 , wherein the determining of whether the given block-level write request includes data that is not stored in the one or more blocks includes:
for each one of the one or more blocks:
calculating a hash value based on data included in the given block-level write request that corresponds to that block; and
comparing the hash value and the indication provided in the information that corresponds to that block.
41 . The medium of claim 39 , wherein the operations further comprise:
updating indications provided in the information for only those blocks for which data that is included in the given block-level write request is written to the disk image.
42 . The medium of claim 38 , wherein the disk image is associated with one or more volumes of a storage device, and wherein the operations further comprise creating a file system for each one of the one or more volumes.
43 . The medium of claim 42 , wherein the causing of the operating system to generate the set of block-level write requests includes:
performing a write operation to write the particular file to a mount point of a file system created for particular one of the one or more volumes.
44 . The medium of claim 38 , wherein the operations further comprise:
receiving, from the other computer system, disk information defining a number of blocks of a storage device; and creating the disk image based on the received disk information.
45 . A method comprising:
receiving, by an application executing on a computer system, a request to backup data that is included in the request, wherein the data included in the request comprises a set of portions; causing, by the application, an operating system of the computer system to generate block-level data that identifies, for each one of the set of portions, a respective block of a disk image for storing that portion; intercepting, by the application, the block-level data from the operating system; and writing, to the disk image by the application, only portions in the set that include data that is not stored in the respective blocks of those portions.
46 . The method of claim 45 , further comprising:
maintaining, by the application, a table that includes, for each block of the disk image, an entry for storing a value indicative of data stored in that corresponding block.
47 . The method of claim 46 , further comprising:
determining, by the application, the portions in the set to write to the disk image by:
for each portion in the set:
calculating a hash value by hashing that portion; and
comparing the hash value to a value in an entry of the table that corresponds to the respective block associated with that portion, wherein the hash value matching the value is indicative that the data included in that portion is stored in the respective block associated with that portion.
48 . The method of claim 46 , further comprising:
calculating, by the application, a hash value for each one of the portions in the set that are written to the disk image; and storing the hash value, for each one of those portions that are written to the disk image, in an entry of the table that corresponds to the respective block associated with that portion.
49 . The method of claim 45 , wherein the disk image comprises a set of sections, each of which corresponds to a volume, and wherein the method further comprises:
creating, by the application, a file system for the corresponding volume of each one of the set of sections.
50 . The method of claim 49 , wherein the causing of the operating system to generate the block-level data includes:
requesting, by the application, the operating system to write the data included in the request to a mount point of the file system corresponding to a particular one of the set of sections.Join the waitlist — get patent alerts
Track US2019065067A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.