Development Cluster Management
npm install evo-garage -g
Create a containing folder for your cluster, e.g.
Create a simple YAML file
--- script: lxc env: ROOTFS: full-path-to-your-rootfs.squashfs
You can use stemcell to build a rootfs.
Now start server (remeber to use sudo as lxc requires root privilege):
sudo garage-server --clusters=$HOME/myCluster
Use the following command to list all clusters:
Or you can add a new cluster on the fly:
garage add-cluster path-to-dir-which-contains-cluster.yml
Let's get excited now!
garage start myCluster 1-16
It will create and start 16 nodes with IDs from 1 to 16. You can also create nodes with any IDs you like:
garage start myCluster 20 25 46-50
lxc-console to attach to a node:
sudo lxc-console -n "myCluster-20" -t 1
You can check the nodes status:
garage nodes myCluster
You can stop any nodes in the cluster as simple as
garage stop myCluster 1 5 7 9 10-20
Special configuration for Linux Container
The default Linux Container support requires something to be pre-configured.
- One bridge for accessing external network with DHCP, NAT enabled, the name should be
- One bridge for cluster private network, no DHCP configured on host, the name should be
It only supports Linux Container at present, but it is very easy to add other containers like QEMU, VirtualBox etc if you can build rootfs in virtual disk files. There are only 4 script files you need to add:
nodesit prints created node IDs one per line
statusit accepts one parameter as node ID and displays node status as one
key:valuepair per line
startit accepts one parameter as node ID for starting the node
stopit accepts one parameter as node ID for stopping the node