Instances in one of the compute nodes can't get fixed ip address
I deployed a two node OpenStack env with DevStack. One node is controller + network + compute node(node1), and the other is only compute node(node2). The instances created on node1 work well and can get fixed ip correctly, while the instances created on node2 can't. The image I used is cirros-0.3.3-x86_64. The network type is GRE tunnel. Below is the part of the console log:
cirros-ds 'local' up at 0.71
found datasource (configdrive, local)
Starting network...
udhcpc (v1.20.1) started
Sending discover...
Sending discover...
Sending discover...
Usage: /sbin/cirros-dhcpc <up|down>
No lease, failing
WARN: /etc/rc3.d/S40-network failed
On node1:
# ovs-vsctl show
d2b65058-214e-41ff-ad09-9ef2ff297201
Bridge br-tun
fail_mode: secure
Port "gre-0ac4f028"
Interface "gre-0ac4f028"
type: gre
options: {df_default="true", in_key=flow, local_ip="192.168.240.39", out_key=flow, remote_ip="192.168.240.40"}
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "qr-26aa69a9-42"
tag: 1
Interface "qr-26aa69a9-42"
type: internal
Port "tap2e833a5a-e5"
tag: 1
Interface "tap2e833a5a-e5"
type: internal
Bridge br-ex
Port "qg-985d8bbf-53"
Interface "qg-985d8bbf-53"
type: internal
Port br-ex
Interface br-ex
type: internal
Port "eno2"
Interface "eno2"
ovs_version: "2.3.1"
neutron.conf on node1: http://pastebin.com/p1gPTT18
ml2_conf.ini on node1: http://pastebin.com/sJKEPsDV
On node2, there is no tap device listed, but I can find it wit 'ip a':
# ovs-vsctl show
bfe15e20-872f-4785-901e-56e8ce14d826
Bridge br-int
fail_mode: secure
Port "qvo3ec478f8-a7"
tag: 1
Interface "qvo3ec478f8-a7"
Port br-int
Interface br-int
type: internal
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Bridge br-tun
fail_mode: secure
Port br-tun
Interface br-tun
type: internal
Port "gre-0ac4f027"
Interface "gre-0ac4f027"
type: gre
options: {df_default="true", in_key=flow, local_ip="192.168.240.40", out_key=flow, remote_ip="192.168.240.39"}
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
ovs_version: "2.3.1"
# ip a
........
11: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 8e:a4:83:22:2d:43 brd ff:ff:ff:ff:ff:ff
12: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether a2:ae:0c:fa:b0:4f brd ff:ff:ff:ff:ff:ff
13: qbr3ec478f8-a7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether ee:62:7e:e5:b4:86 brd ff:ff:ff:ff:ff:ff
inet6 fe80::ec62:7eff:fee5:b486/64 scope link
valid_lft forever preferred_lft forever
14: qvo3ec478f8-a7: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether da:48:83:d7:e5:b8 brd ff:ff:ff:ff:ff:ff
inet6 fe80::d848:83ff:fed7:e5b8/64 scope link
valid_lft forever preferred_lft forever
15: qvb3ec478f8-a7: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master qbr3ec478f8-a7 state UP qlen 1000
link/ether ee:62:7e:e5:b4:86 brd ff:ff:ff:ff:ff:ff
inet6 fe80::ec62:7eff:fee5:b486/64 scope link
valid_lft forever preferred_lft forever
16: tap3ec478f8-a7: <BROADCAST,MULTICAST,UP ...
If the instance is not connected to the integration bridge, it's no wonder DHCP doesn't work. Does neutron agent-list show the openvswitch agent on node 2? No error or even warning in the compute log on node 2? Or the openvswitch log?