This is a question that all Datto partners have had to ask at least once: “Hi, this is for serial XYZ. Is the backup running for agent 192.0.2.1 a full or a differential merge.
In case anyone isn’t a Datto users, a “differential merge” is a method used to fix problems with a backup. It reads the entire source disk for changes, but still only writes changes. This is opposed to a new full, which also reads the entire disk and can fix any issues, but has the obvious consequence of requiring enough disk space for a full backup.
It’s tough to differentiate between the two. Differential merges will usually run faster, but that only helps if you have an idea of what a normal transfer speed looks like for that agent during a backup.
One way I’ve been using to determine is to check the amount of data that is changing on the volume. As you know, Datto uses ZFS snapshots as backup points and changes are written to the live data (this is the “inverse chain” that you’ll hear referenced). To check how much data has changed on the live set, you can use:
zfs list -o name,creation,written homePool/home/agents/192.0.2.1
You’ll get something like this:
NAME CREATION WRITTEN homePool/home/agents/192.0.2.1 Tue Jul 15 22:32 2016 3.41G
This is similar to the commands used to view the real backup size. The ‘written’ column isn’t normally part of the output used for that because we’re normally running these after the fact to determine whether an agent took a full. ‘WRITTEN’ refers to the amount of data changed on the live filesystem.
To check for a full, preface this with a ‘watch’ command:
watch zfs list -o name,creation,written homePool/home/agents/192.0.2.1
If this number is staying relatively static (or at least increasing at a rate that matches a normal backup for this agent), you have a full. To double check, view this while you’re watching the progress of a backup in the web UI. If the agent is going through the volume and the number in the written column stays the same or is much lower than what the UI shows as complete, you have a diff merge.
As always, if unsure about any of the above, open a ticket with support.