Casync

is a content-addressable data synchronization tool. It can be thought up as a hybrid between git and rsync. It can operate on the block layer using raw devices and the filesystem level.