Hi,
I'll try to describe it little bit more. Lets say, that we've got one data
center. It's not configured yet to have its own mac pool. So in system is only
one, global pool. We create few VMs and it's NICs will obtain its MAC from this
global pool, marking them as used. Next we alter data center definition, so now
it uses it's own mac pool. In system from this point on exists two mac pools,
one global and one related to this data center, but those allocated MACs are
still allocated in global pool, since new data center creation does not (yet)
contain logic to get all assigned MACs related to this data center and reassign
them in new pool. However, after app restart all VmNics are read from db and
placed to appropriate pools. Lets assume, that we've performed such restart.
Now we realized, that we actually don't want that data center have own mac
pool, so we alter it's definition removing mac pool ranges. Pool related to
this data center will be removed and it's content will be
moved to a scope above this data center -- into global scope pool. We know,
that everything what's allocated in pool to be removed is still used, but we
need to track it elsewhere and currently there's just one option, global pool.
So to answer your last question. When I remove scope, it's pool is gone and its
content moved elsewhere. Next, when MAC is returned to the pool, the request
goes like: "give me pool for this virtual machine, and whatever pool it is, I'm
returning this MAC to it." Clients of ScopedMacPoolManager do not know which
pool they're talking to. Decision, which pool is right for them, is done behind
the scenes upon their identification (I want pool for this logical network).
Notice, that there is one "problem" in deciding which scope/pool to use. There
are places in code, which requires pool related to given data center,
identified by guid. For that request, only data center scope or something
broader like global scope can be returned. So even if one want to use one pool
per logical network, requests identified by data center id still can return
only data center scope or broader, and there are no chance returning pool
related to logical network (except for situation, where there is sole logical
network in that data center).
Thanks for suggestion for another scopes. One question: if we're implementing
them, would you like just to pick a *sole* non-global scope you want to use in
your system (like data center related pools ONLY plus one global, or logical
network related pools ONLY plus one global) or would it be (more) beneficial to
you to have implemented some sort of cascading and overriding? Like: "this data
center uses *this* pool, BUT except for *this* logical network, which should
use *this* one instead."
I'll update feature page to contain these paragraphs.
M.
- Original Message -
From: "Itamar Heim"
To: "Martin Mucha" , users@ovirt.org, de...@ovirt.org
Sent: Thursday, April 10, 2014 9:04:37 AM
Subject: Re: [ovirt-users] Feature Page: Mac Pool per DC (was: new feature)
On 04/10/2014 09:59 AM, Martin Mucha wrote:
> Hi,
>
> I'd like to notify you about new feature, which allows to specify distinct
> MAC pools, currently one per data center.
> http://www.ovirt.org/Scoped_MacPoolManager
>
> any comments/proposals for improvement are very welcomed.
> Martin.
> ___
> Users mailing list
> Users@ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
>
(changed title to reflect content)
> When specified mac ranges for given "scope", where there wasn't any
> definition previously, allocated MAC from default pool will not be moved to
> "scoped" one until next engine restart. Other way, when removing "scoped" mac
> pool definition, all MACs from this pool will be moved to default one.
cna you please elaborate on this one?
as for potential other "scopes" - i can think of cluster, vm pool and
logical network as potential ones.
one more question - how do you know to "return" the mac address to the
correct pool on delete?
___
Users mailing list
Users@ovirt.org
http://lists.ovirt.org/mailman/listinfo/users