Statistics
| Branch: | Tag: | Revision:

root / docs / cyclades.rst @ bc055d09

History | View | Annotate | Download (3 kB)

1
.. _cyclades:
2

    
3
Compute and Network Service (cyclades)
4
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5

    
6
Cyclades is the the synnefo Compute and Network Service.
7

    
8
It implements OpenStack Compute API v1.1 + synnefo extensions.
9

    
10
.. todo:: list synnefo components needed by cyclades
11

    
12
.. _cyclades-architecture:
13

    
14
Cyclades Architecture
15
=====================
16

    
17
.. todo:: document the overall cyclades architecture
18

    
19
Nodes in an cyclades deployment belong in one of the following types.
20
For every type, we list the services that execute on corresponding nodes.
21
Throughout this guide, `node` refers to a physical machine in the deployment.
22

    
23
.. _DB_NODE:
24

    
25
DB
26
--
27

    
28
A node [or more than one nodes, if using an HA configuration], running a DB
29
engine supported by the Django ORM layer. The DB is the single source of
30
truth for the servicing of API requests by cyclades.
31

    
32
*Services:* PostgreSQL / MySQL
33

    
34
.. _APISERVER_NODE:
35

    
36
APISERVER
37
---------
38

    
39
A node running the ``api`` application contained in
40
:ref:`snf-cyclades-app <snf-cyclades-app>`. Any number of
41
:ref:`APISERVER <APISERVER_NODE>` nodes
42
can be used, in a load-balancing configuration, without any
43
special consideration. Access to a common DB ensures consistency.
44

    
45
*Services:* Web server, vncauthproxy
46

    
47

    
48
.. _QUEUE_NODE:
49

    
50
QUEUE
51
-----
52

    
53
A node running the RabbitMQ software, which provides AMQP functionality. More
54
than one :ref:`QUEUE <QUEUE_NODE>` nodes may be deployed, in an HA
55
configuration. Such deployments require shared storage, provided e.g., by DRBD.
56

    
57
*Services:* RabbitMQ [rabbitmq-server]
58

    
59

    
60
.. _LOGIC_NODE:
61

    
62
LOGIC
63
-----
64

    
65
A node running the business logic of synnefo, in Django. It dequeues
66
messages from QUEUE nodes, and provides the context in which business logic
67
functions run. It uses Django ORM to connect to the common DB and update the
68
state of the system, based on notifications received from the rest of the
69
infrastructure, over AMQP.
70

    
71
*Services:* the synnefo logic dispatcher, ``snf-dispatcher``
72

    
73

    
74
.. _GANETI_NODES:
75
.. _GANETI_MASTER:
76
.. _GANETI_NODE:
77

    
78
GANETI-MASTER and GANETI-NODE
79
-----------------------------
80

    
81
A single GANETI-MASTER and a large number of GANETI-NODEs constitute the
82
Ganeti backend for synnefo, which undertakes all VM management functions.
83
Any APISERVER can issue commands to the GANETI-MASTER, over RAPI, to effect
84
changes in the state of the VMs. The GANETI-MASTER runs the Ganeti request
85
queue.
86

    
87
*Services:*
88
    * only on :ref:`GANETI-MASTER <GANETI_MASTER>`:
89
        * the synnefo Ganeti monitoring daemon, ``snf-ganeti-eventd``
90
        * the synnefo Ganeti hook, ``ganeti/snf-ganeti-hook.py``.
91
    * on every :ref:`GANETI-NODE <GANETI_NODE>`:
92
        * a deployment-specific KVM ifup script
93
        * properly configured :ref:`NFDHCPD <cyclades-nfdhcpd-setup>`
94

    
95

    
96
..   src/design
97
..   src/dev
98
..   src/user
99
..   src/api
100

    
101
..   src/install
102
..   src/configuration
103
..   src/deployment
104
..   src/admin
105
..   src/admin_tools
106
..   src/develop
107
..   src/api
108
..   src/plankton
109
..   src/storage
110
..   src/upgrade
111
..   src/changelog
112

    
113
Indices and tables
114
==================
115

    
116

    
117
* :ref:`genindex`
118
* :ref:`modindex`
119
* :ref:`search`