Jump to content

MagmaFS

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Tx076 (talk | contribs) at 11:09, 28 August 2007 (Created page with '{{Infobox software2 | MagmaFS | name = Magma network filesystem | logo = center|170px | developer = Tx0 <tx0...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Magma network filesystem
Developer(s)Tx0 <tx0@strumentiresistenti.net>
Operating systemLinux and BSD kernels
TypeNetwork file system
License[GPL]
Websitehttp://www.magmafs.net/

Magma is a network file system based on Distributed hash table, written in C.

Terminology and basic principles

Network topology is rappresented by a structure of nodes called a lava ring. Each node is called a vulcano. Each vulcano hosts a portion of a common key space, delimited by two SHA1 keys. Each vulcano also is in charge of mirroring the key space of the previous node, to ensure data redundancy.

Magma can store many kink of objects: files, directories, symbolic links, block and characted devices, FIFO pipes. All this kink of objects are called flares. A flare of any cast has some basic properties, like a path and a hash key. But directory flares will have some specific informations that don't apply to symbolic links for example.

A flare can be moved between vulcano nodes with a set of operations which define the magma network protocol. To be easily movable, each type of flare, including directories, has been reimplemented as a two files set, the first containing flare informations (metadata) and the second containing flare contents.

Routing

Since each vulcano node has complete network topology available, routing is just a matter of matching flare key with nodes key-space and find the node holding the flare.

Magma server

Magma server magmad manages intercommunication between DHT nodes and magma clients.

Magma client

Magma client magma.mount is based on FUSE, being compatible with Linux and BSD kernels.