[tahoe-dev] Tahoe on NAS drives
warner at lothar.com
Fri Aug 7 01:47:29 UTC 2009
Zooko Wilcox-O'Hearn wrote:
> On Sunday,2009-08-02, at 4:46 , Humberto Ortiz-Zuazaga wrote:
>> 32MB RAM in the device. It has a hard time compiling the
>> prerequisites for tahoe. Plus it's an ARM processor, so it didn't
>> work right.
> The current version works right on ARM.
We have two small-capacity ARM boxes that run Tahoe buildslaves,
compiling and running unit tests on every checkin. One is a Buffalo
Linkstation, the other is a "QNAP TS-109 NAS box running Debian Lenny"
(armv5tel). They take forever but basically work. ARM is an unusual
enough architecture that you get to discover all sorts of fun
byte-alignment and compiler bugs, but I think we've gotten through that
phase by now.
The way to go on these boxes is probably to have one person build binary
packages for a given platform that everyone else can install and run
without compiling (is "ipkg" still used in this space?). The package
builder might use a full-sized workstation of the same architecture
(this was easier when routers used MIPS chips and they still sold
DECstations). A more likely option is to use a small box but NFS-mount a
larger drive for working space and swap (I've done this with my NSLU2
before). Someone with more experience than I've got could probably
cross-compile some packages from a real desktop system: these would
build much faster but take longer to get set up.
We've kicked around the idea of moving the storage-server protocol away
from (python-centric) Foolscap to something on top of HTTP (see ticket
#510 for details). There is a lot of work involved, but this would make
it a lot easier to write a Tahoe node in C or C++, which could bring the
memory footprint down a lot. In particular, it would make a
storage-server-only node quite small, probably less than 5MB. If we also
got some relay/UPnP/bandwidth-limiting features in place, my dream is to
mail a $50 NSLU2 box glued to a $100 1TB drive to my parents, tell them
to plug it into their network, and boom now I've got a remote storage
server for my personal backups.
More information about the tahoe-dev