From: Hugo Mills <hugo@carfax.org.uk>
To: David Howells <dhowells@redhat.com>
Cc: Simon Wilkinson <simonxwilkinson@gmail.com>,
jaltman@your-file-system.com,
"openafs-devel@openafs.org" <openafs-devel@openafs.org>,
linux-btrfs@vger.kernel.org, clm@fb.com
Subject: Re: What is needed to build an AFS fileserver on top of BTRFS?
Date: Tue, 17 Dec 2013 17:20:02 +0000 [thread overview]
Message-ID: <20131217172002.GE11281@carfax.org.uk> (raw)
In-Reply-To: <14884.1387299196@warthog.procyon.org.uk>
[-- Attachment #1: Type: text/plain, Size: 2561 bytes --]
On Tue, Dec 17, 2013 at 04:53:16PM +0000, David Howells wrote:
> It has occurred to me and others that something like BTRFS could be
> a good fit to build an AFS fileserver directly on top of. The
> question is what facilities would be needed from BTRFS to make this
> work? So I thought I'd kick off a shopping list;-)
> (1) 64-bit data version numbers that increase monotonically with
> each write. Yes, this is likely to cause some performance
> degredation as it introduces an ordering over data writes and
> metadata writes to a file. Maybe writes can be batched to improve
> performance?
Do these have to be per-file? If not, then you might be able to get
away with using the transid, which is a filesystem-global
monotonically-increasing number.
btrfs batches disk writes already, and uses the transid to
differentiate these -- the writes come at 30 second intervals (by
default, although there's an option to change the period). There may
be multiple distinct changes to a single file within that transaction
(although obviously, only the state of the file after the last one
gets written to disk). I don't know exactly what you need it for, so
this may or may not be appropriate here.
Ceph uses transids for [something, mumble, wavy-hand] -- I don't
know if the use-case for Ceph is equivalent to the use-case for AFS.
> (2) Storage for ACLs and AFS UIDs. Having shareable ACLs might also
> be useful. Xattrs would likely do for this.
This would seem like a reasonable place to put them, given that
that's what POSIX ACLs do, and we have POSIX ACL support already.
> (3) The ability to snapshot a filesystem to make backups and for
> pushing to read-only volume servers.
We have snapshots of subvolumes, but not the filesystem as a whole.
> (4) A 32-bit vnode number and 32-bit vnode uniquifier/generation
> number. These don't necessarily have to be stored by BTRFS directly
> but could instead be in a separate database file that gets
> snapshotted also.
>
> (5) The ability to set the vnode number, vnode uniquifier and data
> version number to specific values. Necessary to clone volumes
> and restore volume dumps.
What's a vnode meant to represent? I'm not familiar with the
terminology.
Hugo.
--
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
PGP key: 65E74AC0 from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
--- "Are you the man who rules the Universe?" "Well, I ---
try not to."
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2013-12-17 17:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 16:53 What is needed to build an AFS fileserver on top of BTRFS? David Howells
2013-12-17 17:07 ` Chris Mason
2013-12-17 17:40 ` David Howells
2013-12-17 18:42 ` [OpenAFS-devel] " Jeffrey Hutzelman
2013-12-17 17:20 ` Hugo Mills [this message]
2013-12-17 17:47 ` David Howells
2013-12-17 18:45 ` [OpenAFS-devel] " Jeffrey Hutzelman
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=20131217172002.GE11281@carfax.org.uk \
--to=hugo@carfax.org.uk \
--cc=clm@fb.com \
--cc=dhowells@redhat.com \
--cc=jaltman@your-file-system.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=openafs-devel@openafs.org \
--cc=simonxwilkinson@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.