Distributed FUSE filesystem for small volumes (Fork of https://github.com/nicolagi/dino)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
James Mills bcf18a53fa
Fix typo
3 weeks ago
.chglog Add release tools 4 weeks ago
.dockerfiles Refactor codebase into a single binary 4 weeks ago
bits Fix build and update deps 1 month ago
cache Refactor codebase into a single binary 4 weeks ago
cmd/dinofs Fix unmounting filesystem on ^C (SIGINT) 4 weeks ago
data Refactor codebase into a single binary 4 weeks ago
fs Add stub StatFs impl 4 weeks ago
message message: try to avoid overflows 3 weeks ago
metadata Fix client connection test 3 weeks ago
storage Fix typo 3 weeks ago
tools Add release tools 4 weeks ago
.gitignore Add script to quickly setup a local dev cluster 3 weeks ago
.goreleaser.yml Fix goreleaser config (only Darwin and Linux cross-compliation is supported) 4 weeks ago
CHANGELOG.md Update CHANGELOG for 0.0.2 4 weeks ago
Dockerfile Refactor codebase into a single binary 4 weeks ago
LICENSE Update README and relicense 4 weeks ago
LICENSE.old Update README and relicense 4 weeks ago
Makefile Add script to quickly setup a local dev cluster 3 weeks ago
README.md Update README and relicense 4 weeks ago
README.old Update README and relicense 4 weeks ago
go.mod Refactor codebase into a single binary 4 weeks ago
go.sum Refactor codebase into a single binary 4 weeks ago
setup-local-cluster.sh Add script to quickly setup a local dev cluster 3 weeks ago
version.go Refactor codebase into a single binary 4 weeks ago

README.md

dinofs

An experimental distributed filesystem based off of nicolagi/dino

The plan is to:

  • Build a general purpose distributed filesystem with decent performance
  • Build a Docker Volume driver to support Docker Swarm and persistent volumes

You need Go and GNU Make installed to build this software.

Quick Start

Right now everything is kind of manual.

Clone the repository:

$ git clone https://git.mills.io/prologic/dinofs.git
$ cd dinofs

Build the binary:

$ make build

Run the metadata server:

$ ./dinofs meta

Run a blob server:

$ ./dinofs blob

Mount the filesystem:

$ ./dinofs mount 127.0.0.1:8000 127.0.0.1:9000 ./mnt

Play with the filesystem:

$ cd mnt
$ touch foo
$ echo 'Hello World" > foo
$ cat foo

License

dinofs is licensed under the terms of the MIT License and was originally based off of @nicolagi's work nicolagi/dino which was also licensed under the terms of the MIT License. See the old README.