Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

Ext3cow Versioning File System Released For 2.6

Posted by kdawson on Wed May 02, 2007 07:02 AM
from the have-a-cow-man dept.
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."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • So which is it? (Score:3, Interesting)

    by EveryNickIsTaken (1054794) on Wednesday May 02 2007, @07:06AM (#18954749)

    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...
    Well, is it the file system, or the file system manager?
  • What a name (Score:3, Funny)

    by Anonymous Coward on Wednesday May 02 2007, @07:07AM (#18954761)
    So is it EXT or is it just a FAT cow?
    • Re:What a name by morgan_greywolf (Score:2) Wednesday May 02 2007, @08:15AM
      • 1 reply beneath your current threshold.
    • Re:What a name by suggsjc (Score:2) Wednesday May 02 2007, @11:07AM
  • Overhead? (Score:3, Interesting)

    by HateBreeder (656491) on Wednesday May 02 2007, @07:07AM (#18954765)
    Couldn't find real-world information about space and performance overhead.

    Does it store many copies of each file? or only the differences between the old and the new version?
  • CVS/Subversion replacement ? (Score:5, Interesting)

    by BuR4N (512430) on Wednesday May 02 2007, @07:08AM (#18954769)
    (http://www.intellipool.se/ | Last Journal: Wednesday January 31 2007, @03:49PM)
    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.
  • by Toffins (1069136) on Wednesday May 02 2007, @07:10AM (#18954787)
    ext3cow looks like excellent work, but being an externally maintained add-on to the kernel, one problem is that it will not be not synchronously available with new kernel releases. The latest available version is 2.6.20.3-ext3cow.patch which is behind the latest kernel. It would be better if it could be accepted and maintained inside the kernel.
    • Re:Excellent work but... by oliverthered (Score:1) Wednesday May 02 2007, @07:34AM
      • Re:Excellent work but... by ajs318 (Score:3) Wednesday May 02 2007, @07:47AM
        • Re:Excellent work but... by Anonymous Coward (Score:1) Wednesday May 02 2007, @08:11AM
        • Re:Excellent work but... (Score:4, Insightful)

          by oliverthered (187439) <oliverthered&hotmail,com> on Wednesday May 02 2007, @08:13AM (#18955471)
          Your wrong, it also hurts those people who write drivers that aren't accepted into the kernel. And it also hurts end users or haven't you noticed the lack of Linux drivers for a lot of hardware.
          [ Parent ]
        • Re:Excellent work but... (Score:4, Insightful)

          by Toffins (1069136) on Wednesday May 02 2007, @08:30AM (#18955733)

          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/*.

          [ Parent ]
        • Re:Excellent work but... by diamondsw (Score:2) Wednesday May 02 2007, @09:58AM
        • 1 reply beneath your current threshold.
    • Re:Excellent work but... by sofar (Score:2) Wednesday May 02 2007, @09:54AM
  • True undelete (Score:5, Insightful)

    by ex-geek (847495) on Wednesday May 02 2007, @07:13AM (#18954827)
    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.
    • Re:True undelete by Anonymous Coward (Score:1) Wednesday May 02 2007, @07:31AM
    • Re:True undelete by 19thNervousBreakdown (Score:2) Wednesday May 02 2007, @07:43AM
      • Re:True undelete (Score:4, Informative)

        There's a couple reasons for it not being in the kernel. First, it misleads users who expect some degree of data security. The good news is that sort of person likely follows kernel patches to the FS and would likely be aware of the problem, possibly even writing a script that replaces rm with a real-rm.

        The second argument is that it's better handled in user space, so the OS doesn't have to make that sort of policy. There's no reason you can't just alias rm to some .Trash, or configure your Desktop Environment to do so (GNOME does, for example). There's all sorts of things you have to decide that might not suit everyone. For example, if I delete a file on a USB drive, does it go in a .Trash storage in the USB drive, or do we copy it over to a main .Trash folder? Many people don't realize they have to empty the trash to reclaim space on their thumbdrive in GNOME.

        The final argument I can come up with is security problems. We can't have one global .Trash bin in a multiuser system. And quotas. And permissions.

        Reading historic archives of the LKML [iu.edu] suggests it's at least come up once. I guess Torvald's opinion is that anything that CAN go in the userspace SHOULD. Can't explain the webserver in kernel though. Perhaps that opinion has changed some time in the last 10 years?
        [ Parent ]
      • Re:True undelete by rahimobius (Score:1) Wednesday May 02 2007, @08:24AM
      • Re:True undelete by FoogyFoo (Score:1) Wednesday May 02 2007, @10:21AM
      • Re:True undelete by Fweeky (Score:2) Wednesday May 02 2007, @12:20PM
    • Full-System restore by squizzar (Score:1) Wednesday May 02 2007, @08:17AM
    • Re:True undelete by jonadab (Score:2) Wednesday May 02 2007, @08:26AM
    • Re:True undelete by gmack (Score:2) Wednesday May 02 2007, @09:01AM
    • Re:True undelete by fireboy1919 (Score:2) Wednesday May 02 2007, @10:35AM
    • Re:True undelete by ex-geek (Score:2) Wednesday May 02 2007, @08:03AM
    • 1 reply beneath your current threshold.
  • Hooray for repeating history! (Score:1, Informative)

    by Anonymous Coward on Wednesday May 02 2007, @07:14AM (#18954833)
    VMS had a versioning filesystem 20+ years ago. You'd create a file and any time you'd edit it a number would be appended as the version:

    eg foo.txt;1 foo.txt;2

  • So (Score:1, Interesting)

    by El Lobo (994537) on Wednesday May 02 2007, @07:15AM (#18954841)
    Is this like MS Shadow Copies or like Apple's Time Machine? Not trolling but just somebody enlight me, what is new here?
    • Re:So by psbrogna (Score:3) Wednesday May 02 2007, @07:30AM
    • Re:So by TodMinuit (Score:3) Wednesday May 02 2007, @07:36AM
    • Re:So by delire (Score:2) Wednesday May 02 2007, @07:45AM
      • Re:So by init100 (Score:2) Wednesday May 02 2007, @08:15AM
        • Re:So by delire (Score:2) Wednesday May 02 2007, @08:25AM
      • Re:So by spitzak (Score:2) Wednesday May 02 2007, @08:22AM
        • Re:So by osu-neko (Score:1) Wednesday May 02 2007, @12:34PM
        • Re:So by ckaminski (Score:2) Wednesday May 02 2007, @12:41PM
          • Re:So by spitzak (Score:2) Thursday May 03 2007, @07:35AM
    • Re:So by samkass (Score:3) Wednesday May 02 2007, @08:44AM
  • by jimicus (737525) on Wednesday May 02 2007, @07:20AM (#18954871)
    (http://www.whitepost.org.uk/)
    Well done to all who worked on this patch. Guess this means you've almost caught up with OpenVMS [wikipedia.org] now, then? [throws another log of karma on the fire].

    All joking aside, I never really liked VMS much. It was extremely good at being very verbose whilst being extremely bad at clear English.
  • VMS file versions someone? (Score:4, Interesting)

    by ntufar (712060) on Wednesday May 02 2007, @07:22AM (#18954881)
    (http://tufar.com/ | Last Journal: Friday June 17 2005, @05:03AM)
    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.

  • Interesting sponsor for ext3cow (Score:1, Informative)

    by Anonymous Coward on Wednesday May 02 2007, @07:30AM (#18954951)
    The ext3cow project sponsor SecurityEvaluators is a rather interesting company in terms of some of their funding arrangements (sorry, cannot publish details here).
    (2006) FBI Head Wants Strong Data Retention Rules [slashdot.org]
    (2005) EU Approves Data Retention [slashdot.org]
  • Smells like dirvish (Score:2, Interesting)

    by Zekat (596172) on Wednesday May 02 2007, @07:33AM (#18954983)
    This sounds like http://www.dirvish.org/ [dirvish.org], which is nearly as nice as the automatic file snapshots done by the "Network Appliance" fileserver boxes I've used at the last 2 out of 3 workplaces.
  • Performance? (Score:1, Interesting)

    by Anonymous Coward on Wednesday May 02 2007, @07:36AM (#18955003)
    So how does the mechanism affect performance? Aren't the files going to be very fragmented after a while? How long does it take to make those snapshots?
  • by udippel (562132) on Wednesday May 02 2007, @07:48AM (#18955145)
    Done it, been there.
    Guess, this is the first step to approach ZFS, which for some stupid licence reason doesn't seem to have an easy path into the Linux kernel.
    ZFS does a few, actually a lot, more. But why not write a different solution, for a plurality of choice.
    May the best win !
  • by MarsBar (6605) <geoff&geoff,dj> on Wednesday May 02 2007, @07:48AM (#18955151)
    (http://www.geoff.dj/)

    Looks to me (having read the paper [znjp.com]) like you need to manually snapshot a file every time you might want to (later) revert back to it.

    Now I don't know about anyone else but that's not what I want from a system like this: I want a system that keeps transaction logs, essentially, so that I can literally ask for any file as it was at any time.

  • some background (Score:5, Informative)

    by pikine (771084) on Wednesday May 02 2007, @07:59AM (#18955281)
    (Last Journal: Saturday November 03, @09:51AM)

    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.

  • No Data (Score:2)

    by wild_berry (448019) on Wednesday May 02 2007, @08:12AM (#18955455)
    (Last Journal: Wednesday April 05 2006, @05:24AM)
    I can't see anything linked from the ext3cow.com site, save for the near-silent mailing lists. I'm tagging this 'slashdotted'. There's not even a huge amount on the Wayback Machine: http://web.archive.org/web/*/http://ext3cow.com [archive.org]

    I guess that this is a fork of the ext3 code with Copy On Write functionality and userland tools to make snapshots and time-travel the snapshots. Wikipedia's article on Ext3cow [wikipedia.org] names Zachary Peterson, the submitter of the article, and links to an ACM Transactions on Storage paper at http://hssl.cs.jhu.edu/papers/peterson-tos05.pdf [jhu.edu].
  • BSD operating systems had filesystem snapshots [wikipedia.org] functionality for several years now... Linux is catching up — in a usual Linux way with patches, which one has to collect from all over...

    Or am I misreading the write-up and this new ext3cow thingy is much more than that?

  • Ubuntu? (Score:2)

    by wile_e_wonka (934864) on Wednesday May 02 2007, @09:08AM (#18956245)
    I heard Ubuntu was planning to upgrade to Ext4 for Feisty, and then it fell through, and instead they were planning on Ext4 to be available as a patch approximately the same time Feisty was released. Is Ext3cow the change that Ubuntu was planning to impliment? (I realize Ext4 is different from Ext3cow, but I'm wondering if Ubuntu's getting this as an automatic update)
  • NILFS? (Score:2)

    by stu42j (304634) <saj@@@thecommune...net> on Wednesday May 02 2007, @09:14AM (#18956307)
    (http://saj.thecommune.net/)
    Anybody use the similarly featured NILFS?

    NILFS is a log-structured file system developed for the Linux, and it is downloadable on this site as open-source software.


    http://www.nilfs.org/en/index.html [nilfs.org]
  • by sloth jr (88200) on Wednesday May 02 2007, @09:48AM (#18956815)
    It's simply a filesystem with snapshots. Big deal. It'll only do cool stuff when you tell it to make a snapshot, not every time a file changes.
  • No flaming -- I don't have the time to research this, so I'll just post the questions!

    1 - What happens to large databases? I am assuming a delta storage method, but that might slow down the database (specifically, I use mysql).

    2 - Large files? Specifically, deletion (I store lots of videos)

    3 - Usenet spools? (Lots of small files, deleted regularly).

    I suspect that I would have to segregate my files...
  • This is very cool (Score:2)

    by Deagol (323173) on Wednesday May 02 2007, @12:18PM (#18959183)
    (http://slashdot.org/)
    I was hoping for something more transparent, like the VMS version mechanism. No user intervention needed.

    I envision the day when hard drives are so large that every version of every file can be stored indefinitely. Imagine being able to, as a senior CS student, fetch some code that you wrote freshman year but deleted. Very useful indeed!

  • sendfile (Score:2)

    by kasperd (592156) on Wednesday May 02 2007, @03:13PM (#18962069)
    (http://kasperd.net/~kasperd/ | Last Journal: Thursday July 08 2004, @10:18AM)
    Does this file system also provide a new implementation of the sendfile system call? Since it already does CoW, it should be possible to make sendfile also do CoW as long as both source and destination are on the same file system. If cp would then make use of the sendfile system call, then even cp would give you CoW, that would be really cool.
  • Re:Can No One Else INNOVATE? (Score:2, Insightful)

    by heffrey (229704) on Wednesday May 02 2007, @07:34AM (#18954995)
    What evidence do you have that this is reverse engineering?

    Or do you mean that they are re-implementing Time Machine?
    [ Parent ]
  • by siride (974284) on Wednesday May 02 2007, @07:37AM (#18955013)
    So I guess since it's old news, they just shouldn't bother right? Nobody is claiming this as an innovation. It's just a good feature that's getting added finally. After all, as people have said, VMS had this 20 years ago. Even MS and Apple didn't add something like it until the past two years. I should add that this project started back in 2005, so it's been worked on about during the same time Apple's stuff has.
    [ Parent ]
  • by SaturnNiGHTS (1074969) on Wednesday May 02 2007, @07:44AM (#18955089)
    (http://www.dynarec.net/)
    this isn't a "recent project"...it was started in july of 2003...hardly stolen from microsoft or apple if older incarnations existed before they were developed. this is merely a version release. http://en.wikipedia.org/wiki/Ext3cow [wikipedia.org]
    [ Parent ]
  • Re:Can No One Else INNOVATE? (Score:4, Insightful)

    Go away MacTroll...

    Veritas VxFS has had this for years. Snapshotting has been implemented in the Linux LVM layer for ages. This is just another way to do it.

    I don't know anything about the technical implementation of Vista Shadow Copies or Apple's Time Machine, but if it's anything like ZFS [wikipedia.org] then I'll be impressed. I believe there are rumours about the next release of OS X using ZFS (which was developed by Sun), but I'll believe it when I see it.

    [ Parent ]
  • According to Wikipedia [wikipedia.org], Apple's Time Machine isn't even released yet. Maybe the person reverse-engineered Time Machine in the future and used the code to come back to the past...?

    Also from Wikipedia [wikipedia.org], Windows XP Professional includes a similar feature, although it doesn't do as much as the facility included in Windows Server 2003.

    Are you paid to make shit up or what? Can I get a job there?
    [ Parent ]
  • Actually, filesystem versioning is older than Apple as a company, much less OS X. ITS had it in the sixties, and VMS has had it since the late seventies. Nonetheless, it's an undeniably useful feature, and I'm glad it's finally making its way into the major OSes.
    [ Parent ]
  • Re:Cows? (Score:2)

    by 644bd346996 (1012333) on Wednesday May 02 2007, @10:32AM (#18957481)
    You seem to think that the name of a filesystem matters. It does not. In particular, desktop users should never have to know the name of their filesystem. If "ext3cow" keeps anybody from switching to Linux, it will be because they needed to learn the name of the filesystem, not because the name is pathetic.
    [ Parent ]
  • Re:Can No One Else INNOVATE? (Score:2, Informative)

    by sofla (969715) on Wednesday May 02 2007, @12:21PM (#18959229)

    Given that Unix has had the concept of file "versioning" since I don't know when (but a long-azz time!)

    *scratches head* Unix? Versioning? Never seen it myself. Not to say it isn't there, but over the years I've used several *ix flavors and fs versioning isn't something I've come across. I suppose next you'll tell us Unix has file locking (afaik it doesn't, unless you count advisory locks. I don't).

    This is a reverse-engineering of Apple's Time Machine, through and through.

    I hate to be one to point this out, but, er... Time Machine is a BACKUP tool. Don't believe me? Go to http://www.apple.com/macosx/leopard/timemachine.ht ml [apple.com] and read the copy yourself, being sure to pay special attention to use of phrases like "the drive you're backing up to". How on earth you could possibly confuse a backup tool with a versioned file system is beyond me.

    [ Parent ]
  • 9 replies beneath your current threshold.