Tahoe-LAFS backup scheduling daemon proposal

David Stainton dstainton415 at gmail.com
Fri May 30 13:23:33 UTC 2014


Hi,

In the interest of completing the Tails + Tahoe-LAFS integration
(see https://labs.riseup.net/code/issues/6227),
I propose a Tahoe-LAFS backup scheduler daemon. Leif and I discussed
it the other day and I want to know what others think of it.
I hope Leif or others will correct me if I say anything inaccurate or
unclear here:

For the record I am volunteering to write the backup daemon and I am suggesting
we ship it with Tahoe since it would not be specific to Tails at all.
The other GUI components I also volunteer to write if nobody else
wants to.

This daemon would have a simple configuration file
which tells it which directory trees to watch and the Tahoe directory
capability to use for each one (or default to the tahoe alias).

This daemon runs a "tahoe backup" command... It should
therefore have some slightly clever heuristics for deciding when
to execute the "tahoe backup" command... such as:

a: detecting data change in directory trees with Linux's inotify

b: only backup data every X minutes if changes are detected and
the last change was at least Y minutes ago

c: if changes are consistently occuring within Y minutes then
the above heuristic 'b' will cause us not to schedule a backup...
so we should eventually schedule a backup anyway.


I believe Tails would also benefit from some sort of GUI applet
interface to this backup daemon.
It should have at least these 2 features:
- allows the user to execute an on-demand Tahoe backup.
- Informs the user of the current Tahoe backup state;

The three backup states are:
a. synced
b. not synced and no backup in progress
c. not synced and backup in progress

Could be represented by a progress bar, waxing moon or something that
changes colors?


And finally the last peice of the Tails + Tahoe-LAFS integration
would be a Tails specific.
Two feature additions to the "Persistent volume assistant" :

1. a Tahoe-LAFS "configuration assistant"

If the user chooses to use Tahoe-LAFS with the Persistent volume
assistant then it asks for a tahoe introducer furl and the data
encoding parameters N, K and H. It then generates a Tahoe
client directory and configuration file. It should also set up the
Tails persistent volume dotfiles directory with a symlink pointing
to the Tahoe client directory.

2. the ability to select "Persist to local volume AND Tahoe-LAFS grid"
for each persistent volume file set.

This would simply create the configuration file for the above
mentioned Tahoe backup daemon. It would need an optional user supplied
tahoe directory capability for each persistent file set... perhaps
defaulting to a
tahoe alias root cap.



Cheers,

David



More information about the tahoe-dev mailing list