Statistics
| Branch: | Tag: | Revision:

root / README.admin @ 96b635d9

History | View | Annotate | Download (2.9 kB)

1
README.admin - Administration notes
2

    
3
This file contains notes related to administration of a working Synnefo
4
deployment. This document should be read *after* README.deploy, which contains
5
step-by-step Synnefo deployment instructions.
6

    
7

    
8
Database
9
========
10

    
11
MySQL: manage.py dbshell seems to ignore the setting of 'init_command'
12
       in settings.DATABASES
13

    
14
Reconciliation mechanism
15
========================
16

    
17
On certain occasions, such as a Ganeti or RabbitMQ failure, the VM state in the
18
system's database may differ from that in the Ganeti installation. The
19
reconciliation process is designed to bring the system's database in sync with
20
what Ganeti knows about each VM.
21

    
22
The administrator can trigger reconciliation manually, by issuing a Ganeti
23
OP_INSTANCE_QUERY_DATA command, using gnt-instance info.
24

    
25
Alternatively, the reconciliation process can be triggered for all VMs using the
26
command
27

    
28
  ./manage.py reconcile --all
29

    
30
It is advised, though not strictly necessary, to run the reconciliation process
31
periodically, through cron. To avoid overloading the Ganeti master, the periodic
32
reconciliation process takes a staggered approach to updating the VMs, which is
33
configured through the following parameters:
34

    
35
* The settings.py RECONCILIATION_MIN parameter, which specifies the maximum time
36
  a VM can remain ``non-reconciled''. (default: 30 mins)
37

    
38
* The --interval option to the reconcile command, which declares the interval
39
  time between reconciliation attempts (default: 1 min)
40

    
41
On each invocation of the reconcile command, the system will trigger a
42
reconciliation for ((num_all_vms/RECONCILIATION_MIN) * interval) machines.
43
Obviously the lower the interval value and the higher the setting of
44
RECONCILIATION_MIN, the less load is going to be put on Ganeti.
45

    
46
Logging
47
=======
48

    
49
Logging in Synnefo is using Python's logging module. The module is configured
50
using a configuration file, whose format is described here:
51

    
52
http://docs.python.org/library/logging.config.html
53

    
54
By default, the log initialization code will look for the logging.conf file
55
in the following locations in order:
56

    
57
1. /etc/synnefo/logging.conf
58
2. os.getcwd()/logging.conf
59
3. synnefo.logic.__path__[0]/logging.conf (<-- this is the default)
60

    
61
The default configuration is using Linux conventions: it logs to /dev/log for
62
all loggers. The default configuration can be changed by copying the default
63
file to any of the above mentioned locations and changing it appropriately.
64

    
65
* Logging and demonization: If the logging is configured to print to the console
66
  (using the consoleHandler handler) then daemon processes (notably, the
67
  dispatcher) will not work as it should. This only happens after the daemon
68
  has lost its controlling terminal (e.g. because the terminal was closed);
69
  in this case the dispatcher does not know where to log to and depending on
70
  the system it either crashes or stalls. This can be avoided if the logging
71
  module is not configured to output to the console.