Skip to content

How incremental backups work

MSP Backups sends the full data of a device once. After that, each backup uploads only chunks that storage does not already hold.

Chunks

The agent splits each file into chunks with FastCDC, a content-defined chunking method. Chunk boundaries depend on the data, not on fixed offsets, so inserting a few bytes in the middle of a file changes only the chunks around the edit. The rest of the file still produces the same chunks and is not uploaded again. Chunks average 256 KiB, with a 64 KiB minimum.

Deduplication

Each chunk is named by a keyed hash of its content (see Encryption and key recovery). Before uploading a chunk, the agent checks whether an object with that name already exists in storage. If it does, the agent records a reference to it and moves on. A chunk that repeats within the same run is also uploaded once.

Because the hash is keyed with the device's key, deduplication works within one device's backups. It does not compare data across devices or tenants, which is what keeps one tenant from learning anything about another's files.

Skipping unchanged files

Before reading a file, the agent compares it with the newest snapshot of the same folder. A file with the same size and modification time reuses that snapshot's chunk list without being read. This keeps daily backups of large, mostly static folders quick.

Once a month the agent reads every file again instead of trusting the previous snapshot. That run still uploads only chunks missing from storage, so it costs disk reads, not upload bandwidth.

Compression

New chunks are compressed with Zstandard before they are encrypted. Data that is already compressed, such as video or zip files, stays about the same size.

What a restore point is

Every backup run writes a manifest: the full folder tree with each file's metadata and chunk list. The manifest is encrypted like the chunks. A restore point is complete on its own. You can restore any restore point without the ones before it, and deleting an old restore point never breaks a newer one.

Storage usage

The global admin Fleet Health page shows how much space deduplication and compression saved across the fleet. Each tenant's usage counts the new data actually written, so a tenant is not billed or capped for chunks it reused.

When restore points are pruned, the agent deletes chunks that no remaining restore point uses and reports the freed space to the server. See Retention.

Edit or report a problem