# US 2017/0255666 A1 · Verifying file system snapshots

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

- Number: US 2017/0255666 A1
- Document ID: US20170255666A1
- Status: Published application
- Kind: A1
- Application number: 15/059,632
- Filed: 2016-03-03
- Published: 2017-09-07
- Earliest claimed: 2016-03-03
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Erik Rueger; Christof Schmitt
- Web page: https://patentgrep.com/patent/US20170255666A1

## CPC

- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 11/10: Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 11/14: Error detection or correction of the data by redundancy in operations (error detection or correction of the data by redundancy in hardware G06F11/16)
- G06F 11/1446: Point-in-time backing up or restoration of persistent data
- G06F 11/16: Error detection or correction of the data by redundancy in hardware
- 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 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- 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 includes receiving a snapshot comprising one or more files, calculating one or more file checksums for the files in the snapshot, creating a listing of elements in the snapshot, calculating a listing checksum corresponding to the listing of elements in the snapshot, comparing the one or more file checksums and the listing checksum of the received snapshot to one or more file checksums and listing checksums of an unverified snapshot responsive to receiving a snapshot verification request, and providing an indication that the snapshot is valid responsive to determining the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are the same. A computer program product and a computer system corresponding to the method are also disclosed.

## Claims

### Claim 1

A method comprising:
receiving a snapshot comprising one or more files;
calculating one or more file checksums for the files in the snapshot;
creating a listing of elements in the snapshot;
calculating a listing checksum corresponding to the listing of elements in the snapshot;
comparing the one or more file checksums and the listing checksum of the received snapshot to one or more file checksums and listing checksums of an unverified snapshot responsive to receiving a snapshot verification request; and
providing an indication that the snapshot is valid responsive to determining that the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are the same.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving an unverified snapshot comprising one or more files.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
calculating one or more file checksums corresponding to one or more of the files in the unverified snapshot;
creating a listing of elements in the unverified snapshot; and
calculating a listing checksum corresponding to the listing of elements in the unverified snapshot.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
providing an indication that the snapshot is not valid responsive to determining the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are not the same.

### Claim 5 (depends on 4)

The method of claim 4, wherein a listing of elements in the snapshot comprises files within the snapshot as well as checksums associated with the files in the snapshot.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
storing the one or more file checksums, the snapshot listing, and the listing checksum in a data store.

### Claim 7 (depends on 1)

The method of claim 1, wherein calculating one or more file checksums corresponding to one or more of the files in the snapshot occurs responsive to one or more of the files in the snapshot being edited.

### Claim 8

A computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising instructions to:
receive a snapshot comprising one or more files;
calculate one or more file checksums for the files in the snapshot;
create a listing of elements in the snapshot;
calculate a listing checksum corresponding to the listing of elements in the snapshot;
compare the one or more file checksums and the listing checksum of the received snapshot to one or more file checksums and listing checksums of an unverified snapshot responsive to receiving a snapshot verification request; and
provide an indication that the snapshot is valid responsive to determining that the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are the same.

### Claim 9 (depends on 8)

The computer program product of claim 8, further comprising instructions to:
receive an unverified snapshot comprising one or more files.

### Claim 10 (depends on 9)

The computer program product of claim 9, further comprising instructions to:
calculate one or more file checksums corresponding to one or more of the files in the unverified snapshot;
create a listing of elements in the unverified snapshot; and
calculate a listing checksum corresponding to the listing of elements in the unverified snapshot.

### Claim 11 (depends on 10)

The computer program product of claim 10, further comprising instructions to:
providing an indication that the snapshot is not valid responsive to determining the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are not the same.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein a listing of elements in the snapshot comprises files within the snapshot as well as checksums associated with the files in the snapshot.

### Claim 13 (depends on 8)

The computer program product of claim 8, further comprising instructions to:
store the one or more file checksums, the snapshot listing, and the listing checksum in a data store.

### Claim 14 (depends on 8)

The computer program product of claim 8, wherein calculating the one or more file checksums corresponding to one or more of the files in the snapshot occurs responsive to one or more of the files in the snapshot being edited.

### Claim 15

A computer system comprising:
one or more computer processors;
one or more computer-readable storage media;
program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising instructions to:
receive a snapshot comprising one or more files;
calculate one or more file checksums for the files in the snapshot;
create a listing of elements in the snapshot;
calculate a listing checksum corresponding to the listing of elements in the snapshot;
compare the one or more file checksums and the listing checksum of the received snapshot to one or more file checksums and listing checksums of an unverified snapshot responsive to receiving a snapshot verification request; and
provide an indication that the snapshot is valid responsive to determining that the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are the same.

### Claim 16 (depends on 15)

The computer system of claim 15, further comprising instructions to:
receive an unverified snapshot comprising one or more files.

### Claim 17 (depends on 16)

The computer system of claim 16, further comprising instructions to:
calculate one or more file checksums corresponding to one or more of the files in the unverified snapshot;
create a listing of elements in the unverified snapshot; and
calculate a listing checksum corresponding to the listing of elements in the unverified snapshot.

### Claim 18 (depends on 17)

The computer system of claim 17, further comprising instructions to:
providing an indication that the snapshot is not valid responsive to determining the one or more file checksums and the listing checksum of the received snapshot and the one or more file checksums and listing checksums of an unverified snapshot are not the same.

### Claim 19 (depends on 15)

The computer system of claim 15, further comprising instructions to:
store the one or more file checksums, the snapshot listing, and the listing checksum in a data store.

### Claim 20 (depends on 15)

The computer system of claim 15, wherein calculating the one or more file checksums corresponding to one or more of the files in the snapshot occurs responsive to one or more of the files in the snapshot being edited.
