Deploying Highly Available instances using VIP

Preamble

A failover cluster is a group of independent computers that work together to increase the availability of applications and services. The clustered servers (called nodes) are connected . If one of the cluster nodes fails, another node begins to provide service (a process known as failover). Users experience a minimum of disruptions in service.

Allowed Address Pairs

Using Neutron’s allowed-address-pairs feature to allow multiple IP addresses per interface for Bluvalt instance. Allowed Address Pairs is a Neutron Extension that extends the port attribute to enable you to specify arbitrary ip_address(cidr) pairs that are allowed to pass through a port.

Issue

Alternate or secondary interface IP addresses do not function properly on Openstack instances. Virtual IP addresses do not function properly on Openstack instances. Pacemaker or Keepalived, VRRP (which floats an IP address between two instances to enable fast data plane failover) and MS SQL Availability Group Virtual IP addresses do not function properly on Openstack instances.

Solution

Basic allowed-address-pairs operations:

Create a port and allow one address pair Bluvalt supports rich abstractions to handle virtual networking needs in a cloud. As a user the most visible entities are the Network, Subnets, Routers,etc. But if we consider ingress and egress points for data traffic, the most critical entity is the Port. Bluvalt Neutron Ports are usually created automatically as part of other user operations. However the CLI allows users to create Ports independently as well. Ports in Bluva lt networking are realized using interfaces (mostly virtual) on the underlying hypervisor (KVM). IP addresses used for virtual machines, routers etc are actually stored with the Port entities. Given that Ports represent entry and exit points for data traffic and also the associated configurations such as interface and IP address, they play an important role in Bluvalt networking.

Create the Port

neutron port-create `<Net-id>`

Adding allowed-address-pairs to VM port

neutron port-update `<VM-port-id>` --allowed_address_pairs list=true type=dict ip_address=12.0.0.5

View port details

neutron port-show 5e83b2ba-280a-49cc-a33b-108db79c6ba6

From above image, This IP 12.0.0.5 is attached as allowed_address_pairs and it will be utilized as VIP for the H.A clustering.

The same steps has to be applied to the second Node.

Assigning floating IP to the VIP

1. If this VIP is configured on only single instance please follow below steps

  • Allocating FIP through Horizon and getting its ID by running.
neutron floatingip-list
  • Getting the instance port ID.
nova interface-list     <instance-ID>|grep <instance Actual IP>.
  • Associate FIP to VIP.
neutron floatingip-associate --fixed-ip-address <VIP>  FLOATINGIP_ID  PORT_ID
Jed1-FLOATING Network ID: 80e37cda-1762-4d98-8e55-df3e33710295
Ruh2 Floating network ID: c975f064-d2b8-413c-9493-981f68bf887a

2. If the VIP is configured on multiple instances please open a support ticket with these information and we will configure it from our end.

  • Project name.
  • VIP.
  • Instances ID.
  • instances ports ID.
  • The floating IP.