Company Veeam , which produces software for backup and recovery after accidents, Added Opportunity Attaching filters that allow you to intercept input/output requests. In Blksnap, a filter is implemented, which intercepts requests for recording, reads the old value and retains it in a separate list of changes that determines the state of the snapshot. With a similar approach, the logic of working with the block device does not change, the recording in the original block device is made as it is, regardless of snapshots, which excludes the possibility of damage to the data and avoids problems even if unpredictable critical errors in BLKSNAP and overflow of the place allocated under changes.
The module, including allows you to determine which blocks were changed in the period of the last and any previous snapshot, which can be useful for the implementation of incremental backup. To maintain changes, regarding the state of snapshot, an arbitrary range of sectors can be allocated on any block device, which allows you to save changes in individual files inside the FS on block devices. The size of the area for storing changes at any time can be increased, even after creating a snapshot.
Blksnap is based on the code of the module vehmsnap , which is part of the product vehic metro agent for linux, but recycled taking into account the specifics of supply in the main composition Linux nuclei. The conceptual difference between BLKSNAP from Veeamsnap is to use the filter system attached to the block device, instead of a separate component BDEVFILTER, intercepting input/output.