mirage-swim icon indicating copy to clipboard operation
mirage-swim copied to clipboard

Membership protocol for Mirage unikernel clusters based on SWIM

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