← Back to team overview

sws team mailing list archive

[Bug 966529] Re: floating ip does not move with live migration with multi_host

 

** Changed in: nova
     Assignee: Sina Web Service Dev (sws) => Jian Wen (wenjianhn)

-- 
You received this bug notification because you are a member of Sina Web
Service Dev, which is a bug assignee.
https://bugs.launchpad.net/bugs/966529

Title:
  floating ip does not move with live migration with multi_host

Status in OpenStack Compute (Nova):
  Triaged

Bug description:
  I have a 2 compute-node setup running multi_host.  If I assign a
  floating IP address to a VM and then migrate that VM to another
  compute host, the iptables NAT for that floating IP and the assignment
  of the IP to the physical network interface remain on the original
  host.  I would expect these to move with the live migration.

  The networking entries from my nova.conf:

  # Networking
  --network_manager=nova.network.manager.FlatDHCPManager
  --force_dhcp_release
  --fixed_range=10.55.100.0/25
  --flat_network_dhcp_start=10.55.100.2
  --flat_interface=eth2.100
  --flat_network_bridge=br100
  --libvirt_use_virtio_for_bridges
  --dhcpbridge_flagfile=/etc/nova/nova.conf
  --dhcpbridge=/usr/bin/nova-dhcpbridge
  --allow_same_net_traffic
  --public_interface=eth1
  --multi_host

  If I have a VM starting on node2 (fixed ip 10.55.100.2), I see this interface assignment for the floating IP (10.54.100.225):
  eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
      link/ether 00:30:48:f3:49:5d brd ff:ff:ff:ff:ff:ff
      inet 10.54.0.2/16 scope global eth1
      inet 10.54.100.225/32 scope global eth1

  and iptables NAT entries (seen from iptables-save):
  -A nova-network-OUTPUT -d 10.54.100.225/32 -j DNAT --to-destination 10.55.100.2
  -A nova-network-PREROUTING -d 10.54.100.225/32 -j DNAT --to-destination 10.55.100.2
  -A nova-network-float-snat -s 10.55.100.2/32 -j SNAT --to-source 10.54.100.225

  All those entries look good/correct to me.  Then I do a live-migration
  from node2 to node1.  After that, I verify that the VM has moved
  successfully (it has) and I can reach it through the fixed network (I
  can).  However, when I look at the floating network, all the entries
  from above are still present on node2!  Here's node2 output from "ip
  a" again:

  eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
      link/ether 00:30:48:f3:49:5d brd ff:ff:ff:ff:ff:ff
      inet 10.54.0.2/16 scope global eth1
      inet 10.54.100.225/32 scope global eth1

  And then from node1:
  eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
      link/ether 00:30:48:f3:49:5f brd ff:ff:ff:ff:ff:ff
      inet 10.54.0.1/16 scope global eth1

  I definitely would have expected that IP address to change from eth1
  on node2 to eth1 on node1, since I'm running multi_host.  Consider
  that I may have done the live migration because I'm about to take
  node2 down for maintenance.  Additionally, no NAT entries for that
  floating ip were made on node1.  They remain on node2 as well.  All
  the fixed ip entries were moved as expected.

  Running on Ubuntu 12.04.  Everything installed via apt-get.  Latest packages as of 3/27.
  node1:~# lsb_release -a
  No LSB modules are available.
  Distributor ID:	Ubuntu
  Description:	Ubuntu precise (development branch)
  Release:	12.04
  Codename:	precise

  node1:~# dpkg -l nova-compute
  ii  nova-compute                         2012.1~rc1-0ubuntu2                  OpenStack Compute - compute node
  node1:~# dpkg -l nova-network
  ii  nova-network                         2012.1~rc1-0ubuntu2                  OpenStack Compute - Network manager

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/966529/+subscriptions