<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I just posted the following at <a href="http://forums.openstack.org/viewtopic.php?f=15&t=1435">
http://forums.openstack.org/viewtopic.php?f=15&t=1435</a>, then realized this mailing list might be a better place to ask the question.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In summary, I’ve cobbled together devstack-based nodes to exercise quantum/openvswitch (when I say cobbled, I mean my result is the combination of information from wiki and from devstack, and elsewhere to create my localrc files, since
 there is no one definitive template that I could use, and it seems that devstack examples are not current with what is happening on Folsom). One node is a controller, one is a compute node. I can launch using horizon on the controller, VMs launched on the
 controller are pingable, but ones launched on the compute node are not. The big difference I can see is a missing gateway interface on the controller (on gw-* displayed when I run ifconfig). By inspection of the logs, I can see that the VMs are unable to establish
 a network, and I think the missing gateway interface may be the root cause for that.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Below are details:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Two hosts, one configured as a controller, the other configured as a compute node.<o:p></o:p></p>
<p class="MsoNormal">Each host is dual homed, network for eth0 is connected to the local intranet, network for eth1 is configured as a local net 192.168.3.0<o:p></o:p></p>
<p class="MsoNormal">On the controller host, I used devstack with the following localrc (which is an aggregation of stuff I found on the devstack site, and stuff I found recently on the quantum wiki -- it would be nice if complete templates for a controller
 and compute node supporting devstack and openvswitch were published on the devstack site or the wiki, perhaps since we are not yet at Folsom it makes sense they don't exist, if I get something working, I will share my configuration in the entirety at whatever
 is the most appropriate place). Anyway, controller host localrc is:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">HOST_IP=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">FLAT_INTERFACE=eth1<o:p></o:p></p>
<p class="MsoNormal">FIXED_RANGE=10.4.128.0/20<o:p></o:p></p>
<p class="MsoNormal">FIXED_NETWORK_SIZE=4096<o:p></o:p></p>
<p class="MsoNormal">FLOATING_RANGE=192.168.3.128/25<o:p></o:p></p>
<p class="MsoNormal">MULTI_HOST=True<o:p></o:p></p>
<p class="MsoNormal">LOGFILE=/opt/stack/logs/stack.sh.log<o:p></o:p></p>
<p class="MsoNormal">ADMIN_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">MYSQL_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">RABBIT_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">SERVICE_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">SERVICE_TOKEN=xyzpdqlazydog<o:p></o:p></p>
<p class="MsoNormal">ENABLED_SERVICES=g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,horizon,mysql,rabbit,openstackx,q-svc,quantum,q-agt,q-dhcp<o:p></o:p></p>
<p class="MsoNormal">Q_PLUGIN=openvswitch<o:p></o:p></p>
<p class="MsoNormal">Q_AUTH_STRATEGY=noauth<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If I run stack on this host, I get the following nova.conf:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[DEFAULT]<o:p></o:p></p>
<p class="MsoNormal">verbose=True<o:p></o:p></p>
<p class="MsoNormal">auth_strategy=keystone<o:p></o:p></p>
<p class="MsoNormal">allow_resize_to_same_host=True<o:p></o:p></p>
<p class="MsoNormal">root_helper=sudo /usr/local/bin/nova-rootwrap /etc/nova/rootwrap.conf<o:p></o:p></p>
<p class="MsoNormal">compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler<o:p></o:p></p>
<p class="MsoNormal">dhcpbridge_flagfile=/etc/nova/nova.conf<o:p></o:p></p>
<p class="MsoNormal">fixed_range=10.4.128.0/20<o:p></o:p></p>
<p class="MsoNormal">s3_host=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">s3_port=3333<o:p></o:p></p>
<p class="MsoNormal">network_manager=nova.network.quantum.manager.QuantumManager<o:p></o:p></p>
<p class="MsoNormal">quantum_connection_host=localhost<o:p></o:p></p>
<p class="MsoNormal">quantum_connection_port=9696<o:p></o:p></p>
<p class="MsoNormal">quantum_use_dhcp=True<o:p></o:p></p>
<p class="MsoNormal">libvirt_vif_type=ethernet<o:p></o:p></p>
<p class="MsoNormal">libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver<o:p></o:p></p>
<p class="MsoNormal">linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver<o:p></o:p></p>
<p class="MsoNormal">osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions<o:p></o:p></p>
<p class="MsoNormal">my_ip=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">public_interface=br100<o:p></o:p></p>
<p class="MsoNormal">vlan_interface=eth0<o:p></o:p></p>
<p class="MsoNormal">flat_network_bridge=br100<o:p></o:p></p>
<p class="MsoNormal">flat_interface=eth1<o:p></o:p></p>
<p class="MsoNormal">sql_connection=mysql://root:password@localhost/nova?charset=utf8<o:p></o:p></p>
<p class="MsoNormal">libvirt_type=kvm<o:p></o:p></p>
<p class="MsoNormal">libvirt_cpu_mode=none<o:p></o:p></p>
<p class="MsoNormal">instance_name_template=instance-%08x<o:p></o:p></p>
<p class="MsoNormal">novncproxy_base_url=http://192.168.3.1:6080/vnc_auto.html<o:p></o:p></p>
<p class="MsoNormal">xvpvncproxy_base_url=http://192.168.3.1:6081/console<o:p></o:p></p>
<p class="MsoNormal">vncserver_listen=127.0.0.1<o:p></o:p></p>
<p class="MsoNormal">vncserver_proxyclient_address=127.0.0.1<o:p></o:p></p>
<p class="MsoNormal">api_paste_config=/etc/nova/api-paste.ini<o:p></o:p></p>
<p class="MsoNormal">image_service=nova.image.glance.GlanceImageService<o:p></o:p></p>
<p class="MsoNormal">ec2_dmz_host=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">rabbit_host=localhost<o:p></o:p></p>
<p class="MsoNormal">rabbit_password=password<o:p></o:p></p>
<p class="MsoNormal">glance_api_servers=192.168.3.1:9292<o:p></o:p></p>
<p class="MsoNormal">force_dhcp_release=True<o:p></o:p></p>
<p class="MsoNormal">multi_host=True<o:p></o:p></p>
<p class="MsoNormal">send_arp_for_ha=True<o:p></o:p></p>
<p class="MsoNormal">logging_context_format_string=%(asctime)s %(color)s%(levelname)s %(name)s [^[[01;36m%(request_id)s ^[[00;36m%(user_name)s %(project_name)s%(color)s] ^[[01;35m%(instance)s%(color)s%(message)s^[[00m<o:p></o:p></p>
<p class="MsoNormal">logging_default_format_string=%(asctime)s %(color)s%(levelname)s %(name)s [^[[00;36m-%(color)s] ^[[01;35m%(instance)s%(color)s%(message)s^[[00m<o:p></o:p></p>
<p class="MsoNormal">logging_debug_format_suffix=^[[00;33mfrom (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d^[[00m<o:p></o:p></p>
<p class="MsoNormal">logging_exception_prefix=%(color)s%(asctime)s TRACE %(name)s ^[[01;35m%(instance)s^[[00m<o:p></o:p></p>
<p class="MsoNormal">compute_driver=libvirt.LibvirtDriver<o:p></o:p></p>
<p class="MsoNormal">firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver<o:p></o:p></p>
<p class="MsoNormal">enabled_apis=ec2,osapi_compute,osapi_volume,metadata<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If I run horizon, I can launch vms and ping them. If I look at the logs generated by the VMs, they are able to get a network. Furthermore, I get the following network interface in addition to the tap interfaces generated for each VM:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">gw-4f16e8db-20 Link encap:Ethernet HWaddr fa:16:3e:08:e0:2d<o:p></o:p></p>
<p class="MsoNormal">inet addr:10.4.128.1 Bcast:10.4.143.255 Mask:255.255.240.0<o:p></o:p></p>
<p class="MsoNormal">inet6 addr: fe80::f816:3eff:fe08:e02d/64 Scope:Link<o:p></o:p></p>
<p class="MsoNormal">UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1<o:p></o:p></p>
<p class="MsoNormal">RX packets:0 errors:0 dropped:0 overruns:0 frame:0<o:p></o:p></p>
<p class="MsoNormal">TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<o:p></o:p></p>
<p class="MsoNormal">collisions:0 txqueuelen:0<o:p></o:p></p>
<p class="MsoNormal">RX bytes:0 (0.0 B) TX bytes:468 (468.0 B)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now, for the compute node, I use the following:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">HOST_IP=192.168.3.2<o:p></o:p></p>
<p class="MsoNormal">FLAT_INTERFACE=eth1<o:p></o:p></p>
<p class="MsoNormal">FIXED_RANGE=10.4.128.0/20<o:p></o:p></p>
<p class="MsoNormal">FIXED_NETWORK_SIZE=4096<o:p></o:p></p>
<p class="MsoNormal">FLOATING_RANGE=192.168.3.128/25<o:p></o:p></p>
<p class="MsoNormal">MULTI_HOST=1<o:p></o:p></p>
<p class="MsoNormal">LOGFILE=/opt/stack/logs/stack.sh.log<o:p></o:p></p>
<p class="MsoNormal">ADMIN_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">MYSQL_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">RABBIT_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">SERVICE_PASSWORD=password<o:p></o:p></p>
<p class="MsoNormal">SERVICE_TOKEN=xyzpdqlazydog<o:p></o:p></p>
<p class="MsoNormal">Q_HOST=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">MYSQL_HOST=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">RABBIT_HOST=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">GLANCE_HOSTPORT=192.168.3.1:9292<o:p></o:p></p>
<p class="MsoNormal">ENABLED_SERVICES=n-cpu,rabbit,g-api,n-net,quantum,q-agt<o:p></o:p></p>
<p class="MsoNormal">Q_PLUGIN=openvswitch<o:p></o:p></p>
<p class="MsoNormal">Q_AUTH_STRATEGY=noauth<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The resulting nova.conf is:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[DEFAULT]<o:p></o:p></p>
<p class="MsoNormal">verbose=True<o:p></o:p></p>
<p class="MsoNormal">auth_strategy=keystone<o:p></o:p></p>
<p class="MsoNormal">allow_resize_to_same_host=True<o:p></o:p></p>
<p class="MsoNormal">root_helper=sudo /usr/local/bin/nova-rootwrap /etc/nova/rootwrap.conf<o:p></o:p></p>
<p class="MsoNormal">compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler<o:p></o:p></p>
<p class="MsoNormal">dhcpbridge_flagfile=/etc/nova/nova.conf<o:p></o:p></p>
<p class="MsoNormal">fixed_range=10.4.128.0/20<o:p></o:p></p>
<p class="MsoNormal">s3_host=192.168.3.2<o:p></o:p></p>
<p class="MsoNormal">s3_port=3333<o:p></o:p></p>
<p class="MsoNormal">network_manager=nova.network.quantum.manager.QuantumManager<o:p></o:p></p>
<p class="MsoNormal">quantum_connection_host=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">quantum_connection_port=9696<o:p></o:p></p>
<p class="MsoNormal">quantum_use_dhcp=True<o:p></o:p></p>
<p class="MsoNormal">libvirt_vif_type=ethernet<o:p></o:p></p>
<p class="MsoNormal">libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver<o:p></o:p></p>
<p class="MsoNormal">linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver<o:p></o:p></p>
<p class="MsoNormal">osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions<o:p></o:p></p>
<p class="MsoNormal">my_ip=192.168.3.2<o:p></o:p></p>
<p class="MsoNormal">public_interface=br100<o:p></o:p></p>
<p class="MsoNormal">vlan_interface=eth0<o:p></o:p></p>
<p class="MsoNormal">flat_network_bridge=br100<o:p></o:p></p>
<p class="MsoNormal">flat_interface=eth1<o:p></o:p></p>
<p class="MsoNormal">sql_connection=mysql://root:password@192.168.3.1/nova?charset=utf8<o:p></o:p></p>
<p class="MsoNormal">libvirt_type=kvm<o:p></o:p></p>
<p class="MsoNormal">libvirt_cpu_mode=none<o:p></o:p></p>
<p class="MsoNormal">instance_name_template=instance-%08x<o:p></o:p></p>
<p class="MsoNormal">novncproxy_base_url=http://192.168.3.2:6080/vnc_auto.html<o:p></o:p></p>
<p class="MsoNormal">xvpvncproxy_base_url=http://192.168.3.2:6081/console<o:p></o:p></p>
<p class="MsoNormal">vncserver_listen=127.0.0.1<o:p></o:p></p>
<p class="MsoNormal">vncserver_proxyclient_address=127.0.0.1<o:p></o:p></p>
<p class="MsoNormal">api_paste_config=/etc/nova/api-paste.ini<o:p></o:p></p>
<p class="MsoNormal">image_service=nova.image.glance.GlanceImageService<o:p></o:p></p>
<p class="MsoNormal">ec2_dmz_host=192.168.3.2<o:p></o:p></p>
<p class="MsoNormal">rabbit_host=192.168.3.1<o:p></o:p></p>
<p class="MsoNormal">rabbit_password=password<o:p></o:p></p>
<p class="MsoNormal">glance_api_servers=192.168.3.1:9292<o:p></o:p></p>
<p class="MsoNormal">force_dhcp_release=True<o:p></o:p></p>
<p class="MsoNormal">multi_host=True<o:p></o:p></p>
<p class="MsoNormal">send_arp_for_ha=True<o:p></o:p></p>
<p class="MsoNormal">api_rate_limit=False<o:p></o:p></p>
<p class="MsoNormal">logging_context_format_string=%(asctime)s %(color)s%(levelname)s %(name)s [^[[01;36m%(request_id)s ^[[00;36m%(user_name)s %(project_name)s%(color)s] ^[[01;35m%(instance)s%(color)s%(message)s^[[00m<o:p></o:p></p>
<p class="MsoNormal">logging_default_format_string=%(asctime)s %(color)s%(levelname)s %(name)s [^[[00;36m-%(color)s] ^[[01;35m%(instance)s%(color)s%(message)s^[[00m<o:p></o:p></p>
<p class="MsoNormal">logging_debug_format_suffix=^[[00;33mfrom (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d^[[00m<o:p></o:p></p>
<p class="MsoNormal">logging_exception_prefix=%(color)s%(asctime)s TRACE %(name)s ^[[01;35m%(instance)s^[[00m<o:p></o:p></p>
<p class="MsoNormal">compute_driver=libvirt.LibvirtDriver<o:p></o:p></p>
<p class="MsoNormal">firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I can spin up VMs on this host (usually, when I run horizon on the controller, it is this host upon which the first VM is launched). I get expected IP address in the range 10.4.128.*<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Unlike VMs on the host, I cannot ping (from either the controller (less worrisome) or the compute node (very worrisome). I looked at the console log for the VM, it is not getting any network. The other major obvious difference is that there
 is no inteface gateway device when I do an ifconfig on the compute node.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It is this last point (the lack of a interface gateway) that seems most likely to me to be the issue. Is there something I can run after launching devstack on the controller, before I try to launch VMs, that will cause that gw to be created?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I did some tracebacks in the python code on the controller and it appears the gateway on the controller is being created by the quantum (???) service during its initialization (I grepped around for "gw-") to identify where I should be putting
 tracebacks. According to what I have read on the net, localrc should not be enabling q-svc on the controller (and this makes sense given I am pointing back at 192.168.3.1 for quantum, as well as other services).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Again, hoping I mostly have the localrc contents right, and that maybe I just need to add some commands to the end of stack,sh to finish it off. Been frustrating seeing the VMs get launched only to not be able to ping them (but damn, that's
 pretty cool they spin up, don't you think?) I have a lot to learn still (just 2 weeks into this) but kinda stuck on this issue.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">syd<o:p></o:p></p>
</div>
</body>
</html>