better to send gratuitous ARPs to support HA
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Wishlist
|
Tushar Patil |
Bug Description
To support high availability of nova-network service, there is a need to send gratuitous ARP or unsolicited ARP from nova-network for following IP addresses.
1) Gateway address of each vlan
2) Floating IPs
The reason to do this is obvious when master dies, the backup server will take over and because the mac address of the vlan/public interface of backup server is different from master any clients connected to the VM instances will be dropped out. The clients will still try to send the request to the master server since the ARP cache is not yet updated. To avoid this it is important to send gratuitous ARPs from the backup server which will cause routers and other hardware to update ARP cache.
Any service provider can choose OSS like heartbeat, keepalived or so on to detect failover and take action of starting nova-network service on the backup server in case of active-passive mode. It is also possible to send the gratuitous ARPs externally without modifying the nova-network source code but design wise I feel it is more appropriate to do this in nova-network service.
I am thinking of introducing one more flag for example send_arps which should be set to True to send gratuitous ARP in highly availability environment. If this flag is set to False, no gratuitous ARP will be sent.
This is a very small change in the nova-network source code so I thought of posting it as a bug rather than creating a blueprint for such a small change.
Related branches
- Thierry Carrez (community): Approve
- Rick Harris (community): Approve
- Mandell (community): Approve (community)
- Vish Ishaya (community): Approve
-
Diff: 34 lines (+10/-0)1 file modifiednova/network/linux_net.py (+10/-0)
- Thierry Carrez (community): Approve
-
Diff: 25 lines (+3/-2)2 files modifieddebian/control (+1/-1)
debian/nova_sudoers (+2/-1)
- OpenStack release team: Pending requested
-
Diff: 34 lines (+10/-0)1 file modifiednova/network/linux_net.py (+10/-0)
Changed in nova: | |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
Changed in nova: | |
status: | Confirmed → Triaged |
Changed in nova: | |
assignee: | nobody → Tushar Patil (tpatil) |
milestone: | none → 2011.3 |
status: | Triaged → In Progress |
Changed in nova: | |
status: | In Progress → Fix Committed |
Changed in nova: | |
status: | Fix Committed → Fix Released |
I'd also love to see this feature added.