Ahmad,
No, the networks can not be merged. The management server must be able to
control the SSVMs in each zone via the host-only network, and each host must be
able to communicate with the Internet to reach S3 and download templates/ISOs.
However, I have found a fix for the problem. In order to bind the VIF to the
proper network, the name-label Xen network must match the Xen traffic label
specified for the network. For example, I have the following Xen networks
defined:
root@zone1:/opt/cloudstack/apache-tomcat-6.0.32/bin# xe network-list
uuid ( RO) : 8ee927b1-a35d-ac10-4471-d7a6a475839a
name-label ( RW): xenbr0
name-description ( RW):
bridge ( RO): xenbr0
uuid ( RO) : 7ed0b82e-68f6-b26f-cbac-8590f1f5a09d
name-label ( RW): Host internal management network
name-description ( RW): Network on which guests will be assigned a private
link-local IP address which can be used to talk XenAPI
bridge ( RO): xenapi
uuid ( RO) : 1679ddb1-5a21-b827-ab07-c16275d5ce72
name-label ( RW): xenbr1
name-description ( RW): xenbr1
bridge ( RO): xenbr1
uuid ( RO) : c67782a0-ea0e-8d50-ad09-9f3fff8a4ca1
name-label ( RW): cloud_link_local_network
name-description ( RW): link local network used by system vms
bridge ( RO): xapi0
(N.B. These labels are set using the xe network-param-set uuid=<network id>
name-label=<CloudStack traffic label> command).
To ease the correlation of physical devices with CloudStack and Xen, I have set
the name-labels to the device name for xenbr0 and xenbr1. In my configuration,
the xenbr0 name-label is the management network and the xenbr1 name-label is
the guest network. Therefore, the following Marvin configuration snippet with
create management and guest networks with VIFs bound to the correct devices:
"physical_networks": [
{
"broadcastdomainrange": "Zone",
"name": "zone00-pn00",
"traffictypes": [
{
"labeldict": {
"xen": "xenbr1"
},
"typ": "Guest"
},
{
"labeldict": {
"xen": "xenbr0"
},
"typ": "Management"
}
],
"providers": [
{
"broadcastdomainrange": "ZONE",
"name": "VirtualRouter"
},
{
"broadcastdomainrange": "Pod",
"name": "SecurityGroupProvider"
}
]
}
],
Another item to note is that the traffic type labels must be specified in a
child JSON map named "labeldict" which is slightly different than the guidance
below. Additionally, I discovered a bug [1] in the parsing of this map and a
logical swap of the KVM and Xen labels. I have since submitted a patch to
correct it [2], and Chip has merged it into master. Therefore, a repo must
contain commit 14f589702a3a4a473d661677b02f254f5dca9016 for the JSON specified
above to function properly.
I have been able to find this information in the documentation. Therefore, I
have opened an enhancement ticket [3] to add this information to the
Xen-specific network configuration documentation.
Thanks for all of your help,
-John
[1] https://issues.apache.org/jira/browse/CLOUDSTACK-660
[2] https://reviews.apache.org/r/8669/
[3] https://issues.apache.org/jira/browse/CLOUDSTACK-661
On Dec 17, 2012, at 4:43 PM, Ahmad Emneina <[email protected]> wrote:
> Hey John,
>
> Would it be painful to merge the networks, to one physical network? I believe
> anthony thinks basic + multiple physical networks doesn’t/wont work. This
> might also narrow down where the issue could be.
>
> On 12/17/12 9:01 AM, "John Burwell"
> <[email protected]<mailto:[email protected]>> wrote:
>
> Prasanna,
>
> I applied the changes suggested below, and the host now fails to startup
> properly with the following error in the log:
>
> 2012-12-17 08:59:56,408 WARN [cloud.resource.ResourceManagerImpl]
> (AgentTaskPool-2:null) Unable to connect due to
> com.cloud.exception.ConnectionException: Incorrect Network setup on agent,
> Reinitialize agent after network names are setup, details
> : For Physical Network id:200, Guest Network is not configured on the backend
> by name cloud-guest
> at
> com.cloud.network.NetworkManagerImpl.processConnect(NetworkManagerImpl.java:6656)
> at
> com.cloud.agent.manager.AgentManagerImpl.notifyMonitorsOfConnection(AgentManagerImpl.java:611)
> at
> com.cloud.agent.manager.AgentManagerImpl.handleDirectConnectAgent(AgentManagerImpl.java:1502)
> at
> com.cloud.resource.ResourceManagerImpl.createHostAndAgent(ResourceManagerImpl.java:1648)
> at
> com.cloud.resource.ResourceManagerImpl.createHostAndAgent(ResourceManagerImpl.java:1685)
> at
> com.cloud.agent.manager.AgentManagerImpl$SimulateStartTask.run(AgentManagerImpl.java:1152)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:679)
> 2012-12-17 08:59:56,408 DEBUG [cloud.host.Status] (AgentTaskPool-2:null)
> Transition:[Resource state = Enabled, Agent event = AgentDisconnected, Host
> id = 1, name = devcloud]
>
>
> I have also attached a copy of my Marvin configuration for your reference.
>
> Thanks for your help,
> -John
>
>
>
> --
> Æ