# US 12,007,850 B2 · Method and system for generating backup of a large file and optimizing resource utilization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,007,850 B2
- Document ID: US12007850B2
- Status: Granted
- Kind: B2
- Application number: 17/687,333
- Filed: 2022-03-04
- Published: 2023-09-07
- Granted: 2024-06-11
- Earliest claimed: 2022-03-04
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Sunil Yadav; Shelesh Chopra; Aaditya Rakesh Bansal; Manish Sharma
- Web page: https://patentgrep.com/patent/US12007850B2

## CPC

- G06F 11/1464: {for networked environments}
- G06F 11/1435: {using file system or storage system metadata}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/3409: {for performance assessment}
- G06F 2201/815: Virtual
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for performing data backup includes: receiving a backup request specifying a file where the file is stored in a shared storage. Additionally, in response to the backup request: retrieving, by a primary data node, properties of the file; determining, by the primary data node, resource availability for plurality of secondary data nodes where the primary data node and the plurality of secondary data nodes is operatively connected to the shared storage and a backup storage; logically dividing, by the primary data node, the file into a plurality of segments using at least the properties of the file; and coordinating, by the primary data node, the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes.

## Claims

### Claim 1

A method for performing data backup, the method comprising:
receiving a backup request specifying a file, wherein the file is stored in a shared storage;
in response to the backup request:
retrieving, by a primary data node, properties of the file;
determining, by the primary data node, resource availability for plurality of secondary data nodes, wherein the primary data node and the plurality of secondary data nodes are operatively connected to the shared storage and a backup storage;
logically dividing, by the primary data node, the file into a plurality of segments using at least the properties of the file; and
coordinating, by the primary data node, the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes,
wherein coordinating the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes comprises:
allocating a first set of segments from the plurality of segments to a first secondary data node of the plurality of secondary data nodes;
allocating a second set of segments from the plurality of segments to a second secondary data node of the plurality of secondary data nodes;
receiving, by the primary data node, a first completion notification from the first secondary data node and a second completion notification from the second secondary data node;
generate, in response to receiving the first completion notification and the second completion notification, aggregated metadata specifying storage locations of all the plurality of segments in the backup storage; and
sending, by the primary data node, the aggregated metadata to the backup storage,
wherein the first secondary data node backs up the first set of segments,
wherein the second secondary data node backs up the second set of segments, and
wherein the file comprises the first set of segments and the second set of segments.

### Claim 2 (depends on 1)

The method of claim 1, further comprising, in response to the backup request:
obtaining a snapshot comprising the file,
wherein the snapshot is stored on the shared storage,
wherein the snapshot is accessible to the primary data node and the plurality of secondary nodes, and
wherein the snapshot is used by plurality of secondary data nodes to back up the file.

### Claim 3 (depends on 1)

The method of claim 1, wherein logically dividing the file into the plurality of segments comprises:
obtaining a predetermined segment size; and
logically dividing the file based on the predetermined segment size.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first completion notification comprises first metadata specifying first storage locations of the first set of segments in the backup storage and wherein the second completion notification comprises second metadata specifying second storage locations of the second set of segments in the backup storage.

### Claim 5

A production host for hosting virtual machines, comprising:
a persistent storage storing:
a data node monitoring information repository;
a data limit information repository;
a bandwidth limit information repository; and
a primary data node monitoring information;
an application agent programmed to:
receive a backup request specifying a file, wherein the file is stored in a shared storage; and
in response to the backup request:
retrieve, by a primary data node, properties of the file;
determine, by the primary data node, resource availability for plurality of secondary data nodes, wherein the primary data node and the plurality of secondary data nodes is operatively connected to the shared storage and a backup storage;
logically divide, by the primary data node, the file into a plurality of segments using at least the properties of the file; and
coordinate, by the primary data node, the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes,
wherein coordinating the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes comprises:
allocating a first set of segments from the plurality of segments to a first secondary data node of the plurality of secondary data nodes;
allocating a second set of segments from the plurality of segments to a second secondary data node of the plurality of secondary data nodes;
receiving, by the primary data node, a first completion notification from the first secondary data node and a second completion notification from the second secondary data node;
generate, in response to receiving the first completion notification and the second completion notification, aggregated metadata specifying storage locations of all the plurality of segments in the backup storage; and
sending, by the primary data node, the aggregated metadata to the backup storage,
wherein the first secondary data node backs up the first set of segments,
wherein the second secondary data node backs up the second set of segments, and
wherein the file comprises the first set of segments and the second set of segments.

### Claim 6 (depends on 5)

The production host of claim 5, wherein the application agent is further programmed to, in response to the backup request:
obtain a snapshot comprising the file,
wherein the snapshot is stored on the shared storage,
wherein the snapshot is accessible to the primary data node and the plurality of secondary nodes, and
wherein the snapshot is used by plurality of secondary data nodes to back up the file.

### Claim 7 (depends on 5)

The production host of claim 5, wherein logically dividing the file into the plurality of segments comprises:
obtaining a predetermined segment size; and
logically dividing the file based on the predetermined segment size.

### Claim 8

A non-transitory computer readable medium (CRM) comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for hosting virtual machines, the method comprising:
receiving a backup request specifying a file, wherein the file is stored in a shared storage; and
in response to the backup request:
retrieving, by a primary data node, the properties of the file from a snapshot;
determining, by the primary data node, querying resource availability for a plurality of a secondary data nodes, by the primary data node, wherein the primary data node and the plurality of secondary data nodes is operatively connected to the shared storage and a backup storage;
logically dividing, by the primary data node, the file into a plurality of segments, by the primary data node using at least the properties of the file;
coordinating, by the primary data node, the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes, wherein coordinating the backup of the file using the plurality of segments and the resource availability of the plurality of secondary data nodes comprises:
allocating a first set of segments from the plurality of segments to a first secondary data node of the plurality of secondary data nodes;
allocating a second set of segments from the plurality of segments to a second secondary data node of the plurality of secondary data nodes;
receiving, by the primary data node, a first completion notification from the first secondary data node and a second completion notification from the second secondary data node;
generate, in response to receiving the first completion notification and the second completion notification, aggregated metadata specifying storage locations of all the plurality of segments in the backup storage; and
sending, by the primary data node, the aggregated metadata to the backup storage,
wherein the first secondary data node backs up the first set of segments,
wherein the second secondary data node backs up the second set of segments, and
wherein the file comprises the first set of segments and the second set of segments.

### Claim 9 (depends on 8)

The CRM of claim 8, the method further comprising, in response to the backup request:
obtaining a snapshot comprising the file,
wherein the snapshot is stored on the shared storage,
wherein the snapshot is accessible to the primary data node and the plurality of secondary nodes, and
wherein the snapshot is used by plurality of secondary data nodes to back up the file.

### Claim 10 (depends on 8)

The CRM of claim 8, wherein logically dividing the file into the plurality of segments comprises:
obtaining a predetermined segment size; and
logically dividing the file based on the predetermined segment size.
