[tahoe-dev] Mixing different shares.needed/happy/total settings

Lionel Bouton lionel-subscription at bouton.name
Tue May 3 07:00:22 PDT 2011


Hi,

First, thanks for an amazing piece of software and thanks to the people
packaging it for Gentoo: I thought I'll spend quite some time reading
docs and Python code but the installation and configuration was nearly
painless (I spent some time trying a manual installation and having
several deps problems, but the Gentoo ebuilds for 1.8.1 on
bugs.gentoo.org worked like a charm).

Now my questions.

I'm not exactly sure what would happen if I changed a client
shares.needed/happy/total configuration and continued to try to write
content in an existing tree created with the original settings.

I recently tested LAFS with 6 physicals servers so I used :
shares.needed = 3
shares.happy = 5
shares.total = 6
on the client writing content to this little redundant array of storage
servers.
I use it to store backups, using a home-made script to maintain
weekly/monthly/... backup archives and remove old ones (gc is enabled on
store nodes).

This works quite well but I'm considering adding new servers and would
like to change these parameters to benefit from additional
storage/redundancy/bandwidth.

I have 3 questions :

1/ If I understand correctly, at least "needed" and "total" are only
used when creating new content (file-encoding.rst: « the encoding
parameters are included in the hash stored »). But is the "happy" value
stored too or read from conf ? IE: will a repair use the client node
configuration (which could be bad if I move to happy > 6 after creating
content with total = 6 for example).

2/ when creating an alias, I assume the current shares.needed/total are
used for the encoding and (if it works) using more robust settings later
for content stored in the tree below the alias leaves the alias itself
with the original (less robust) encoding settings.

3/ If I did get it right above, I guess it's better to create a new
alias with the new settings and move content with old encodings to the
new alias (waiting for them to be deleted then garbage collected in my
case). Is it possible to create a link to the old alias in the tree
below to have only one tree to maintain? I thought about creating a
directory manually forcing it to use the same capabilities than the
alias (didn't look it up in the doc yet) or is there another simple way
to move the data without reencoding the files?

Best regards,

Lionel


More information about the tahoe-dev mailing list