Corral: Stackable Copy-on-Write Versioning Device using Linux Device-Mapper
Julian Monteiro and Olivier Dalle
A very promising feature of modern file systems is the ability to maintain multiple versions of the stored data.
A possible way to keep all this information is to perform periodic snapshots of the system.
The copy-on-write (CoW) method tends to be an efficient way to manage and maintain these snapshots during time.
Based on these techniques we propose the Corral system: a virtual block-device with transparent versioning, which uses the Linux device-mapper snapshot as a lower layer.
The main goal of the Corral is to provide a block level versioning device, on top of device-mapper volumes.
The snapshot method uses a CoW technique to avoid duplicating unchanged blocks between successive versions.
As long as the data remains the same, no duplication is done.
The Corral system can be used with any file system and can be implemented without the need of a kernel or module recompile.
A fully functional prototype is written in a Perl script with less than 500 lines and some experiments were done to measure the effectiveness of the proposed system.
The expected characteristics are:
- work with any file system
- retention of multiple versions
- deletion of intermediary versions
- keep current and versioned data together (on the same device)
- easy identification of modified blocks
- operate on a mounted file system
- use standard user level tools (i.e. dmsetup)
This work was presented in 'J. Monteiro and O. Dalle. CORRAL: Stackable Copy-on-Write Versioning Device using Linux Device-Mapper.
USENIX Annual Technical Conference (USENIX'08), June 2008. Note: Poster.
A prototype of this sofware can be found here