Sluggers,

Does anyone know if there is a Veritas equivilent to doing file
based snapshots in Linux. I've been told that this is available 
in the Logical Volume Manager (LVM) but looking at their site it
appears that they do volume based snapshots not file based.
And these snapshots in fact copy the entire data.

The basic method is like this,

The file system inode points to the blocks that make up the 
file. When a snapshot of the file is made a new inode is 
created which has a duplicate set of pointers to the same 
blocks. (Note I use "inode" here loosely, as I'm not sure that 
it's quite the same as an ext2 inode).

A request to write to a block in the file is met by copying the
block to a new location and updating the original inode pointer 
to point to the new location but leaving the copied inode alone.

Snapshot initial creation

                   +---------+
   fileinode +---> | block 0 | <---+ newinode
             |     +---------+     |
             |---> | block 1 | <---+
             |     +---------+     |
             +---> | block 2 | <---+
                   +---------+

After write to block 1 of the file
              
                   +---------+
   fileinode +---> | block 0 | <---+ newinode
             |     +---------+     |
             |     | block 1 | <---+
             |     +---------+     |
             +---> | block 2 | <---+
             |     +---------+
             +---> | block 1 | 
                   +---------+

So newinode is a point in time snapshot which I can backup to 
tape at my leisure. The advantage of which is that I don't need 
twice the disk space to make a "point in time copy". Of course 
if I leave the snapshot in place for long enough the file will
eventually roll through all the pointers so that I in fact have
two seperate files. 

Does anybody know of a Linux equivelent to this?

Thanks

Pete

-- 
SLUG - Sydney Linux User Group Mailing List - http://slug.org.au/
More Info: http://slug.org.au/lists/listinfo/slug

Reply via email to