[MLUG] s3backer

Jeremy me at jeremychapman.info
Sat Oct 15 16:59:57 EDT 2011


Just wanted to give you a heads up about this cool program I have been 
playing with. It makes a virtual disk that is hosted on amazon s3.  
http://code.google.com/p/s3backer/

I'll just paste their description:

"*s3backer* is a filesystem that contains a single file backed by the 
Amazon Simple Storage Service <http://aws.amazon.com/s3> (Amazon S3). As 
a filesystem, it is very simple: it provides a single normal file having 
a fixed size. Underneath, the file is divided up into blocks, and the 
content of each block is stored in a unique Amazon S3 object. In other 
words, what *s3backer* provides is really more like an S3-backed virtual 
hard disk device, rather than a filesystem.

In typical usage, a normal filesystem is mounted on top of the file 
exported by the *s3backer* filesystem using a loopback mount (or disk 
image mount on Mac OS X).

This arrangement has several benefits compared to more complete S3 
filesystem implementations:

    * By not attempting to implement a complete filesystem, which is a
      complex undertaking and difficult to get right, *s3backer* can
      stay very lightweight and simple. Only three HTTP operations are
      used: GET, PUT, and DELETE. All of the experience and knowledge
      about how to properly implement filesystems that already exists
      can be reused.

    * By utilizing existing filesystems, you get full UNIX filesystem
      semantics. Subtle bugs or missing functionality relating to hard
      links, extended attributes, POSIX locking, etc. are avoided.

    * The gap between normal filesystem semantics and Amazon S3
      ``eventual consistency'' is more easily and simply solved when one
      can interpret S3 objects as simple device blocks rather than
      filesystem objects (see below).

    * When storing your data on Amazon S3 servers, which are not under
      your control, the ability to encrypt data becomes a critical
      issue. *s3backer* supports secure encryption and authentication.
      Alternately, the encryption capability built into the Linux
      loopback device can be used.

    * Since S3 data is accessed over the network, local caching is also
      very important for performance reasons. Since *s3backer* presents
      the equivalent of a virtual hard disk to the kernel, most of the
      filesystem caching can be done where it should be: in the kernel,
      via the kernel's page cache. However *s3backer* also includes its
      own internal block cache for increased performance, using
      asynchronous worker threads to take advantage of the parallelism
      inherent in the network."

Basically you get a network hosted disk that is mounted locally through 
loopback. It works great (I am hosting videos that are played straight 
off the drive to the web), is relatively simple to set up and use, and 
of course it is cloud-hosted so you can use it on more than one system. 
The cost of S3 is very reasonable, it is a compelling solution for 
backups, web storage, etc.

Jeremy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/mlug-listserv.mlug.ca/attachments/20111015/5222ec4c/attachment.htm>


More information about the mlug mailing list