Pacemaker & Corosync

Устанавливаем:
Ubuntu/Debian

apt-get install pacemaker

CentOS/Red hat/ Oracle

yum install pacemaker

OpenSuse

Zypper install pacemaker

Разрешаем запуск в Ubuntu/Debian
/etc/default/corosync
START=yes
Копируем на все узлы

Генерим ключи, в требует нажатия разных символов на клавиатуре(Ubuntu/Debian по SSH может зависнуть и ничего не сгенерить)
corosync-keygen
Получаем файл
/etc/corosync/authkey
Меняем права:

chown root:root /etc/corosync/authkey
chmod 400 /etc/corosync/authkey

и копируем на все сервера.

Меняем одну строку в файле, на свою подсеть:
/etc/corosync/corosync.conf

bindnetaddr: 192.168.1.0

копируем на все сервера.

Нужно проверить, если каталог /var/lib/heartbeat/crm не пуст, удалить старые настройки:

/etc/init.d/corosync stop
rm -rf /var/lib/heartbeat/crm/*
/etc/init.d/corosync start

OpenSuse:

/etc/init.d/openais stop
rm -rf /var/lib/heartbeat/crm/*
/etc/init.d/openais start

Посмотреть статус:

crm_mon --one-shot -V</code>

Появятся ошибки:

crm_mon[2171]: 2012/08/15_08:39:12 ERROR: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
crm_mon[2171]: 2012/08/15_08:39:12 ERROR: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
crm_mon[2171]: 2012/08/15_08:39:12 ERROR: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity

Основные настройки устанавливаем такие, чтобы исправить появившиеся ошибки:

# crm
crm(live)# configure
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# property stonith-enabled=false
crm(live)configure# property default-resource-stickiness=1000
crm(live)configure# commit
crm(live)configure# bye

И в качестве примера конфигурим отказоустойчивый IP

# crm
crm(live)# configure
crm(live)configure# primitive IP_Addr ocf:heartbeat:IPaddr2 params ip="192.168.153.100" iflabel="virt_ip" cidr_netmask="24" nic="eth0"
crm(live)configure# commit
crm(live)configure# bye

Проверка:

crm_verify -L

Рабочий пример1:

crm configure

cib new BASE_SETUP
property stonith-enabled=false
property no-quorum-policy="ignore"
rsc_defaults resource-stickiness=200
cib commit BASE_SETUP

cib new DRBD
primitive Drbd_R0 ocf:linbit:drbd params drbd_resource="r0" op monitor interval="60s" op start interval="0" timeout="240s" op stop interval="0" timeout="240s" op monitor role=Master interval=10 op monitor role=Slave interval=30
ms Drbd_MS Drbd_R0 meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
cib commit DRBD

cib new FS
primitive Drbd_FS ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/var/data" fstype="ext3" op start interval="0" timeout="260s" op stop interval="0" timeout="260s"
colocation Fs_on_Drbd inf: Drbd_FS Drbd_MS:Master
order Fs_after_Drbd inf: Drbd_MS:promote Drbd_FS:start
cib commit FS

cib new IP
primitive IP_Addr ocf:heartbeat:IPaddr2 params ip="192.168.153.100" iflabel="virt_ip" cidr_netmask="24" nic="eth0"
colocation IP_with_FS inf: IP_Addr  Drbd_FS
order IP_after_FS inf: Drbd_FS IP_Addr
cib commit IP

cib use live
cib delete BASE_SETUP
cib delete DRBD
cib delete FS
cib delete IP
exit

Рабочий пример 2

crm configure
property stonith-enabled=false
property no-quorum-policy="ignore"
rsc_defaults resource-stickiness=200

primitive drbd_setup ocf:linbit:drbd params drbd_resource="r0"  op monitor interval="60s" op start interval="0" timeout="240s" op stop interval="0" timeout="240s" op monitor role=Master interval=10 op monitor role=Slave interval=30
ms ms_drbd drbd_setup meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
primitive drbd_mount ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/var/data" fstype="ext3" op start interval="0" timeout="260s" op stop interval="0" timeout="260s"
colocation Fs_on_Drbd inf: Drbd_FS Drbd_MS:Master

primitive failover-addr ocf:heartbeat:IPaddr2 params ip="192.168.153.100" cidr_netmask="24" nic="eth0"
group grp_serv  drbd_mount  failover-addr
colocation grp_on_master inf: grp_serv ms_drbd:Master
order drbd_setup_before_grp : ms_drbd:promote grp_serv:start
crm resource start grp_serv

Удаление ресурса:

crm resource stop IP_Addr2
crm(live)configure# delete IP_Addr2
Запись опубликована в рубрике Кластеры. Добавьте в закладки постоянную ссылку.