IP Library Granted Patent US 10,909,005
Granted Patent B2
US 10,909,005 · App. 16/285,189 · Granted Feb 2, 2021

Object-level metadata-preserving cross heterogeneous operating systems backup and restore apparatuses, methods and systems

Inventors: Giovanni Roberto Carvelli (Norwalk, CT); Chad A. Kosie (Norwalk, CT)
Assignee: Datto, Inc.
G06F11/1471G06F9/4411G06F11/1004G06F11/1451G06F11/1458G06F16/176G06F16/907
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,909,005
App. No.
16/285,189
Granted
Feb 2, 2021
Kind
B2
Abstract

The Object-Level Metadata-Preserving Cross Heterogeneous Operating Systems Backup And Restore Apparatuses, Methods And Systems (“MPBR”) transforms pairing request, backup request, restore request inputs via MPBR components into pairing response, backup response, restore response outputs. A device pairing request associated with a source share at a source device is obtained. A simulated block device backup volume for the source share is created on a backup device and formatted using a file system driver executable by the backup device's operating system. A backup request associated with the source share is obtained. A connection is established between the backup device and the source device using a file sharing protocol driver configured such that files metadata is presented to the backup device in a compatible metadata format. Files from the source share are synchronized. Changed synchronized files are determined. Metadata associated with the changed files is updated. A snapshot of the volume is generated.

Claims (95)

1. A metadata-preserving backup apparatus, comprising:

a memory;

a component collection in the memory, including:

a device pairing component, and

a backup processing component;

a processor disposed in communication with the memory, and configured to issue a plurality of processing instructions from the component collection stored in the memory,

wherein the processor issues instructions from the device pairing component, stored in the memory, to:

obtain, via at least one processor, a device pairing request associated with a source share at a source device;

determine, via at least one processor, an operating system configuration associated with the source share;

create, via at least one processor, a simulated block device backup volume for the source share on a backup device, wherein the source device and the backup device utilize heterogeneous operating systems; and

format, via at least one processor, the simulated block device backup volume with the source device's file system using a file system driver executable by the backup device's operating system;

wherein the processor issues instructions from the backup processing component, stored in the memory, to:

obtain, via at least one processor, a backup request associated with the source share;

configure, via at least one processor, a file sharing protocol driver such that metadata associated with files stored on the source share is presented to the backup device in a compatible metadata format with regard to the backup device's operating system;

establish, via at least one processor, a connection between the backup device and the source device using the configured file sharing protocol driver;

synchronize, via the connection, files from the source share to the simulated block device backup volume;

determine, via at least one processor, changed synchronized files that have been changed since a preceding backup request associated with the source share was processed;

update, via at least one processor, metadata associated with the changed synchronized files on the simulated block device backup volume with metadata associated with the changed synchronized files on the source share; and

generate, via at least one processor, a snapshot of the simulated block device backup volume.

2. The apparatus of claim 1 , wherein the operating system configuration comprises a specification of an operating system associated with the source device.

3. The apparatus of claim 1 , wherein the operating system configuration comprises a specification of a file system associated with the source share.

4. The apparatus of claim 1 , wherein the simulated block device backup volume is a ZFS zvol.

5. The apparatus of claim 1 , wherein the source device's operating system is Microsoft Windows, wherein the backup device's operating system is Linux, wherein the source device's file system is NTFS, and wherein the file system driver is NTFS-3G.

6. The apparatus of claim 1 , wherein the backup request is obtained as a result of a manual backup initiated by a user.

7. The apparatus of claim 1 , wherein the backup request is obtained as a result of a scheduled backup.

8. The apparatus of claim 1 , wherein the file sharing protocol driver is one of: CIFS, SMB, Samba, and wherein the compatible metadata format is Linux extended file attributes format.

9. The apparatus of claim 1 , wherein the instructions to synchronize files further comprise instructions to execute an incremental copy operation that copies files that have been changed.

10. The apparatus of claim 1 , wherein the instructions to synchronize files further comprise instructions to copy the entire contents of the source share.

11. The apparatus of claim 1 , wherein the instructions to determine changed synchronized files further comprise instructions to determine each file's changed time.

12. The apparatus of claim 1 , wherein the instructions to determine changed synchronized files further comprise instructions to determine each file's checksum.

13. The apparatus of claim 1 , wherein the instructions to update metadata further comprise instructions to copy each changed file's metadata provided by the file sharing protocol driver to metadata of the respective changed file on the simulated block device backup volume using the file system driver.

14. The apparatus of claim 1 , wherein the instructions to update metadata further comprise instructions to:

decode each changed file's metadata provided by the file sharing protocol driver to determine metadata values; and

set corresponding metadata values of the respective changed file on the simulated block device backup volume.

15. The apparatus of claim 1 , further, comprising:

a restore processing component in the component collection; and

the processor issues instructions from the restore processing component, stored in the memory, to:

obtain, via at least one processor, a restore target request associated with the source share;

determine, via at least one processor, a recovery point associated with the restore target request, wherein the recovery point is associated with a snapshot of the simulated block device backup volume;

generate, via at least one processor, a clone of the simulated block device backup volume at the recovery point;

generate, via at least one processor, a network target for the clone; and

provide, via at least one processor, the generated network target to a user associated with the restore target request.

16. The apparatus of claim 15 , wherein the network target is an iSCSI target.

17. The apparatus of claim 15 , further, comprising:

the processor issues instructions from the device pairing component, stored in the memory, to:

determine, via at least one processor, a set of authorized restore device identifiers associated with the source share;

the processor issues instructions from the restore processing component, stored in the memory, to:

determine, via at least one processor, a restore device identifier of a restore device associated with the restore target request; and

deny, via at least one processor, the restore target request upon determining that the restore device identifier is not in the set of authorized restore device identifiers.

18. The apparatus of claim 17 , wherein a restore device identifier is one of: a UUID, a MAC address.

19. A processor-readable metadata-preserving backup non-transient physical medium storing processor-executable components, the components, comprising:

a component collection stored in the medium, including:

a device pairing component, and

a backup processing component;

wherein the device pairing component, stored in the medium, includes processor-issuable instructions to:

obtain, via at least one processor, a device pairing request associated with a source share at a source device;

determine, via at least one processor, an operating system configuration associated with the source share;

create, via at least one processor, a simulated block device backup volume for the source share on a backup device, wherein the source device and the backup device utilize heterogeneous operating systems; and

format, via at least one processor, the simulated block device backup volume with the source device's file system using a file system driver executable by the backup device's operating system;

wherein the backup processing component, stored in the medium, includes processor-issuable instructions to:

obtain, via at least one processor, a backup request associated with the source share;

configure, via at least one processor, a file sharing protocol driver such that metadata associated with files stored on the source share is presented to the backup device in a compatible metadata format with regard to the backup device's operating system;

establish, via at least one processor, a connection between the backup device and the source device using the configured file sharing protocol driver;

synchronize, via the connection, files from the source share to the simulated block device backup volume;

determine, via at least one processor, changed synchronized files that have been changed since a preceding backup request associated with the source share was processed;

update, via at least one processor, metadata associated with the changed synchronized files on the simulated block device backup volume with metadata associated with the changed synchronized files on the source share; and

generate, via at least one processor, a snapshot of the simulated block device backup volume.

20. A processor-implemented metadata-preserving backup system, comprising:

a device pairing component means, to:

obtain, via at least one processor, a device pairing request associated with a source share at a source device;

determine, via at least one processor, an operating system configuration associated with the source share;

create, via at least one processor, a simulated block device backup volume for the source share on a backup device, wherein the source device and the backup device utilize heterogeneous operating systems; and

format, via at least one processor, the simulated block device backup volume with the source device's file system using a file system driver executable by the backup device's operating system;

a backup processing component means, to:

obtain, via at least one processor, a backup request associated with the source share;

configure, via at least one processor, a file sharing protocol driver such that metadata associated with files stored on the source share is presented to the backup device in a compatible metadata format with regard to the backup device's operating system;

establish, via at least one processor, a connection between the backup device and the source device using the configured file sharing protocol driver;

synchronize, via the connection, files from the source share to the simulated block device backup volume;

determine, via at least one processor, changed synchronized files that have been changed since a preceding backup request associated with the source share was processed;

update, via at least one processor, metadata associated with the changed synchronized files on the simulated block device backup volume with metadata associated with the changed synchronized files on the source share; and

generate, via at least one processor, a snapshot of the simulated block device backup volume.

21. A processor-implemented metadata-preserving backup method, comprising:

executing processor-implemented device pairing component instructions to:

obtain, via at least one processor, a device pairing request associated with a source share at a source device;

determine, via at least one processor, an operating system configuration associated with the source share;

create, via at least one processor, a simulated block device backup volume for the source share on a backup device, wherein the source device and the backup device utilize heterogeneous operating systems; and

format, via at least one processor, the simulated block device backup volume with the source device's file system using a file system driver executable by the backup device's operating system;

executing processor-implemented backup processing component instructions to:

obtain, via at least one processor, a backup request associated with the source share;

configure, via at least one processor, a file sharing protocol driver such that metadata associated with files stored on the source share is presented to the backup device in a compatible metadata format with regard to the backup device's operating system;

establish, via at least one processor, a connection between the backup device and the source device using the configured file sharing protocol driver;

synchronize, via the connection, files from the source share to the simulated block device backup volume;

determine, via at least one processor, changed synchronized files that have been changed since a preceding backup request associated with the source share was processed;

update, via at least one processor, metadata associated with the changed synchronized files on the simulated block device backup volume with metadata associated with the changed synchronized files on the source share; and

generate, via at least one processor, a snapshot of the simulated block device backup volume.

Assignments (10)
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 24, 2025
From: DATTO, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 070609/0599 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 21, 2025
From: DATTO, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 070586/0681 →
RELEASE OF SECURITY INTEREST (PATENTS) Recorded Mar 20, 2025
From: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
To: DATTO, INC.
Reel/Frame 070583/0566 →
CHANGE OF NAME Recorded Oct 27, 2023
From: DATTO, INC.
To: DATTO, LLC
Reel/Frame 065385/0256 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Aug 9, 2022
From: DATTO, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 061129/0839 →
RELEASE OF SECURITY INTEREST Recorded Jun 23, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: DATTO, INC.; AUTOTASK CORPORATION; OPEN MESH, INC.; SOONR, INC.
Reel/Frame 060293/0565 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48776/0282 Recorded Oct 23, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: DATTO, INC.
Reel/Frame 054191/0913 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: DATTO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 054191/0984 →
PATENT SECURITY AGREEMENT Recorded Apr 2, 2019
From: DATTO, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 048776/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2019
From: CARVELLI, GIOVANNI ROBERTO; KOSIE, CHAD A.
To: DATTO, INC.
Reel/Frame 048432/0222 →