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