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` |