740d09207a9e874964352c08403421810cad8443
[ganeti-local] / doc / design-2.1.rst
1 =================
2 Ganeti 2.1 design
3 =================
4
5 This document describes the major changes in Ganeti 2.1 compared to
6 the 2.0 version.
7
8 The 2.1 version will be a relatively small release. Its main aim is to avoid
9 changing too much of the core code, while addressing issues and adding new
10 features and improvements over 2.0, in a timely fashion.
11
12 .. contents:: :depth: 3
13
14 Objective
15 =========
16
17 Ganeti 2.1 will add features to help further automatization of cluster
18 operations, further improbe scalability to even bigger clusters, and make it
19 easier to debug the Ganeti core.
20
21 Background
22 ==========
23
24 Overview
25 ========
26
27 Detailed design
28 ===============
29
30 As for 2.0 we divide the 2.1 design into three areas:
31
32 - core changes, which affect the master daemon/job queue/locking or all/most
33   logical units
34 - logical unit/feature changes
35 - external interface changes (eg. command line, os api, hooks, ...)
36
37 Core changes
38 ------------
39
40 Feature changes
41 ---------------
42
43 Redistribute Config
44 ~~~~~~~~~~~~~~~~~~~
45
46 Current State and shortcomings
47 ++++++++++++++++++++++++++++++
48 Currently LURedistributeConfig triggers a copy of the updated configuration
49 file to all master candidates and of the ssconf files to all nodes. There are
50 other files which are maintained manually but which are important to keep in
51 sync. These are:
52
53 - rapi SSL key certificate file (rapi.pem) (on master candidates)
54 - rapi user/password file rapi_users (on master candidates)
55
56 Furthermore there are some files which are hypervisor specific but we may want
57 to keep in sync:
58
59 - the xen-hvm hypervisor uses one shared file for all vnc passwords, and copies
60   the file once, during node add. This design is subject to revision to be able
61   to have different passwords for different groups of instances via the use of
62   hypervisor parameters, and to allow xen-hvm and kvm to use an equal system to
63   provide password-protected vnc sessions. In general, though, it would be
64   useful if the vnc password files were copied as well, to avoid unwanted vnc
65   password changes on instance failover/migrate.
66
67 Optionally the admin may want to also ship files such as the global xend.conf
68 file, and the network scripts to all nodes.
69
70 Proposed changes
71 ++++++++++++++++
72
73 RedistributeConfig will be changed to copy also the rapi files, and to call
74 every enabled hypervisor asking for a list of additional files to copy. We also
75 may want to add a global list of files on the cluster object, which will be
76 propagated as well, or a hook to calculate them. If we implement this feature
77 there should be a way to specify whether a file must be shipped to all nodes or
78 just master candidates.
79
80 This code will be also shared (via tasklets or by other means, if tasklets are
81 not ready for 2.1) with the AddNode and SetNodeParams LUs (so that the relevant
82 files will be automatically shipped to new master candidates as they are set).
83
84 External interface changes
85 --------------------------
86