[Maas-devel] Node state and pserv

Jeroen Vermeulen jtv at canonical.com
Fri Apr 27 04:39:50 UTC 2012


On 2012-04-27 09:39, Julian Edwards wrote:

> I am largely in favour of this.  I'd go even further and say that the only ops
> that need to talk to the pserv/cobbler axis are start and stop, because they
> can send every detail necessary in the one call and we make pserv just
> overwrite anything in cobbler.

That would be ideal for me as well, but isn't pserv also responsible for 
ongoing DHCP and DNS?  I take it that those need to be aware of hostname 
changes and at least changes in a host's primary MAC.


> I am also heavily in favour of making this completely asynchronous so that
> appserver threads are not blocked - we are already running into trouble with
> this old synchronous approach
> (https://bugs.launchpad.net/ubuntu/+source/maas/+bug/989355).

Ouch!  Looks like maas-import-isos is keeping Cobbler too busy to 
respond to the maasserver.


> You talk about nodes that "pserv knows about" - this concerns me a bit because
> pserv needs to be stateless so that we can scale it easily.  What do you mean
> exactly by it knowing about nodes?  Right now we can't avoid that cobbler has
> state, but we can overwrite it evey time we talk to it so that the MAAS data
> is always authoritative.

Your goals are my goals.  When I talk about nodes that pserv knows 
about, I am thinking of two distinct reasons for it to know:

1. Any kind of slow setup (commissioning or deployment, I suppose) that 
takes a while and must be done asynchronously.  While that's going on, 
below the granularity of maasserver control, I assume that pserv will 
need to maintain some state about the node.

And as far as I'm concerned, it should forget about that state as soon 
as possible: an “amnesiac” implementation.  But there's also:

2. DHCP and DNS.  If we serve these from inside pserv somewhere, those 
services will need to know about them.  But we can edit some related 
properties from the MAAS UI: hostname and MAC addresses.

I don't think we've made conscious decisions yet about how and when 
those changes would need to affect pserv at all.  If I change a host's 
name, from a network-management perspective it seems that dnsmasq should 
learn about the change.  Moreover, if I take out a host's primary MAC 
address (e.g. because I find that the network card was broken) then I'd 
expect either its IP address or its hostname to shift to its new primary 
MAC.

Arguably we can defer all this until the next time a node is installed. 
  It's not a very good idea to go messing with that stuff on the fly. 
But then we should at least make a conscious choice that editing a 
node's hostname or MAC addresses only edits what we want that node to 
look like the next time we start it up, not what they currently look 
like in the network.

There may be corner cases to watch out for: say I have nodes with 
hostnames aaa and bbb, and I rename bbb to ccc and I rename aaa to bbb. 
  Then I reboot or even reinstall the first.  Now I've got two machines 
with a claim to hostname bbb.

I *think* we're pretty much good on the MAC/IP front, but I can't say 
that with confidence yet.


Jeroen




More information about the Maas-devel mailing list