benagricola / docker-rozofs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker-RozoFS

This is a Docker project to bring up a RozoFS cluster in Kubernetes.

What is RozoFS?

RozoFS is a scale-out distributed file system providing high performance and high availability since it relies on an erasure code based on the Mojette transform. User data is projected into several chunks and distributed across storage devices. While data can be retrieved even if several pieces are unavailable, chunks are meaningless alone. Erasure coding brings the same protection as plain replication but reduces the amount of stored data by two.

Prerequisites: Install rpcind

Assume that we running cluster on nodes with systemd installed.

Make sure that your nodes have rpcbind.service it will be handled from initContainer, each time before rozofs container start.

If your systems have no systemd, you can change this behavior anytime.

Launch daemons

By default the daemonset configured directories:

  • /data/local/config/rozofs - configs
  • /data/local/data/rozofs - data
  • /mnt - mounts

If you want to use other location download yaml, and override it.

Apply rozofs daemonset:

kubectl apply -f https://github.com/kvaps/docker-rozofs/blob/master/rozofs.yaml

This action will run rozofs container on each node in your cluster

Configuring cluster

Connect to one container:

kubectl exec -ti rozofs-c69hg bash

Follow the instructions on RozoFS website to deploy cluster.

Example:

# Create volume
rozo volume expand node{1,2,3,4} -E node1

# Create export
rozo export create 1 -E node1

# Check export
rozo export get -E node1

# Create mount
rozo mount create -i 1 -E node1

# Check nodes
rozo node list -E node1

About


Languages

Language:Dockerfile 50.9%Language:Shell 49.1%