In a setup with multiple interfaces or Multiple IPs on one interfaces, it
sounds more simple to just get the decision resolved through
configuration. Looking for interfaces that has IP configured as what
"cluster.node.IP" says so, can get us a deterministic mac address.

I'm not sure about a KVM case though, when management server is running on
KVM and CloudStack allows adding management server itself as a KVM host as
well, when this happens, KVM agent seems to create a bridge and shuffle IP
address assignment which could break above logic.

Kelven


On 10/26/13 10:02 PM, "Darren Shepherd" <darren.s.sheph...@gmail.com>
wrote:

>Just want to clarify something for people reading this thread.  I'm not
>looking at code right now so I could be slightly wrong about the
>following.  'host' and 'cluster.node.IP' are slightly different.
>Cluster.node.ip is recorded in the mshost table and is used to tell
>cluster peers what IP the current node is addressable by.  The 'host'
>property is used to tell the systemvms what IP to use to get to the mgmt
>servers.  The host property in a production setup should actually be
>bound to a VIP so that you can handle failover between mgmt servers.  So
>cluster.node.IP != host in most setups.  If you don't set the
>cluster.node.IP (I don't know why) it seems to pick localhost.  If you
>are only running one mgmt server (like a dev setup) that is actually
>fine. Even though it's localhost it will still listen on *.  So in a dev
>setup the cluster.node.IP will be localhost, but you just need to set the
>host property to your real IP.
>
>This is working for me on master, so I'm not too sure what's going on in
>your setup.  Are you seeing that Marvin is not setting the prop in the
>config table.  Or are you seeing the prop in the config table but that
>it's not getting set on cmdline of the systemvms.  I typically set the
>host prop with SQL, so never tried through Marvin.
>
>Darren
>
>> On Oct 26, 2013, at 9:30 PM, Marcus Sorensen <shadow...@gmail.com>
>>wrote:
>> 
>> there's a 'host' global config property that I believe is supposed to
>> be the master mgmt server. For some reason this is also not working
>> quite right for me on master, it used to set correctly per my marvin
>> zone config, going from 4.2 to master the 'host' property always ends
>> up as 'localhost' rather than the IP. This messes things up because it
>> passes 'localhost' as the mgmt server to the system vms.
>> 
>> On Sat, Oct 26, 2013 at 9:44 PM, Darren Shepherd
>> <darren.s.sheph...@gmail.com> wrote:
>>> I completely agree and part of why I want to change it.  On my machine
>>>my wifi and Ethernet devices sometimes swap as being first in the list
>>>and it doesn't seem to like that at all.  I don't know if it's because
>>>my mgmt IP is localhost or what, but the new mgmt host entry never
>>>takes over ownership of the previous hosts.
>>> 
>>> I'd like to make it more deterministic.  Not completely sure what the
>>>algorithm should be.  I was thinking that I'd sort the interfaces by
>>>Mac or name and then look for the non-link local nic.
>>> 
>>> Actually, I can just look for the Mac of the IP set as the
>>>cluster.node.IP.  Some stupid reason I was thinking that was in the DB,
>>>but it's (obviously?) in the db.propeties.
>>> 
>>> Darren
>>> 
>>>> On Oct 26, 2013, at 4:27 PM, Marcus Sorensen <shadow...@gmail.com>
>>>>wrote:
>>>> 
>>>> Tangent, if that's the code that comes up with mgmt server id (by Mac
>>>> address conversion to short), its bitten me in the past. It doesn't
>>>> tolerate new NICs well, for example in development when a mgmt server
>>>>is
>>>> also a host and a link local bridge is created. Seems bad form to
>>>>just run
>>>> ifconfig and grab the first Mac you find.
>>>> On Oct 26, 2013 5:12 PM, "Darren Shepherd"
>>>><darren.s.sheph...@gmail.com>
>>>> wrote:
>>>> 
>>>>> Is there a specific reason that in MacAddress it uses "ifconfig" or
>>>>> other utilities to grab the Mac Address as opposed to the java API
>>>>> java.net.NetworkInterface?  There's a comment in that code that says
>>>>> that code was copied from some public domain utility.  So I'm
>>>>>guessing
>>>>> its there just because that's what somebody wrote back before Java 6
>>>>> introduced NetworkInteface.getHardwareAddress().  I'd like to rewrite
>>>>> this code to use the standard API, grab the Mac deterministically and
>>>>> also not use ifconfig which was deprecated 3 years ago.
>>>>> 
>>>>> Darren
>>>>> 

Reply via email to