Slashdot Mirror


Ext3cow Versioning File System Released For 2.6

Zachary Peterson writes "Ext3cow, an open-source versioning file system based on ext3, has been released for the 2.6 Linux kernel. Ext3cow allows users to view their file system as it appeared at any point in time through a natural, time-shifting interface. This is can be very useful for revision control, intrusion detection, preventing data loss, and meeting the requirements of data retention legislation. See the link for kernel patches and details."

7 of 241 comments (clear)

  1. CVS/Subversion replacement ? by BuR4N · · Score: 5, Interesting

    This might be far fetched but how far off is it to use these filesystems as a revision control system replacement ?

    Never tinkered with any of these filesystems, but wouldnt it be very comfortable for at least us developers to have a filesystem that worked something like Subversion. Just hook up something on the network and use it as the central code repository.

    --
    http://www.intellipool.se/ - Intellipool Network Monitor
  2. Re:So which is it? by Bob54321 · · Score: 4, Informative

    From the example screenshot it appears it is a file system. You take a snapshot of your system at some point in time and it stores this data even when files change. Of course, with any file system it is important to have functionality that allows you to view the files as well...

    --
    :(){ :|:& };:
  3. True undelete by ex-geek · · Score: 4, Insightful

    Undelete, not half-assed, desktop based trash can implementations, is something I've always been missing on Linux. And yes, I generally know what I'm doing, but i'm also human and do make mistakes.

  4. VMS file versions someone? by ntufar · · Score: 4, Interesting

    It reminds me of VMS file versions.

    In VMS if you had a file named article.txt, each time you modified and saved it in editor, a new version was created named article.txt;1 article.txt;2 article.txt;3 and so forth. So after a long session of edit and saves you could end up with a hundred copies of file in your directory. A lot of clutter in the directory but easy access to older versions of the files.

    With Ext2cow you basically get the same functionality in a bit different way. By default you see only article.txt file. If you need to access a previous version of the file you need to specify a cryptic code like this: article.txt@10233745. A bit cumbersome but, hey, how often you access older version of your file anyways. Looks better than VMS' approach.

    This filesystem seems like a perfect solution for me as I am writing my Ph.D thesis. Currently I take backup every day and name it thesis20070420.tar.bz2, thesis200070421.tar.bz2, thesis20070422.tar.bz2 and so forth in case I need to go back and see how it looked some time ago.

    However, in my home directory I have a lot of large audio and video files that I would never want to be versioned. I wander if Ext3cow keeps extra copies of the files if I move them around, change file named but do not modify the content. Probably I would have to make a new partition and put my text files I am working on there under Ext3cow and leave my media files on ext3.

  5. The C in CVS. by SharpFang · · Score: 4, Informative

    Concurrent...

    Sure you can "go back in time", but two users working on the same file at the same time would be a pain. Networking would require additional layers - even plain SAMBA/NFS, but still. Plus a bunch of userspace utilities as UI to access it easily.

    It's not bad as a backend for such a system, just like MySQL is good as a backend for a website, but by itself it's pretty much worthless.

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  6. some background by pikine · · Score: 4, Informative

    I'm answering questions that people posted so far altogether.

    Is it a file system or a file manager?

    It is a file system. You access old snapshot by appending '@timestamp' to your file name. You have to first instruct ext3cow to take a snapshot first before you can retrieve old copies, otherwise it simply behaves like ext3. It appears that snapshot is always performed on a directory and applies to all inodes (files and subdirectories) under it.

    My complaint is its use of '@' to access snapshot. Why not use '?' and make it look like a url query? Better yet, use a special prefix '.snapshot/' like NetApp file servers.

    Does it store many copies of each file? or only the differences between the old and the new version?

    How far off is it to use these filesystems as a revision control system replacement?

    ext3cow takes it's name from "copy on write," and it does this on the block level. When you modify a file, it appears to the file system that you're modifying a block of e.g. 4096 bytes. COW preserves the old block while constructing a new file using the blocks you modified plus the blocks you didn't modify.

    You can think about it as block-level version control. However, when you save a file, most programs simply write a whole new file (I'm only aware of mailbox programs that try to append or modify in-place). Block-level copy on write is unlikely to buy you anything in practical use.

    Does it provide undelete?

    Only when you remember to make a snapshot of your whole directory. An hourly cron-job would do, maybe. There is always the possibility you delete a file before a snapshot is made.

    --
    I once had a signature.
  7. Re:Excellent work but... by Toffins · · Score: 4, Insightful

    Compatibility across versions is guaranteed only at the Source Code level

    (Disclaimer: Linux is excellent) But is compatibility even guaranteed at source code level?
    Here are some specific examples where source level API changes have occurred:

    1. Consider that up to linux-2.6.6 all SATA disks were treated as IDE PATA disks accessible via /dev/hd*, but in linux-2.6.7 they started to be treated as SATA disks only accessible via /dev/sd*. This changeover caused existing SATA disk systems to become unbootable after upgrading to linux-2.6.7 because the boot device at /dev/hd* was no longer accessible. Never documented in kernel/Documentation/*

    2. And between linux-2.6.15 and linux-2.6.20 the way the usb subsystem handled usb devices was changed so that usermode usb drivers like the usermode speedtouch driver was broken due to kernel returning EINVAL from each USBDEVFS_SUBMITURB command which is required after a USBDEVFS_CONTROL command issued by the modem_run ADSL line monitoring process. This generates thousands of error messages per second via syslogd. No news of this particular aspect of the usb changes was ever documented in kernel/Documentation/*.