<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div><div dir="ltr"><div><div dir="ltr">Hi,<div><br></div><div>Openstack Juno's Live Migration, I've been trying to get live-migration to work on this version but i keep getting the same error as below.</div><div>I wonder if anybody can point me to the right direction to where to debug the problem. Or if anybody come across this problem before please share some ideas.</div><div>I google around for a few days already but so far I haven't got any luck.</div><div><br></div><div><span style="font-size:12pt;">Note: the same nova, neutron and libvirt configuration work on Icehouse and Liberty on a different cluster, as i tested.</span></div><div><br></div><div>Thanks</div><div>Puthi</div><div><br></div><div>Nova Version tested: 2014.2.3 and 2014.2.4</div><div>Nova Error Log</div><div>============</div><div><div>2016-01-14 17:34:08.818 6173 ERROR oslo.messaging.rpc.dispatcher [req-54581412-a194-40d5-9208-b1bf6d04f8d8 ] Exception during message handling: A NetworkModel is required here</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last):</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     incoming.message))</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     return self._do_dispatch(endpoint, method, ctxt, args)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     result = getattr(endpoint, method)(ctxt, **new_args)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/exception.py", line 88, in wrapped</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     payload)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 82, in __exit__</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/exception.py", line 71, in wrapped</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     return f(self, context, *args, **kw)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 335, in decorated_function</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     kwargs['instance'], e, sys.exc_info())</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/openstack/common/excutils.py", line 82, in __exit__</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 323, in decorated_function</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 4978, in live_migration</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     expected_attrs=expected)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 300, in _from_db_object</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     db_inst['info_cache'])</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/objects/instance_info_cache.py", line 45, in _from_db_object</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     info_cache[field] = db_obj[field]</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/objects/base.py", line 474, in __setitem__</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     setattr(self, name, value)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/objects/base.py", line 75, in setter</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     field_value = field.coerce(self, name, value)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/objects/fields.py", line 189, in coerce</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     return self._type.coerce(obj, attr, value)</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/objects/fields.py", line 516, in coerce</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher     raise ValueError(_('A NetworkModel is required here'))</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher ValueError: A NetworkModel is required here</div><div>2016-01-14 17:34:08.818 6173 TRACE oslo.messaging.rpc.dispatcher</div></div><div><br></div><div><br></div><div>Nova Config</div><div>===========================</div><div><div>[DEFAULT]</div><div>rpc_backend = qpid</div><div>qpid_hostname = management-host</div><div>auth_strategy = keystone</div><div>my_ip = 10.201.171.244</div><div>vnc_enabled = True</div><div>novncproxy_host=0.0.0.0</div><div>novncproxy_port=6080</div><div>novncproxy_base_url=http://management-host:6080/vnc_auto.html</div><div>network_api_class = nova.network.neutronv2.api.API</div><div>linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver</div><div>firewall_driver = nova.virt.firewall.NoopFirewallDriver</div><div>vncserver_listen=0.0.0.0</div><div>vncserver_proxyclient_address=10.201.171.244</div><div>[baremetal]</div><div>[cells]</div><div>[cinder]</div><div>[conductor]</div><div>[database]</div><div>connection = mysql://nova:novadbpassword@db-host/nova</div><div>[ephemeral_storage_encryption]</div><div>[glance]</div><div>host = glance-host</div><div>port = 9292</div><div>api_servers=$host:$port</div><div>[hyperv]</div><div>[image_file_url]</div><div>[ironic]</div><div>[keymgr]</div><div>[keystone_authtoken]</div><div>auth_uri = http://management-host:5000/v2.0</div><div>identity_uri = http://management-host:35357</div><div>admin_user = nova</div><div>admin_tenant_name = service</div><div>admin_password = nova2014agprod2</div><div>[libvirt]</div><div>live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_LIVE #, VIR_MIGRATE_TUNNELLED</div><div>block_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_NON_SHARED_INC, VIR_MIGRATE_LIVE</div><div>[matchmaker_redis]</div><div>[matchmaker_ring]</div><div>[metrics]</div><div>[neutron]</div><div>url = http://management-host:9696</div><div>admin_username = neutron</div><div>admin_password = neutronpassword</div><div>admin_tenant_name = service</div><div>admin_auth_url = http://management-host:35357/v2.0</div><div>auth_strategy = keystone</div><div>[osapi_v3]</div><div>[rdp]</div><div>[serial_console]</div><div>[spice]</div><div>[ssl]</div><div>[trusted_computing]</div><div>[upgrade_levels]</div><div>compute=icehouse</div><div>conductor=icehouse</div><div>[vmware]</div><div>[xenserver]</div><div>[zookeeper]</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div>Neutron Config</div><div>============</div><div><div>[DEFAULT]</div><div>auth_strategy = keystone</div><div>rpc_backend = neutron.openstack.common.rpc.impl_qpid</div><div>qpid_hostname = management-host</div><div>core_plugin = ml2</div><div>service_plugins = router</div><div>dhcp_lease_duration = 604800</div><div>dhcp_agents_per_network = 3</div><div>[matchmaker_redis]</div><div>[matchmaker_ring]</div><div>[quotas]</div><div>[agent]</div><div>[keystone_authtoken]</div><div>auth_uri = http://management-host:5000</div><div>identity_uri = http://management-host:35357</div><div>admin_tenant_name = service</div><div>admin_user = neutron</div><div>admin_password = neutronpassword</div><div>auth_host = management-host</div><div>auth_protocol = http</div><div>auth_port = 35357</div><div>[database]</div><div>[service_providers]</div><div>service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default</div><div>service_provider=VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default</div></div><div><br></div><div><br></div><div>Neutron Plugin</div><div>============</div><div><div>[ml2]</div><div>type_drivers = local,flat</div><div>mechanism_drivers = openvswitch</div><div>[ml2_type_flat]</div><div>flat_networks = physnet3</div><div>[ml2_type_vlan]</div><div>[ml2_type_gre]</div><div>tunnel_id_ranges = 1:1000</div><div>[ml2_type_vxlan]</div><div>[securitygroup]</div><div>firewall_driver = neutron.agent.firewall.NoopFirewallDriver</div><div>enable_security_group = False</div><div>[ovs]</div><div>enable_tunneling = False</div><div>local_ip = 10.201.171.244</div><div>network_vlan_ranges = physnet3</div><div>bridge_mappings = physnet3:br-bond0</div></div><div><br></div><div><br></div><div>Libvirt Config</div><div>===========</div><div><p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;">/etc/sysconfig/libvirtd</p>

<p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;">Uncomment </p>

<p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;">LIBVIRTD_ARGS="--listen"</p>

<p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;"><br></p><p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;">/etc/libvirt/libvirtd.conf
</p>

<p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;"> <span style="font-size:11pt;">listen_tls = 0</span></p>

<p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;">listen_tcp = 1</p>

<p style="font-family:Calibri;font-size:11.0pt;color:#1F497D;">auth_tcp = “none”</p></div>                                    </div></div><style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}


--></style>                                      </div></div><style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>                                      </div></body>
</html>