public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: Albert Cahalan <acahalan@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	hch@infradead.org, snitzer@gmail.com
Subject: Re: [ANNOUNCE] Btrfs: a copy on write, snapshotting FS
Date: Wed, 13 Jun 2007 12:57:06 -0400	[thread overview]
Message-ID: <20070613165706.GF28279@think.oraclecorp.com> (raw)
In-Reply-To: <787b0d920706130914l676a24cau62525e90a90b5839@mail.gmail.com>

On Wed, Jun 13, 2007 at 12:14:40PM -0400, Albert Cahalan wrote:
> On 6/13/07, Chris Mason <chris.mason@oracle.com> wrote:
> >On Wed, Jun 13, 2007 at 01:45:28AM -0400, Albert Cahalan wrote:
> 
> >> The usual wishlist:
> >>
> >> * inode-to-pathnames mapping
> >
> >This one I'll code, it will help with inode link count verification.  I
> >want to be able to detect at run time that an inode with a link count of
> >zero is still actually in a directory. So there will be back pointers
> >from the inode to the directory.
> 
> Great, but fsck improvement wasn't on my mind. This is
> a desirable feature for the NFS server, and for regular users.
> Think about a backup program trying to maintain hard links.

Sure, it'll be there either way ;)

> 
> >Also, the incremental backup code will be able to walk the btree to find
> >inodes that have changed, and the backpointers will help make a list of
> >file names that need to be rsync'd or whatever.
> >
> >> * a subvolume that is a single file (disk image, database, etc.)
> >
> >subvolumes can be made that have a single file in them, but they have to
> >be directories right now.  Doing otherwise would complicate mounts and
> >other management tools (inside the btree, it doesn't really matter).
> 
> Bummer. As I understand it, ZFS provides this. :-)

Grin, when the pain of typing cd subvol is btrfs' biggest worry, I'll be
doing very well.

> 
> >> * directory indexes to better support Wine and Samba
> >> * secure delete via destruction of per-file or per-block random crypto 
> >keys
> >
> >I'd rather keep secure delete as a userland problem (or a layered FS
> >problem).  When you take backups and other copies of the file into
> >account, it's a bigger problem than btrfs wants to tackle right now.
> 
> It can't be a userland problem if you allow disk blocks to move.
> Volume resizing, logging/journalling, etc. -- they combine to make
> the userland solution essentially impossible. (one could wipe the
> whole partition, or maybe fill ALL space on the volume)

Right about here is where I would insert a long story about ecryptfs, or
encryption solutions that happen all in userland.  At any rate, it is
outside the scope of v1.0, even though I definitely agree it is an
important problem for some people.

> >> * atomic creation of copy-on-write directory trees
> >
> >Do you mean something more fine grained than the current snapshotting
> >system?
> 
> I believe so. Example: I have a linux-2.6 directory. It's not
> a mount point or anything special like that. I want to copy
> it to a new directory called wip, without actually copying
> all the blocks. To all the normal POSIX API stuff, this copy
> should look like the result of "cp -a", not hard links.

This would be a snapshot, which has to be done on a subvolume right now.
It is not as nice as being able to pick a random directory, but I've
only been able to get this far by limiting the feature scope
significantly.  What I did do was make subvolumes very cheap...just make
a bunch of them.

Keep in mind that if you implement a cow directory tree without a
snapshot, and you don't want to duplicate any blocks in the cow, you're
going to have fun with inode numbers.

-chris


  reply	other threads:[~2007-06-13 17:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-13  5:45 [ANNOUNCE] Btrfs: a copy on write, snapshotting FS Albert Cahalan
2007-06-13 12:00 ` Chris Mason
2007-06-13 16:14   ` Albert Cahalan
2007-06-13 16:57     ` Chris Mason [this message]
2007-06-14  6:59       ` Albert Cahalan
2007-06-14 12:30         ` Chris Mason
  -- strict thread matches above, loose matches on Subject: below --
2007-06-12 16:10 Chris Mason
2007-06-12 19:53 ` Mike Snitzer
2007-06-12 20:14   ` Chris Mason
2007-06-13  3:08     ` Christoph Hellwig
2007-06-13 10:17       ` Chris Mason
2007-06-13  3:46 ` John Stoffel
2007-06-13 10:35   ` Chris Mason
2007-06-13 14:00     ` John Stoffel
2007-06-13 14:54       ` Chris Mason
2007-06-13 16:12         ` John Stoffel
2007-06-13 16:34           ` Chris Mason
2007-06-13 16:25         ` Grzegorz Kulewski
2007-06-14 18:20   ` Chuck Lever
2007-06-14 18:48     ` Chris Mason
2007-06-15 17:17       ` Chuck Lever
2007-06-18 14:41 ` Chris Mason
2007-06-18 17:37 ` Vladislav Bolkhovitin
2007-06-18 20:08   ` John Stoffel
2007-06-19  9:11   ` Pádraig Brady
2007-06-19 10:01     ` Vladislav Bolkhovitin
2007-06-19 18:20       ` david
2007-06-20  8:41         ` Vladislav Bolkhovitin
2007-06-19 12:04     ` Chris Mason
2007-06-19 14:00       ` Vladislav Bolkhovitin
2007-06-19 18:24       ` david
2007-06-19 18:28       ` Philipp Matthias Hahn
2007-06-20  8:44         ` Vladislav Bolkhovitin
2007-06-20  9:18           ` Ph. Marek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070613165706.GF28279@think.oraclecorp.com \
    --to=chris.mason@oracle.com \
    --cc=acahalan@gmail.com \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=snitzer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox