I'm looking for a way to implement something close to the following backup scheme:
- Initially, a full image is copied to the backup target.
- Periodically (e.g. nightly), only blocks that have changed since the last backup are copied to the backup target.
- Ideally, it should be possible to mount snapshots from any point in time, or delete (flatten) some snapshots selectively.
Can this be implemented using LVM (or some other way)? It needs tracking which blocks have become dirty since the last backup, which I'm not sure LVM can do... I'd rather avoid the permanent performance cost of running on an LVM snapshot at all times.