Revision 0f828357

b/doc/design-2.1.rst
434 434
doesn't have a ganeti provided script, so nothing will be done for that
435 435
hypervisor)
436 436

  
437
Introducing persistent UUIDs
438
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
439

  
440
Current state and shortcomings
441
++++++++++++++++++++++++++++++
442

  
443
Some objects in the Ganeti configurations are tracked by their name
444
while also supporting renames. This creates an extra difficulty,
445
because neither Ganeti nor external management tools can then track
446
the actual entity, and due to the name change it behaves like a new
447
one.
448

  
449
Proposed changes part 1
450
+++++++++++++++++++++++
451

  
452
We will change Ganeti to use UUIDs for entity tracking, but in a
453
staggered way. In 2.1, we will simply add an “uuid” attribute to each
454
of the instances, nodes and cluster itself. This will be reported on
455
instance creation for nodes, and on node adds for the nodes. It will
456
be of course avaiblable for querying via the OpQueryNodes/Instance and
457
cluster information, and via RAPI as well.
458

  
459
Note that Ganeti will not provide any way to change this attribute.
460

  
461
Upgrading from Ganeti 2.0 will automatically add an ‘uuid’ attribute
462
to all entities missing it.
463

  
464

  
465
Proposed changes part 2
466
+++++++++++++++++++++++
467

  
468
In the next release (e.g. 2.2), the tracking of objects will change
469
from the name to the UUID internally, and externally Ganeti will
470
accept both forms of identification; e.g. an RAPI call would be made
471
either against ``/2/instances/foo.bar`` or against
472
``/2/instances/bb3b2e42…``. Since an FQDN must have at least a dot,
473
and dots are not valid characters in UUIDs, we will not have namespace
474
issues.
475

  
476
Another change here is that node identification (during cluster
477
operations/queries like master startup, “am I the master?” and
478
similar) could be done via UUIDs which is more stable than the current
479
hostname-based scheme.
480

  
481
Internal tracking refers to the way the configuration is stored; a
482
DRBD disk of an instance refers to the node name (so that IPs can be
483
changed easily), but this is still a problem for name changes; thus
484
these will be changed to point to the node UUID to ease renames.
485

  
486
The advantages of this change (after the second round of changes), is
487
that node rename becomes trivial, whereas today node rename would
488
require a complete lock of all instances.
489

  
437 490

  
438 491
Automated disk repairs infrastructure
439 492
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Also available in: Unified diff