Comment 2 for bug 1934764

Revision history for this message
Alex Kavanagh (ajkavanagh) wrote :

Peter, thanks for picking this up. So referring to your two questions:

> the hacluster units associated with the now-upgraded principle units are resumed

So with series-upgrade, the post-series-upgrade hook with hacluster (and the principle) automatically resumes the unit. When 2 units have been upgraded, one of them automatically claims the VIP.

> the hacluster unit associated with the remaining (non-upgraded) unit is paused

Nope, because hacluster automatically takes the cluster offline when any of the hacluster units runs a pre-series-upgrade hook. So at that point, no unit is claiming the VIP, it just 'stays' where it is.

i.e. when the first unit it paused, the entire cluster is disabled and the VIP stays where it is.

So the order if operations (with hacluster) is:

a) Pause any unit + hacluster - if it had the VIP, it's handed off to one of the other units.
b) Pause another unit + hacluster - if it got the VIP, it is passed to the remaining unit.
c) pre-series-upgrade on a paused unit - hacluster is disabled for the application on ALL units. No VIP transfers will take place until two new upgraded units are available. Hope the 3rd unit stays up.

Note the remaining unit doesn't need to be the 'leader'. hacluster ensures that an unpaused unit gets the VIP.

The key information here is that the pre-series-upgrade hook on hacluster DISABLES hacluster for all units (regardless of whether they are paused or not). Therefore, for the duration of the series upgrade, the VIP can't move, and it requires two units to be upgraded before the VIP can move again.

Also, there is no way to series upgrade a single unit and leave 2 units providing the service, as there's no (charm) method of moving the VIP between remaining units.

Hope that helps.