Pacemaker: как сохранить ресурс VirtualIP хотя бы на одном узле

Я использую кардиостимулятор и коросинк для управления отработкой отказа с двумя узлами в активном/пассивном режиме. Я настроил виртуальный IP-ресурс следующим образом:

 # pcs resource create VirtualIP ocf:heartbeat:IPaddr2 \
        ip=192.9.50.54 cidr_netmask=32 op monitor interval=1s timeout=5s \
        start interval=0s timeout=30s

# pcs resource create PingIP ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=@IP --clone

# pcs constraint location VirtualIP rule score=-INFINITY pingd lt 1 or not_defined pingd

где @IP — IP-адрес для проверки связи.

Все работает нормально, VIP перемещается по узлу в соответствии с пингом. Однако, когда оба узла не могут пропинговать @IP, мой ресурс VirtualIP отключен. В этом случае я хотел бы оставить ресурс VirtualIP включенным на последнем узле, где он был включен.

Я думаю, что мне нужно изменить оценку моего ресурса VirtualIP в соответствии с результатом пинга, но я не нашел, как это сделать.

Спасибо за вашу помощь


person moonbossa    schedule 16.02.2015    source источник


Ответы (1)


Я нашел это решение, как я понял, я изменил оценку своего ресурса VirtualIP со следующим ограничением.

# pcs constraint location VirtualIP rule score=50 pingd gte 1 and defined pingd

Таким образом, когда узлу удается пропинговать @IP, его ресурс VirtualIP увеличивается на 50. Когда оба узла не могут пропинговать, ресурс не останавливается и остается на последнем узле, где он был.

Может быть, это будет полезно для кого-то.

person moonbossa    schedule 18.02.2015