[tahoe-dev] [tahoe-lafs] #1351: Use extended attributes to expose metadata
tahoe-lafs
trac at tahoe-lafs.org
Thu Feb 3 02:34:19 PST 2011
#1351: Use extended attributes to expose metadata
------------------------------------------+---------------------------------
Reporter: ScottD | Owner: somebody
Type: enhancement | Status: new
Priority: minor | Milestone: undecided
Component: code | Version: 1.8.2
Keywords: fuse metadata unix usability | Launchpad Bug:
------------------------------------------+---------------------------------
A number of users want to be able to mount Tahoe dircaps into their file
system (via FUSE, for instance). Once mounted this way, it becomes
difficult and error-prone to retrieve any metadata that Tahoe has about
files and directories (e.g. a read-only cap).
One way that this could be made better would be to expose those values as
extended attributes in the file system. For instance, FUSE supports
getxattr, which could be used for this purpose. For instance,
{{{
% getfattr -n readcap /mnt/pubgrid
# file: /mnt/pubgrid
readcap="URI:DIR2-RO:xxx...:yyy..."
}}}
At the moment, Tahoe does not support storing extended attributes, so
there are no conflicts. However, ticket:947 proposes to add support for
storing extended attributes to Tahoe, which would create a namespace
conflict for this enhancement. Despite that, we could reserve a prefix for
attributes (e.g., "`tahoe.readcap`") and raise an error/warning when such
an attribute is asked to be stored.
There are currently a few different implementations of Tahoe where a
specification for getxattr would be useful. We have a couple FUSE
implementations in the source tree and the TahoeFS implementation in PyFS
(ticket:1111) can expose extended attributes in a variety of ways.
I have personally patched PyFS to expose attributes like I have described
and find it useful. Where "useful" means that I previously punted entirely
on using readonly/verify caps because they were too difficult to retrieve.
Additionally, being able to retrieve caps like this allows perform other
"`tahoe`" commands with ease:
{{{
% tahoe check `getfattr -n readcap --only-values somefile`
Summary: Healthy
storage index: qggq5w4ynbxo6x2ns3ydv3uyq4
good-shares: 12 (encoding is 3-of-12)
wrong-shares: 0
}}}
As and aside, if we reserved a prefix like "`tahoe.`" for extended
attributes, then we could even make "`tahoe`" aware of these attributes to
create a shortcut around running "`getfattr`".
Prior to pushing this into my local version of PyFS, I would've had to
resort to the WUI and copy/pasting sensitive data, which means I just
didn't.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1351>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-dev
mailing list