Membership protocol for Mirage unikernel clusters based on SWIM
OCaml
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.merlin
README.md
broadcast_queue.ml
config.ml
stack_ext.ml
swim.ml
unikernel.ml

README.md

mirage-swim

This repo is the beginnings of an implementation of the SWIM protocol for Mirage. The goal is to provide a scalable membership protocol for clusters of unikernels.

The intention is that unikernels in a cluster run the the Swim task alongside their actual task. The application task can then query Swim about the state of the cluster, e.g. to issue a request to another node.

Usage

So far, this has only been tested on OSX running only the Swim task (no application task). Run the following to start a node locally:

env NET=direct DHCP=true mirage configure --unix
make
sudo ./mir-swim

(sudo is required to access vmnet)

You can then run the following in another shell to join the cluster:

sudo ./mir-swim --join_ip=[the ip assigned to the previous node]

You should see debug information in the console.

Todo