On Fri, Mar 21, 2003 at 07:43:53PM +0900, Soon-Son Kwon wrote:
> What I would like to implement is the snapshot functionality within
> the filesystem. I know LVM supports snapshot but it requires a
> separate volume for each snapshot. I thought snapshot within the
> filesystem would be more convenient.
How should this work from a user perspective?
> Snapshot functionality requires copy-on-write implementation when
> something tries to modify any block, copy the old content to new
> block and overwrite the new content to that block while the snapshot
> image keeps track of the original content.
You need to be sure whatever mechanism you use to keep track of block
placements is efficient and the granularity are sane or else the
metadata to keep track of this can be enormous.
> Anyway, do you think implementing that operation requires modifying
> dm/md code instead of modifying submit_bio()?
No... I don't see why it should --- ideally you want a pseudo-block
device or similar to place the fs on; this will then be able to track
changes and such like.
Check the device-mapper and LVM as they effectively do this.