3

In my research on file versioning at the fs level, snapshotting, and related ideas, I took a look at hard-links and exactly what they are and how they behave. Using rsync you can get a pretty slick poor man's snapshotting system up and running on file systems that don't natively support it.

But, can you get immutable hard links on ext3/4 or any other file systems for that matter?

My definition for immutable hard link is: A hard link which, when changed on one location, becomes a regular copy and no longer a hard link.

I would like this because it would enable snapshotting use of the source data to link against instead of a copy of the data (in the case of the rsync snapshotting technique).

I have gigabytes of data that can't be duplicated due to space restrictions but I have enough room if I can intelligently snapshot individual changed files with the rest linked to the source not a copy.

Given all that, is there some other technique, feature or technology I'm really looking for?

3 Answers 3

2

There has been a proposal to add a new system call, reflink(), which would do exactly what you want. So far, it has not been accepted; however, ocfs2 (since 2.6.32) already has it as a ioctl ([1][2]).

A couple of articles from May 2009 on the subject:

An older variant of the idea was called COW Links.

1
  • Ah, that looks promising! Mar 30, 2010 at 13:10
1

It seems to me that you are looking for WAFL-style snapshot. It does not exactly use "immutable hard link" semantic, but is very close to it.

1

http://blog.interlinked.org/tutorials/rsync_time_machine.html http://rsnapshot.org/

both will work with ext3/ext4.

They aren't exactly snapshots, but, will create a new directory with hardlinks to the prior generation. Deleting the prior generation will leave the new directory with the correct files.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .