[2.3] MAAS does not handle vips and real ips well

Bug #1744454 reported by Nobuto Murata
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
MAAS
Fix Released
Wishlist
Unassigned

Bug Description

When configuring MAAS with HA, vip will be used for HAProxy (active-active regiond) or regiond (active-backup), because MAAS does not have any native HA mechanism for regiond.

In that scenario, one MAAS host may have multiple IP addresses as real IP address + vip. Since vip is managed by an external component of MAAS, such as pacemaker, MAAS does not knows how multiple IP addresses are used and does not distribute required IP addresses to MAAS nodes well.

Let's say, 3 hosts as configured as follows:

maas-1 (regiond + rackd): 192.168.0.11
maas-2 (regiond + rackd): 192.168.0.12
maas-3 (regiond + rackd): 192.168.0.13

and
maas-1 has an additional vip for Postgres: 192.168.0.28
maas-2 has an additional vip for regiond or HAProxy in front of regiond: 192.168.0.29

Then, at this point:
maas-1: 192.168.0.11 (real) + 192.168.0.28 (vip)
maas-2: 192.168.0.12 (real) + 192.168.0.29 (vip)
maas-3: 192.168.0.13 (real)

When deploying a MAAS node, the node will have the following IPs from MAAS:

[curtin-install-cfg.yaml]
apt:
  proxy: http://192.168.0.29:8000/

^^ this is from "maas_url: http://192.168.0.29/MAAS" in /etc/maas/regiond.conf which was manually put vip by hand. So this is OK.

network:
  config:
  - address:
    - 192.168.0.28
    - 192.168.0.12
    - 192.168.0.13
    search:
    - maas
    type: nameserver

^^^ looks like MAAS distributes all regiond IP addresses as DNS servers, but if a fail over of Postgres happens in this case, DNS in maas-1 won't be used by MAAS nodes even after maas-1 comes back, because 192.168.0.28 is already moved to somewhere else.

My expectation is that MAAS distributes 3 real IPs as 192.168.0.11, .12, .13 or just one vip as 192.168.0.29, not 192.168.0.28.

[/var/lib/cloud/instance/vendor-data.txt]
#cloud-config
ntp:
  pools: []
  servers: [192.168.0.28, 192.168.0.29]

^^^ MAAS distributes two racked IP addresses as NTP servers. In this case, the main PXE(DHCP) network has active-active rackd as maas-1 and maas-2. However, vips are used and those vips can be migrated to maas-3 which is not responsible for the network.

My expectation is that MAAS uses 192.168.0.11 and .12 because those are the real IP of two rackd.

Overall, some mechanisms to tell MAAS about real IPs and vips structure would be nice to have.

Tags: cpe-onsite ha
Revision history for this message
Nobuto Murata (nobuto) wrote :

FWIW, we configure the vip as /32. The could be used to determine which one is a real IP.

8: broam: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 3c:fd:fe:b6:5f:a1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.11/24 brd 172.20.2.255 scope global broam
       valid_lft forever preferred_lft forever
    inet 192.168.0.28/32 brd 172.20.2.255 scope global broam
       valid_lft forever preferred_lft forever
    inet6 fe80::3efd:feff:feb6:5fa1/64 scope link
       valid_lft forever preferred_lft forever

description: updated
tags: added: cpe-onsite
tags: added: ha
Changed in maas:
status: New → Triaged
importance: Undecided → Wishlist
milestone: none → 2.4.x
Revision history for this message
Andres Rodriguez (andreserl) wrote :

Hi Nobuto,

MAAS 2.5 adds the ability for:

 1. MAAS to automatically discover and track the IP's of other region controllers in the cluster.
 2. The ability for the user to hardcode multiple IP's in rackd.conf

This effectively removes the dependency for having a VIP between region/rack. As such, marking this as fix committed.

Changed in maas:
milestone: 2.4.x → 2.5.0beta1
status: Triaged → Fix Committed
Changed in maas:
status: Fix Committed → Fix Released
Alberto Donato (ack)
Changed in maas:
milestone: 2.5.0beta1 → none
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.