[ClusterLabs] Concept of a Shared ipaddress/resource for generic applicatons

Andrei Borzenkov arvidjaar at gmail.com
Sat Nov 30 10:58:14 EST 2019

29.11.2019 17:46, Jan Pokorný пишет:
> On 27/11/19 20:13 +0000, Matt_Murdock at amat.com wrote:
>> I finally understand that there is a Apache Resource for Pacemaker
>> that assigns a single virtual ipaddress that "floats" between two
>> nodes as in webservers.
>> https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_administration/ch-service-haaa
>> Can generic applications use this same resource type or is there an
>> API to use to create a floating ip or  a generic resource to use?
> Be assured generic applications can use the same "floating IP
> address", effectively IPAddr2 resource (particular instances
> thereof) to their own benefit.
> The only crux that can be seen here stems from loose started/stopped
> kind of inter-resource (putting resource-node relations aside)
> integration facilitated by pacemaker, imposing these constraints
> for a generic/convenient use case:
>    1. the resource relying on the particular floating IP instance
>       needs to start at later moment than this IP instance
>       (it could miss listening on the newly/at later point
>       appearing IP otherwise)
>    2. the resource relying on the particular floating IP instance,
>       in order to retain enough configuration flexibility, must
>       _not_ be restricted regarding where to listen (bind the
>       server side socket) at, for several reasons:
>       - different names of the interfaces across the nodes
>         to appoint the "externally provided service" network
>       - fragile, possibly downright cluster-management hidden
>         interdependencies whereby two parts of the overall
>         configuration must exactly agree on the address to bind at,
>         for given point in time
>       apparently, this approach is suboptimal for constraining
>       the allowed data paths (think, information security)
> Btw. As a slight paradox, rgmanager used for HA resource clustering
> in RHEL in the past allowed for natural resource "composability"
> (combinability, stackability) with a straightforward propagation of
> configuration values in the hierarchical composition of the resources
> -- it would then be enough if a floating IP dependent resource
> explicitly referred to IP to be borrowed from the cluster-tracked
> configuration of its hierarchically preceding "virtual IP" resource
> instance, avoiding thus hindrance stated in item 2. (item 1. remains
> rather universal).  (Similar thing can, of course, be emulated with
> explicit pacemaker configuration introspection in the agent itself,
> however it feels rather dirty [resource agents would preferably avoid
> back-channel introspection of their own runners as much as possible,
> it'd break the rule of loose one-way coupling] in comparison to said
> built-in mechanism.) [*]
>> In other HA system, Oracle Solaris Cluster, HPUX Service Guard, IBM
>> PowerHA, they provide a "SharedAddress" resource type for
>> applications to use.
> I suppose our ocf:heartbeat:IPAddr2 resource agent is a direct
> equivalent, but don't have the knowledge of these other products.

At least in Oracle Solaris Cluster Shared Address is used in "scalable 
resource group" and effectively implements load-balance across multiple 
nodes, where each node answers requests on single virtual address. RH 
mentioned earlier actually describes typical failover cluster (with 
single IP address floating between two nodes), so I find reference to 
ShareAddress rather confusing here.

>> I am getting confused by the Clone feature, the virtualized feature,
>> and now the Apache resource as to how they all differ.
> "Clone" feature for IPAddr2 is actually sort of an overloading that
> agent with an alternative functionality -- trivial low-level load
> balancing.  You can ignore that if you don't need any such.

I would say IPaddr2 in clone mode does something similar to SharedAddress.

> Regarding "virtualized", virtual and floating are being used
> interchangably to refer to said "IP address" resource agent
> instances.
> Of course, you then have various other contexts of "virtualized",
> you can have virtual machines (VMs) as resources managed by pacemaker,
> your cluster can consist of a set of VMs rather than set of bare
> metal machines, "remote" instances of pacemaker can be detached
> in VMs, and so forth.
>> If this isn't right group, let me know, and be kind, im just trying
>> to get something working and make recommendations to my developers.
> This venue is a spot-on, welcome :-)
> [*] I've touched this topic slightly in the past:
>      https://github.com/ClusterLabs/resource-agents/issues/1304#issuecomment-473525495
>      https://github.com/ClusterLabs/OCF-spec/issues/22
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
> ClusterLabs home: https://www.clusterlabs.org/

More information about the Users mailing list