Commit f86e82ef authored by Iustin Pop's avatar Iustin Pop
Browse files

Add a cluster architecture diagram

This adds a simple diagram for the cluster architecture and also adds a
dependency on graphviz (both doc and in configure).

Reviewed-by: imsnah
parent 5c0c1eeb
......@@ -32,6 +32,7 @@
# doc/examples
......@@ -9,6 +9,8 @@ Most dependencies from INSTALL, plus:
- rst2html from Docutils
- graphviz
Configuring for development
......@@ -232,6 +232,11 @@ doc/%.html: doc/ $(DOCBOOK_WRAPPER)
doc/%.html: doc/%.rst
$(RST2HTML) $< $@
doc/%.png: doc/
$(DOT) -Tpng -o $@ $<
doc/design-2.0.html: doc/design-2.0.rst doc/arch-2.0.png
doc/rapi.pdf doc/rapi.html doc/ doc/rapi-resources.sgml
doc/rapi-resources.sgml: $(BUILD_RAPI_RESOURCE_DOC) lib/rapi/
......@@ -133,6 +133,14 @@ then
AC_MSG_ERROR([rst2html not found])
# Check for graphviz (dot)
AC_ARG_VAR(DOT, [dot path])
AC_PATH_PROG(DOT, [dot], [])
if test -z "$DOT"
AC_MSG_ERROR([dot (from the graphviz suite) not found])
# Check for Python
digraph "ganeti-2.0-architecture" {
edge[fontsize="8" fontname="Helvetica-Oblique"]
node[width="0" height="0" fontsize="12" fontcolor="black" shape=rect]
subgraph outside {
rclient[label="external clients"]
label="Outside the cluster"
subgraph cluster_inside {
label="ganeti cluster"
subgraph cluster_master_node {
label="master node"
rapi[label="RAPI daemon"]
masterd[shape=record style=filled label="{ <luxi> luxi endpoint | master I/O thread | job queue | {<w1> worker| <w2> worker | <w3> worker }}"]
{rapi;cli;watcher;burnin} -> masterd:luxi [label="LUXI" labelpos=100]
subgraph cluster_nodes {
noded1 [shape=record label="{ RPC listener | Disk management | Network management | Hypervisor } "]
noded2 [shape=record label="{ RPC listener | Disk management | Network management | Hypervisor } "]
noded3 [shape=record label="{ RPC listener | Disk management | Network management | Hypervisor } "]
masterd:w2 -> {noded1;noded2;noded3} [label="node RPC"]
cli -> {noded1;noded2;noded3} [label="SSH"]
rclient -> rapi [label="RAPI protocol"]
......@@ -85,6 +85,14 @@ design of Ganeti is required. While the cluster operations themselves
won't change (e.g. start instance will do the same things, the way
these operations are scheduled internally will change radically.
The new design will change the cluster architecture to:
.. image:: arch-2.0.png
This differs from the 1.2 architecture by the addition of the master
daemon, which will be the only entity to talk to the node daemons.
Detailed design
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment