wiki:UseCases

Version 20 (modified by davidsarah, at 2012-03-11T04:48:23Z) (diff)

update and fix #1683 by removing refs to AllMyData?

Network Configurations

There are several ways that people might want to use Tahoe-LAFS. We're not necessarily committed to satisfying all of these use cases -- these are just possibilities.

As these network configurations develop, the node roles section develops in complement.

nametypical number of nodesadministrative domainsnode capacitynode availabilitychurn
non-RAID1 host, multiple nodesonepotentially mixeduniformlow
friendnet2-25many domains, but all trustedmixedmixedlow
sneakernet (#1657)2-10many domains, but all trustedmixedlowlow
commercial service1 server per customerone domain for servers, many for clientsas requiredhighlow
private grid2-10one domainmixedmixedmedium
hivecache10-1000one domain, but not as well controlledsomewhat uniformhighlow
customer-to-customer10-10,000manymixedmixedmedium
global gridanymanymixedmixedhigh
  • non-RAID: Turn the traditional redundancy stack on its head, applying filesystem-redundancy-crypto-filesystem by running a storage node on each disk. Has the advantages over RAID that storage is encrypted, any mix of capacities is fine, redundancy is freely selectable per file, and recovery does not require entire disks.
  • friendnet: You and your friends share a virtual filesystem. It remains accessible even when some of your friends' computers are unreachable. Your friends can't see your files by default, but you can share individual files and directories with individual friends or with all friends.
  • sneakernet: see #1657
  • commercial service -- 1x upload: Pay a company such as Least Authority Enterprises $1/GB/month, say, and you can store your stuff on a grid they set up for you.
  • private grid: Run your own grid by buying a few servers, so that you can backup your own stuff on it.
  • hivecache: Install a tahoe node on each of the workstations in your office, turning their unused disk space into a giant storage pool.
  • customer-to-customer: A company provides a shared grid for its customers using space on the customers' computers. (This would have to overcome obstacles of firewalls and limited upload bandwidth.)
  • global grid: A large, diverse ecosystem of people and organizations who want a storage grid with extremely high reliability and availability.

See also the ServerSelection page.

Node Roles

Network configurations can usually be thought of in terms of a topology connecting particular node roles. These roles often fulfill the same abstraction across network configurations. By allowing specialized role configurations, a plethora of custom network configurations can be deployed without modifying the code.

Here are some archetypal roles:

  • The Available Migrator consumes storage from a changing address.
    • Migration Pattern Availability - Availability is high, but address changes are frequent.
    • Examples: Laptops, mobile devices, poor DHCP configurations.
    • We think that the foolscap/introducer mechanism will dynamically adjust to the changing IP address and make this appear to be a server with good availability, but this use case hasn't been much tested. Please let us know if you try it.
  • The Ephemeral Consumer consumes storage, but lacks availability.
    • Poor availability - Availability is low, such as a node that is only up when consuming storage service.
    • Examples: Backup service customer.
    • Hints:
  • A Grid Storage Server provides storage but does not consume it.
    • High Availability - An individual file's availability is largely dependent on average storage availability.
    • Remote Control - Typically a provider configures many nodes through a centralized manner for convenience.
    • Non Consumer - Specialized storage providers do not consume storage services.

  • A Grid Manager does not provide storage services but controls storage server.