Re: [ClusterLabs] Beginner lost with promotable "group" design

2024-01-31 Thread Jehan-Guillaume de Rorthais via Users
On Wed, 31 Jan 2024 15:41:28 +0100
Adam Cecile  wrote:
[...]

> Thanks a lot for your suggestion, it seems I have something that work 
> correctly now, final configuration is:

I would recommend configuring in an offline CIB then pushing it to production
as a whole. Eg.:

  # get current CIB
  pcs cluster cib cluster1.xml

  # edit offline CIB
  pcs -f cluster1.xml resource create Internal-IPv4 ocf:heartbeat:IPaddr2 \
ip=10.0.0.254 nic=eth0 cidr_netmask=24 op monitor interval=30

  [...]
  [...]

  pcs -f cluster1.xml stonith create vmfence fence_vmware_rest \
pcmk_host_map="gw-1:gw-1;gw-2:gw-2;gw-3:gw-3" \
ip=10.1.2.3 ssl=1 username=corosync@vsphere.local \
password=p4ssw0rd ssl_insecure=1

  # push offline CIB to production
  pcs cluster cib-push scope=configuration cluster1.xml

> I have a quick one regarding fencing. I disconnected eth0 from gw-3 and 
> the VM has been restarted automatically, so I guess it's the fencing 
> agent that kicked in. However, I left the VM in such state (so it's seen 
> offline by other nodes) and I thought it would end up being powered off 
> for good. However, it seems fencing agent is keeping it powered on. Is 
> that expected ?

The default action of this fencing agent is "reboot". Check the VM uptime to
confirm it has been rebooted. If you want it to shutdown the VM, add
"action=off"

Regards,
___
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/


Re: [ClusterLabs] Beginner lost with promotable "group" design

2024-01-31 Thread Adam Cecile

On 1/17/24 16:33, Ken Gaillot wrote:

On Wed, 2024-01-17 at 14:23 +0100, Adam Cécile wrote:

Hello,


I'm trying to achieve the following setup with 3 hosts:

* One master gets a shared IP, then remove default gw, add another
gw,
start a service

* Two slaves should have none of them but add a different default gw

I managed quite easily to get the master workflow running with
ordering
constraints but I don't understand how I should move forward with
the
slave configuration.

I think I must create a promotable resource first then assign my
other
resources with started/stopped  setting depending on the promote
status
of the node. Is that correct ? How to create a promotable
"placeholder"
where I can later attach my existing resources ?

A promotable resource would be appropriate if the service should run on
all nodes, but one node runs with a special setting. That doesn't sound
like what you have.

If you just need the service to run on one node, the shared IP,
service, and both gateways can be regular resources. You just need
colocation constraints between them:

- colocate service and external default route with shared IP
- clone the internal default route and anti-colocate it with shared IP

If you want the service to be able to run even if the IP can't, make
its colocation score finite (or colocate the IP and external route with
the service).

Ordering is separate. You can order the shared IP, service, and
external route however needed. Alternatively, you can put the three of
them in a group (which does both colocation and ordering, in sequence),
and anti-colocate the cloned internal route with the group.


Sorry for the stupid question but I really don't understand what type
of
elements I should create...


Thanks in advance,

Regards, Adam.


PS: Bonus question should I use "pcs" or "crm" ? It seems both
command
seem to be equivalent and documentations use sometime one or another


They are equivalent -- it's a matter of personal preference (and often
what choices your distro give you).


Hello,

Thanks a lot for your suggestion, it seems I have something that work 
correctly now, final configuration is:



pcs property set stonith-enabled=false

pcs resource create Internal-IPv4 ocf:heartbeat:IPaddr2 ip=10.0.0.254 
nic=eth0 cidr_netmask=24 op monitor interval=30
pcs resource create Public-IPv4 ocf:heartbeat:IPaddr2 ip=1.2.3.4 
nic=eth1 cidr_netmask=28 op monitor interval=30
pcs resource create Public-IPv4-Gateway ocf:heartbeat:Route 
destination=0.0.0.0/0 device=eth1 gateway=1.2.3.14 op monitor interval=30


pcs constraint colocation add Internal-IPv4 with Public-IPv4 score=+INFINITY
pcs constraint colocation add Public-IPv4 with Public-IPv4-Gateway 
score=+INFINITY


pcs constraint order Internal-IPv4 then Public-IPv4
pcs constraint order Public-IPv4 then Public-IPv4-Gateway

pcs resource create Internal-IPv4-Gateway ocf:heartbeat:Route 
destination=0.0.0.0/0 device=eth0 gateway=10.0.0.254 op monitor 
interval=30 --force

pcs resource clone Internal-IPv4-Gateway

pcs constraint colocation add Internal-IPv4-Gateway-clone with 
Internal-IPv4 score=-INFINITY


pcs stonith create vmfence fence_vmware_rest 
pcmk_host_map="gw-1:gw-1;gw-2:gw-2;gw-3:gw-3" ip=10.1.2.3 ssl=1 
username=corosync@vsphere.local password=p4ssw0rd ssl_insecure=1


pcs property set stonith-enabled=true


Any comment regarding this configuration ?


I have a quick one regarding fencing. I disconnected eth0 from gw-3 and 
the VM has been restarted automatically, so I guess it's the fencing 
agent that kicked in. However, I left the VM in such state (so it's seen 
offline by other nodes) and I thought it would end up being powered off 
for good. However, it seems fencing agent is keeping it powered on. Is 
that expected ?



Best regards, Adam.
___
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/


Re: [ClusterLabs] Beginner lost with promotable "group" design

2024-01-17 Thread Ken Gaillot
On Wed, 2024-01-17 at 14:23 +0100, Adam Cécile wrote:
> Hello,
> 
> 
> I'm trying to achieve the following setup with 3 hosts:
> 
> * One master gets a shared IP, then remove default gw, add another
> gw, 
> start a service
> 
> * Two slaves should have none of them but add a different default gw
> 
> I managed quite easily to get the master workflow running with
> ordering 
> constraints but I don't understand how I should move forward with
> the 
> slave configuration.
> 
> I think I must create a promotable resource first then assign my
> other 
> resources with started/stopped  setting depending on the promote
> status 
> of the node. Is that correct ? How to create a promotable
> "placeholder" 
> where I can later attach my existing resources ?

A promotable resource would be appropriate if the service should run on
all nodes, but one node runs with a special setting. That doesn't sound
like what you have.

If you just need the service to run on one node, the shared IP,
service, and both gateways can be regular resources. You just need
colocation constraints between them:

- colocate service and external default route with shared IP
- clone the internal default route and anti-colocate it with shared IP

If you want the service to be able to run even if the IP can't, make
its colocation score finite (or colocate the IP and external route with
the service).

Ordering is separate. You can order the shared IP, service, and
external route however needed. Alternatively, you can put the three of
them in a group (which does both colocation and ordering, in sequence),
and anti-colocate the cloned internal route with the group.

> 
> Sorry for the stupid question but I really don't understand what type
> of 
> elements I should create...
> 
> 
> Thanks in advance,
> 
> Regards, Adam.
> 
> 
> PS: Bonus question should I use "pcs" or "crm" ? It seems both
> command 
> seem to be equivalent and documentations use sometime one or another
> 

They are equivalent -- it's a matter of personal preference (and often
what choices your distro give you).
-- 
Ken Gaillot 

___
Manage your subscription:
https://lists.clusterlabs.org/mailman/listinfo/users

ClusterLabs home: https://www.clusterlabs.org/