Revision feec31d1

b/doc/admin.rst
78 78
- the :command:`ganeti-masterd` daemon which runs on the master node and
79 79
  allows control of the cluster
80 80

  
81
Beside the node role, there are other node flags that influence its
82
behaviour:
83

  
84
- the *master_capable* flag denotes whether the node can ever become a
85
  master candidate; setting this to 'no' means that auto-promotion will
86
  never make this node a master candidate; this flag can be useful for a
87
  remote node that only runs local instances, and having it become a
88
  master is impractical due to networking or other constraints
89
- the *vm_capable* flag denotes whether the node can host instances or
90
  not; for example, one might use a non-vm_capable node just as a master
91
  candidate, for configuration backups; setting this flag to no
92
  disallows placement of instances of this node, deactivates hypervisor
93
  and related checks on it (e.g. bridge checks, LVM check, etc.), and
94
  removes it from cluster capacity computations
95

  
96

  
81 97
Instance
82 98
~~~~~~~~
83 99

  
b/doc/design-2.3.rst
487 487
informationally, not for allocation decisions.
488 488

  
489 489

  
490
Node flags
491
----------
492

  
493
Current state and shortcomings
494
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
495

  
496
Currently all nodes are, from the point of view of their capabilities,
497
homogeneous. This means the cluster considers all nodes capable of
498
becoming master candidates, and of hosting instances.
499

  
500
This prevents some deployment scenarios: e.g. having a Ganeti instance
501
(in another cluster) be just a master candidate, in case all other
502
master candidates go down (but not, of course, host instances), or
503
having a node in a remote location just host instances but not become
504
master, etc.
505

  
506
Proposed changes
507
~~~~~~~~~~~~~~~~
508

  
509
Two new capability flags will be added to the node:
510

  
511
- master_capable, denoting whether the node can become a master
512
  candidate or master
513
- vm_capable, denoting whether the node can host instances
514

  
515
In terms of the other flags, master_capable is a stronger version of
516
"not master candidate", and vm_capable is a stronger version of
517
"drained".
518

  
519
For the master_capable flag, it will affect auto-promotion code and node
520
modifications.
521

  
522
The vm_capable flag will affect the iallocator protocol, capacity
523
calculations, node checks in cluster verify, and will interact in novel
524
ways with locking (unfortunately).
525

  
526
It is envisaged that most nodes will be both vm_capable and
527
master_capable, and just a few will have one of these flags
528
removed. Ganeti itself will allow clearing of both flags, even though
529
this doesn't make much sense currently.
530

  
531

  
490 532
Job priorities
491 533
--------------
492 534

  
b/man/ganeti.sgml
147 147
    </refsect2>
148 148

  
149 149
    <refsect2>
150
      <title>Node flags</title>
151

  
152
      <para>Nodes have two flags which govern which roles they can take:
153
        <variablelist>
154
          <varlistentry>
155
            <term>master_capable</term>
156
            <listitem>
157
              <para>
158
                The node can become a master candidate, and
159
                furthermore the master node. When this flag is
160
                disabled, the node cannot become a candidate; this can
161
                be useful for special networking cases, or less
162
                reliable hardware.
163
              </para>
164
            </listitem>
165
          </varlistentry>
166
          <varlistentry>
167
            <term>vm_capable</term>
168
            <listitem>
169
              <para>
170
                The node can host instances. When enabled (the default
171
                state), the node will participate in instance
172
                allocation, capacity calculation, etc. When disabled,
173
                the node will be skipped in many cluster checks and
174
                operations.
175
              </para>
176
            </listitem>
177
          </varlistentry>
178
        </variablelist>
179
      </para>
180
    </refsect2>
181

  
182
    <refsect2>
150 183
      <title>Cluster configuration</title>
151 184

  
152 185
      <para>The master node keeps and is responsible for the cluster

Also available in: Unified diff