# US 2019/0171374 A1 · Data management system

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

- Number: US 2019/0171374 A1
- Document ID: US20190171374A1
- Status: Published application
- Kind: A1
- Application number: 16/270,586
- Filed: 2019-02-07
- Published: 2019-06-06
- Earliest claimed: 2014-11-04
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Arvind Jain; Arvind Nithrakashyap; Bipul Sinha; Soham Mazumdar; Adam Gee; Kenny To; Jonathan Derryberry
- Web page: https://patentgrep.com/patent/US20190171374A1

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0641: {De-duplication techniques}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/1435: {using file system or storage system metadata}
- G06F 11/1446: Point-in-time backing up or restoration of persistent data
- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1458: {Management of the backup or restore process}
- G06F 16/113: {Details of archiving (lifecycle management in storage systems G06F3/0649; point-in-time backing up or restoration of persistent data G06F11/1446)}
- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/148: {File search processing}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/84: Mapping; Conversion
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04L 9/3247: {involving digital signatures}
- H04L 43/0817: by checking functioning
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 61/5061: Pools of addresses
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 11/1453: {using de-duplication of the data}
- G06F 11/1461: {Backup scheduling policy}
- G06F 11/1464: {for networked environments}
- G06F 11/1484: {involving virtual machines}
- G06F 11/202: {where processing functionality is redundant (redundant communication control functionality G06F11/2005, redundant storage control functionality G06F11/2089)}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2201/80: Database-specific techniques
- 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)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems for managing, storing, and serving data within a virtualized environment are described. In some embodiments, a data management system may manage the extraction and storage of virtual machine snapshots, provide near instantaneous restoration of a virtual machine or one or more files located on the virtual machine, and enable secondary workloads to directly use the data management system as a primary storage target to read or modify past versions of data. The data management system may allow a virtual machine snapshot of a virtual machine stored within the system to be directly mounted to enable substantially instantaneous virtual machine recovery of the virtual machine.

## Claims

### Claim 1

A data management system, comprising:
a first storage device of a first type;
a second storage device of a second type different from the first storage device of the first type, the first storage device of the first type utilizes magnetic data storage and the second storage device of the second type utilizes solid-state data storage; and
one or more processors in communication with the first storage device and the second storage device, the one or more processors configured to acquire a first snapshot of a portion of a real or virtual machine, the first snapshot corresponds with a first state of the portion of the real or virtual machine at a first point in time, the one or more processors configured to acquire one or more snapshots of the portion of the real or virtual machine, the one or more snapshots correspond with one or more states of the portion of the real or virtual machine at one or more points in time prior to the first point in time, the one or more processors configured to cause the first snapshot to be stored as a first file of a set of files using the first storage device and cause the one or more snapshots to be stored as one or more incremental files of the set of files using the second storage device, the one or more processors configured to receive an instruction to output a file associated with a second snapshot of the one or more snapshots from a computing device and generate the file associated with the second snapshot using the first file and two or more incremental files of the one or more incremental files, the one or more processors configured to read the two or more incremental files associated with snapshots of the portion of the real or virtual machine prior to the first point in time from the second storage device while the first file associated with the first snapshot of the portion of the real or virtual machine at the first point in time is read from the first storage device, the one or more processors configured to patch the two or more incremental files to the first file and output the file associated with the second snapshot to the computing device.

### Claim 2 (depends on 1)

The data management system of claim 1, wherein:
the one or more processors configured to acquire a merged file associated with the second snapshot in response to reception of the instruction, the merged file includes a first pointer to the first file stored using the first storage device and a second set of pointers to the two or more incremental files stored using the second storage device, the one or more processors configured to read the two or more incremental files pointed to by the second set of pointers from the second storage device while the first file pointed to by the first pointer is read from the first storage device.

### Claim 3 (depends on 1)

The data management system of claim 1, wherein:
the first storage device of the first type has a first read speed and the second storage device of the second type has a second read speed that is greater than the first read speed.

### Claim 4 (depends on 1)

The data management system of claim 1, wherein:
the first storage device of the first type has a first write speed; and
the second storage device of the second type has a second write speed that is faster than the first write speed.

### Claim 5 (depends on 1)

The data management system of claim 1, wherein:
the one or more processors configured to cause the file associated with the second snapshot to be transmitted to the computing device.

### Claim 6 (depends on 1)

The data management system of claim 1, wherein:
the first file comprises a full image-level backup of a virtual machine at the first point in time.

### Claim 7 (depends on 1)

The data management system of claim 1, wherein:
the one or more processors configured to read the first file associated with the first snapshot from the first storage device of the first type in parallel with reading the two or more incremental files of the one or more incremental files associated with the second snapshot from the second storage device of the second type.

### Claim 8 (depends on 1)

The data management system of claim 1, wherein:
the first storage device of the first type comprises a hybrid hard-disk/solid-state drive; and
the second storage device of the second type comprises a solid-state drive.

### Claim 9 (depends on 1)

The data management system of claim 1, wherein:
the first storage device of the first type comprises a hard disk drive; and
the second storage device of the second type comprises a solid-state drive.

### Claim 10

A method for operating a data management system, comprising:
acquiring a first snapshot of a portion of a real or virtual machine, the first snapshot corresponds with a first state of the portion of the real or virtual machine at a first point in time;
acquiring one or more snapshots of the portion of the real or virtual machine, the one or more snapshots correspond with one or more states of the portion of the real or virtual machine at one or more points in time prior to the first point in time;
storing the first snapshot as a first file of a set of files using a first storage device of a first type;
storing the one or more snapshots as one or more incremental files of the set of files using a second storage device of a second type different from the first storage device of the first type, the first storage device of the first type utilizes magnetic data storage and the second storage device of the second type utilizes solid-state data storage;
receiving an instruction to output a file associated with a second snapshot of the one or more snapshots from a computing device;
sequentially reading the first file associated with the first snapshot of the portion of the real or virtual machine at the first point in time from the first storage device of the first type while reading two or more incremental files of the one or more incremental files associated with snapshots of the portion of the real or virtual machine prior to the first point in time from the second storage device of the second type in response to receiving the instruction;
generating the file associated with the second snapshot using the first file and the two or more incremental files, the generating the file associated with the second snapshot includes patching the two or more incremental files to the first file; and
outputting the file associated with the second snapshot to the computing device.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
acquiring a merged file associated with the second snapshot in response to receiving the instruction, the merged file includes a first pointer to the first file stored using the first storage device and a second set of pointers to the two or more incremental files stored using the second storage device; and
reading the first file pointed to by the first pointer from the first storage device while reading the two or more incremental files pointed to by the second set of pointers from the second storage device.

### Claim 12 (depends on 10)

The method of claim 10, wherein:
the first storage device of the first type has a first read speed and the second storage device of the second type has a second read speed that is greater than the first read speed.

### Claim 13 (depends on 10)

The method of claim 10, wherein:
the first storage device of the first type has a first write speed; and
the second storage device of the second type has a second write speed that is faster than the first write speed.

### Claim 14 (depends on 10)

The method of claim 10, wherein:
the outputting the file associated with the second snapshot to the computing device includes transmitting the file associated with the second snapshot to the computing device.

### Claim 15 (depends on 10)

The method of claim 10, wherein:
the first file comprises a full image-level backup of a virtual machine at the first point in time.

### Claim 16 (depends on 10)

The method of claim 10, wherein:
the sequentially reading includes sequentially reading the first file associated with the first snapshot from the first storage device of the first type in parallel with reading the two or more incremental files of the one or more incremental files associated with the second snapshot from the second storage device of the second type.

### Claim 17 (depends on 10)

The method of claim 10, wherein:
the first storage device of the first type comprises a hybrid hard-disk/solid-state drive; and
the second storage device of the second type comprises a solid-state drive.

### Claim 18 (depends on 10)

The method of claim 10, wherein:
the first storage device of the first type comprises a hard disk drive; and
the second storage device of the second type comprises a solid-state drive.

### Claim 19

A data management system, comprising:
a first storage device of a first type;
a second storage device of a second type different from the first storage device of the first type, the first storage device of the first type utilizes magnetic data storage and the second storage device of the second type utilizes solid-state data storage; and
one or more processors in communication with the first storage device and the second storage device, the one or more processors configured to acquire a first snapshot of at least a portion of a real or virtual machine, the first snapshot corresponds with a first state of the at least the portion of the real or virtual machine at a first point in time, the one or more processors configured to acquire one or more snapshots of the at least the portion of the real or virtual machine, the one or more snapshots correspond with one or more states of the at least the portion of the real or virtual machine at one or more points in time subsequent to the first point in time, the one or more processors configured to cause the first snapshot to be stored as a first file of a set of files using the first storage device and cause the one or more snapshots to be stored as one or more incremental files of the set of files using the second storage device, the one or more processors configured to receive an instruction to output a file associated with a second snapshot of the one or more snapshots to a computing device and generate the file associated with the second snapshot using the first file and two or more incremental files of the one or more incremental files, the one or more processors configured to cause the two or more incremental files to be read from the second storage device while the first file associated with the first snapshot is read from the first storage device, the one or more processors configured to apply data from the two or more incremental files to the first file and cause the file associated with the second snapshot to be transmitted to the computing device.

### Claim 20 (depends on 19)

The data management system of claim 19, wherein:
the one or more processors configured to acquire a merged file associated with the second snapshot, the merged file includes a first pointer to the first file stored using the first storage device and a second set of pointers to the two or more incremental files stored using the second storage device, the one or more processors configured to cause the two or more incremental files pointed to by the second set of pointers to be read from the second storage device while the first file pointed to by the first pointer is read from the first storage device.
