LINUX.ORG.RU
решено ФорумAdmin

pacemaker, floating src IP

 , ,


0

1

Floating IP переезжает. Надо, чтобы за ним с ноды на ноду ездил ещё src IP для default route и дёргался после переезда IP, разумеется. Мало того что SRC не ездит, при падении основной ноды оно просто удаляет в двух местах default route вообще, после этого ресурс висит с ошибкой, что default route нету (разумеется). Может что делаю не так?

Если использовать Route вместо IPsrcaddr, ошибок нет, но оно не делает ничего.

Поднимал pacemaker так:


pcs host auth node1 node2
pcs cluster setup my_cluster node1 node2 --force
pcs cluster enable node1 node2
pcs cluster start node1 node2
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
pcs resource create virtip ocf:heartbeat:IPaddr2 ip=192.168.80.23 cidr_netmask=24 op monitor interval=30s
pcs resource create virtsrc ocf:heartbeat:IPsrcaddr ipaddress=192.168.80.23 cidr_netmask=24 op monitor interval=30
pcs constraint colocation add virtip with virtsrc
pcs constraint order virtip then virtsrc



В статусе всё хорошо, на первой ноде и ip и сорс применяются. Кладу сеть на первой ноде, поднимаем и получаем:

# pcs status
Cluster name: my_cluster
Stack: corosync
Current DC: node1 (version 2.0.1-9e909a5bdd) - partition with quorum
Last updated: Tue Mar 15 13:32:56 2022
Last change: Tue Mar 15 13:17:07 2022 by root via cibadmin on node1

2 nodes configured
2 resources configured

Online: [ node1 node2 ]

Full list of resources:

 virtip (ocf::heartbeat:IPaddr2):       Started node1
 virtsrc        (ocf::heartbeat:IPsrcaddr):     FAILED node1 (blocked)

Failed Resource Actions:
* virtsrc_start_0 on node2 'not installed' (5): call=10, status=complete, exitreason='We are not serving [192.168.80.23], hence can not make it a preferred source address',
    last-rc-change='Tue Mar 15 13:16:47 2022', queued=0ms, exec=21ms
* virtsrc_stop_0 on node1 'unknown error' (1): call=15, status=complete, exitreason='no default route exists',
    last-rc-change='Tue Mar 15 13:31:26 2022', queued=0ms, exec=24ms
* virtip_monitor_30000 on node1 'unknown error' (1): call=7, status=complete, exitreason='[findif] failed',
    last-rc-change='Tue Mar 15 13:30:36 2022', queued=0ms, exec=0ms

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled


Ну и удаляется default route на обоих нодах.

Как побороть? Что я не так делаю?

★★★★★

Последнее исправление: yu-boot (всего исправлений: 1)

У тебя на pacemaker уже много чего завязано или только эта штука с IP? Я просто подобную задачу(плавающий IP с кастомными правилами в маршрутной таблице) решаю через keepalived, вот и интересуюсь...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Задача сделать это пейсмейкером, плюс чтобы выполнялась пара команд при переключении ноды. С командами пока не лезу, раз настолько простые вещи не получаются.

Сделал вместо colocation и order группу как редхат советует. Ура - первый раз оно смогло без проблем переехать на вторую ноду как нужно при обрыве сети. Обратно уже нет - опять эта шиза началась с удалением маршрута :(((

yu-boot ★★★★★
() автор топика

Вроде победил. Скорее всего какой-то дебиан-специфический загон, на редхатоидах люди на это не жалются.


NETWORK=`$IP2UTIL route list dev $INTERFACE scope link $PROTO match $ipaddress|grep -m 1 -o '^[^ ]*'`


Начал дебажить сам скрипт ресурса IPsrcaddr. Дошёл до того, что переменная $NETWORK оказывалась почему-то пустой и от этого сыпалась дальше вся логика. Убрал из этой команды команды $PROTO, нужный параметр теперь грепается и всё поехало.

yu-boot ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.