Login Status


ShareSource Site » Projects » srfs » srfsWiki

Project: Simple Redundant File System [Wiki]

(*) Summary   [^] Files   [_] Wiki   (») Mercurial Repository  
Project Wiki (Page: Home)
Last Changed 7 months ago, by Myshkin

Storage System Requirements

  • Look like a filesystem
  • Dynamically increase redundancy
  • Dynamically increase capacity
  • Utilize variably sized disks
  • Support migrating onto larger disks (i.e. replace a 250GB drive with a 500GB drive)
  • Removal of drives for offline redundancy
  • Distributed space sharing with partially trusted parties
  • Snapshots
  • Mount historical/point in time view
  • Compact small files/partial end blocks based on how static they are?
  • Migrate static data to more compute intensive/compact redundancy representations?
  • Configure a full copy of files to be contained within a defined border
  • Concurrency
  • ACLs

Niceties

  • Operating system lives independently of disks (flash or cd+flash)
  • limited caching/synching for laptops that disconnect from the network
    • Possibly per directory
    • Dont cache large items that are intended to be streamed (many media files)
  • Built in support for managing backups to/restores from alternate media (likely DVDs)
  • A cheap copy operator. Help to restore previous versions to a writable state, or to have a sort of branching maybe.

Possibly Helpful Research

Use Cases

  • Photo/Home movie storage
  • Backup solution
  • Store my tax files without fear of losing them, ever
  • mp3/xvid collections
  • nfs mounted home directories
  • email boxes

How to test fs for general correctness and correctness under various failure conditions?

IDEA: Distribution nodes. for distributed fs. Define logical structure of desired redundancy. Disc->Machine->Site->Region->Continent->Planet->SolarSystem... Redundancy level would be some function of what the highest level it was a member of multiple nodes. if it is on 2 discs on 1 machine, that is a smaller redundancy than if it is on 2 discs from 2 different sites.

Steps:

  1. Filesystem/FUSE symantics
  2. Redundancy across drives
  3. Redundancy across servers