Shasplit takes a large data block, splits it into smaller parts, and puts those parts into an SHA-based content-addressed store. Reassembling those parts is a trivial "cat" invocation. Repeating parts (e.g., from previous split operations) are stored only once, which allows efficient incremental backups of whole LVM snapshots via Rsync. Shasplit shows its strengths on encrypted block devices, but might be useful for non-encrypted data, too.