[
https://issues.apache.org/jira/browse/CLOUDSTACK-6715?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sanjeev N updated CLOUDSTACK-6715:
----------------------------------
Assignee: Murali Reddy
> [SDN] Inconsistency in ovs-flow table after vm migration from one host to
> another
> ----------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-6715
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6715
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Management Server, Network Controller
> Affects Versions: 4.4.0
> Environment: Latest build from 4.4 with commit
> e6961fd21bb6d793302c234d0f409f66dc498072
> Reporter: Sanjeev N
> Assignee: Murali Reddy
> Priority: Critical
> Fix For: 4.4.0
>
> Attachments: management-server.rar, ovstunnel-host13.log,
> ovstunnel-host14.log
>
>
> [SDN] Inconsistency in ovs-flow table after vm migration from one host to
> another
> Steps to reproduce:
> ================
> 1.Bring up CS in advanced zone with two xen hosts in a cluster
> 2.Create physical network with GRE isolation
> 3.Create isolated network with OVS provider
> 4.Deploy few vms in the network and make sure that all the vms(including VR)
> are deployed on only one host.
> 5.Now migrate one vm to another host in the cluster and verify flow tables
> for this isolated network bridge on both the xen hosts
> Result:
> =======
> Inconsistency in flow tables on both the xen hosts
> Following it the flow table from the host before vm migration (All the vms
> and VR were only on this host before vm migration):
> [root@xen-host-14 ~]# ovs-ofctl dump-flows xapi4
> NXST_FLOW reply (xid=0x4):
> cookie=0x0, duration=1173.14s, table=0, n_packets=0, n_bytes=0,
> priority=1100,dl_dst=ff:ff:ff:ff:ff:ff actions=output:1,output:2
> cookie=0x0, duration=1173.15s, table=0, n_packets=0, n_bytes=0,
> priority=1200,ip,in_port=2,nw_dst=224.0.0.0/24 actions=NORMAL
> cookie=0x0, duration=1203.276s, table=0, n_packets=0, n_bytes=0,
> priority=1200,ip,in_port=1,nw_dst=224.0.0.0/24 actions=NORMAL
> cookie=0x0, duration=1226.258s, table=0, n_packets=901, n_bytes=85612,
> priority=0 actions=NORMAL
> cookie=0x0, duration=1173.129s, table=0, n_packets=0, n_bytes=0,
> priority=1100,ip,nw_dst=224.0.0.0/24 actions=output:1,output:2
> cookie=0x0, duration=1203.286s, table=0, n_packets=0, n_bytes=0,
> priority=1200,in_port=1,dl_dst=ff:ff:ff:ff:ff:ff actions=NORMAL
> cookie=0x0, duration=1173.167s, table=0, n_packets=7, n_bytes=1494,
> priority=1200,in_port=2,dl_dst=ff:ff:ff:ff:ff:ff actions=NORMAL
> Flow table after vm migration on the same host:
> [root@xen-host-14 ~]# ovs-ofctl dump-flows xapi4
> NXST_FLOW reply (xid=0x4):
> cookie=0x0, duration=992.789s, table=0, n_packets=0, n_bytes=0, priority=0
> actions=NORMAL
> [root@xen-host-14 ~]#
> Ports info on the bridge after vm migration:
> [root@xen-host-14 ~]# ovs-vsctl list-ports xapi4
> t986-2-1
> vif11.0
> vif12.0
> Flow table on the target host where vm was migrated to:
> [root@xen-host-13 ~]# ovs-ofctl dump-flows xapi4
> NXST_FLOW reply (xid=0x4):
> cookie=0x0, duration=1025.129s, table=0, n_packets=0, n_bytes=0,
> priority=1100,dl_dst=ff:ff:ff:ff:ff:ff actions=output:2
> cookie=0x0, duration=1025.139s, table=0, n_packets=0, n_bytes=0,
> priority=1200,ip,in_port=2,nw_dst=224.0.0.0/24 actions=NORMAL
> cookie=0x0, duration=1032.932s, table=0, n_packets=0, n_bytes=0,
> priority=1000,ip,in_port=1,nw_dst=224.0.0.0/24 actions=drop
> cookie=0x0, duration=1033.247s, table=0, n_packets=0, n_bytes=0, priority=0
> actions=NORMAL
> cookie=0x0, duration=1025.119s, table=0, n_packets=0, n_bytes=0,
> priority=1100,ip,nw_dst=224.0.0.0/24 actions=output:2
> cookie=0x0, duration=1032.942s, table=0, n_packets=0, n_bytes=0,
> priority=1000,in_port=1,dl_dst=ff:ff:ff:ff:ff:ff actions=drop
> cookie=0x0, duration=1025.148s, table=0, n_packets=1, n_bytes=42,
> priority=1200,in_port=2,dl_dst=ff:ff:ff:ff:ff:ff actions=NORMAL
> [root@xen-host-13 ~]# ovs-vsctl list-ports xapi4
> t986-1-2
> vif17.0
> Following is the log snippet from both the hosts during vm migration (tunnel
> creation during vm migration):
> 2014-05-20 11:31:21 DEBUG [root] #### VMOPS enter create_tunnel ####
> 2014-05-20 11:31:21 DEBUG [root] Creating tunnel from host 2 to host 1
> with GRE key 986
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> '--timeout=30', 'wait-until', 'bridge', 'xapi4', '--', 'get', 'bridge',
> 'xapi4', 'name']
> 2014-05-20 11:31:21 DEBUG [root] bridge xapi4 for creating tunnel -
> VERIFIED
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'add-port', 'xapi4', 't986-2-1', '--', 'set', 'interface', 't986-2-1',
> 'type=gre', 'options:key=986', 'options:remote_ip=10.147.40.13']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'port', 't986-2-1', 'interfaces']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'interface', '01be01e9-c4b1-4b90-9ac0-199f2c797719', 'options:key']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'interface', '01be01e9-c4b1-4b90-9ac0-199f2c797719', 'options:remote_ip']
> 2014-05-20 11:31:22 DEBUG [root] Tunnel interface
> validated:['/usr/bin/ovs-vsctl', 'get', 'interface',
> '01be01e9-c4b1-4b90-9ac0-199f2c797719', 'options:remote_ip']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'interface', '01be01e9-c4b1-4b90-9ac0-199f2c797719', 'ofport']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-list', 'bridge=xapi4', '--minimal']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-tun-network', '--minimal']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-vpc-distributed-vr-network',
> '--minimal']
> 2014-05-20 11:31:22 DEBUG [root] The command exited with the error code: 1
> (stderr output:Error: Key is-ovs-vpc-distributed-vr-network not found in map
> )
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1000,in_port=4,dl_dst=ff:ff:ff:ff:ff:ff,actions=drop']
> 2014-05-20 11:31:22 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1000,in_port=4,ip,nw_dst=224.0.0.0/24,actions=drop']
> 2014-05-20 11:31:22 DEBUG [root] Broadcast drop rules added
> 2014-05-20 11:31:22 DEBUG [root] Successfully created tunnel from host 2
> to host 1 with GRE key 986
> 2014-05-20 11:31:22 DEBUG [root] #### VMOPS exit create_tunnel ####
> 2014-05-20 11:31:29 DEBUG [root] Executing:['cat',
> '/etc/xensource/network.conf']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'iface-to-br', 'vif19.0']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-list', 'bridge=xapi4', '--minimal']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-tun-network', '--minimal']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-vpc-distributed-vr-network',
> '--minimal']
> 2014-05-20 11:31:29 DEBUG [root] The command exited with the error code: 1
> (stderr output:Error: Key is-ovs-vpc-distributed-vr-network not found in map
> )
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'br-to-vlan', 'xapi4']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'list-ports', 'xapi4']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'Interface', 't986-2-1', 'ofport']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'Interface', 'vif11.0', 'ofport']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'Interface', 'vif12.0', 'ofport']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'Interface', 'vif19.0', 'ofport']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'del-flows', 'xapi4', ',in_port=3']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1100,dl_dst=ff:ff:ff:ff:ff:ff,actions=output:1,output:2']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1100,ip,nw_dst=224.0.0.0/24,actions=output:1,output:2']
> ovstunnel log from the host where vm has been migrated to:
> 2014-05-20 11:31:21 DEBUG [root] #### VMOPS enter setup_ovs_bridge ####
> 2014-05-20 11:31:21 DEBUG [root] About to manually create the bridge:xapi4
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', '--',
> '--may-exist', 'add-br', 'xapi4', '--', 'set', 'bridge', 'xapi4',
> 'other_config:gre_key=OVSTunnel986']
> 2014-05-20 11:31:21 DEBUG [root] Bridge has been manually created:
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'set',
> 'Bridge', 'xapi4',
> 'external_ids:xs-network-uuid=98636962-280c-bb8f-1e57-d79bcc295c1f']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'set',
> 'Bridge', 'xapi4', 'stp_enable=true']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'bridge', 'xapi4', 'other_config:gre_key']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-set', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'other-config:is-ovs-tun-network=True']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-list', 'bridge=xapi4', '--minimal']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=ovs-host-setup']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-set', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'other-config:ovs-host-setup=1,2']
> 2014-05-20 11:31:21 DEBUG [root] Setup_ovs_bridge completed with
> result:SUCCESS:xapi4
> 2014-05-20 11:31:21 DEBUG [root] #### VMOPS exit setup_ovs_bridge ####
> 2014-05-20 11:31:21 DEBUG [root] #### VMOPS enter create_tunnel ####
> 2014-05-20 11:31:21 DEBUG [root] Creating tunnel from host 1 to host 2
> with GRE key 986
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> '--timeout=30', 'wait-until', 'bridge', 'xapi4', '--', 'get', 'bridge',
> 'xapi4', 'name']
> 2014-05-20 11:31:21 DEBUG [root] bridge xapi4 for creating tunnel -
> VERIFIED
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'add-port', 'xapi4', 't986-1-2', '--', 'set', 'interface', 't986-1-2',
> 'type=gre', 'options:key=986', 'options:remote_ip=10.147.40.14']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'port', 't986-1-2', 'interfaces']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'interface', 'e5d8a954-a482-42c2-88a6-7294ad62c7f8', 'options:key']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'interface', 'e5d8a954-a482-42c2-88a6-7294ad62c7f8', 'options:remote_ip']
> 2014-05-20 11:31:21 DEBUG [root] Tunnel interface
> validated:['/usr/bin/ovs-vsctl', 'get', 'interface',
> 'e5d8a954-a482-42c2-88a6-7294ad62c7f8', 'options:remote_ip']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'interface', 'e5d8a954-a482-42c2-88a6-7294ad62c7f8', 'ofport']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-list', 'bridge=xapi4', '--minimal']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-tun-network', '--minimal']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-vpc-distributed-vr-network',
> '--minimal']
> 2014-05-20 11:31:21 DEBUG [root] The command exited with the error code: 1
> (stderr output:Error: Key is-ovs-vpc-distributed-vr-network not found in map
> )
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1000,in_port=1,dl_dst=ff:ff:ff:ff:ff:ff,actions=drop']
> 2014-05-20 11:31:21 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1000,in_port=1,ip,nw_dst=224.0.0.0/24,actions=drop']
> 2014-05-20 11:31:21 DEBUG [root] Broadcast drop rules added
> 2014-05-20 11:31:21 DEBUG [root] Successfully created tunnel from host 1
> to host 2 with GRE key 986
> 2014-05-20 11:31:21 DEBUG [root] #### VMOPS exit create_tunnel ####
> 2014-05-20 11:31:29 DEBUG [root] Executing:['cat',
> '/etc/xensource/network.conf']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'iface-to-br', 'vif17.0']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-list', 'bridge=xapi4', '--minimal']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-tun-network', '--minimal']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/opt/xensource/bin/xe',
> 'network-param-get', 'uuid=98636962-280c-bb8f-1e57-d79bcc295c1f',
> 'param-name=other-config', 'param-key=is-ovs-vpc-distributed-vr-network',
> '--minimal']
> 2014-05-20 11:31:29 DEBUG [root] The command exited with the error code: 1
> (stderr output:Error: Key is-ovs-vpc-distributed-vr-network not found in map
> )
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'br-to-vlan', 'xapi4']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl',
> 'list-ports', 'xapi4']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'Interface', 't986-1-2', 'ofport']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-vsctl', 'get',
> 'Interface', 'vif17.0', 'ofport']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1200,in_port=2,dl_dst=ff:ff:ff:ff:ff:ff,actions=NORMAL']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1200,in_port=2,ip,nw_dst=224.0.0.0/24,actions=NORMAL']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1100,dl_dst=ff:ff:ff:ff:ff:ff,actions=output:2']
> 2014-05-20 11:31:29 DEBUG [root] Executing:['/usr/bin/ovs-ofctl',
> 'add-flow', 'xapi4',
> 'hard_timeout=0,idle_timeout=0,priority=1100,ip,nw_dst=224.0.0.0/24,actions=output:2']
> ~
--
This message was sent by Atlassian JIRA
(v6.2#6252)