Active/Passive Cluster в Linux. Часть 2: установка и настройка Pacemaker и Corosync
Dec 28, 2015 15:58 · 514 words · 3 minute read
В предыдущей части мы успешно настроили DRBD-ресурсы на двух нодах будущего кластера, теперь давайте разберемся с установкой и настройкой Pacemaker
и Corosync
.
Для начала установим необходимые пакеты:
aptitude install pacemaker
На обоих серверах разрешаем автозапуск corosync
в конфигурационном файле /etc/default/corosync
, ставим параметр:
START=yes
Создаем ключи для corosync
командой:
corosync-keygen
Меняем права сгенерированного файла ключей:
chown root:root /etc/corosync/authkey
chmod 400 /etc/corosync/authkey
и копируем этот файл на все узлы кластера (в нашем случае их всего два):
scp /etc/corosync/authkey root@db2:/etc/corosync/authkey
Приводим конфигурационный файл /etc/corosync/corosync.conf
на обоих серверах к следующему виду:
# Please read the openais.conf.5 manual page
totem {
version: 2
# How long before declaring a token lost (ms)
token: 3000
# How many token retransmits before forming a new configuration
token_retransmits_before_loss_const: 10
# How long to wait for join messages in the membership protocol (ms)
join: 60
# How long to wait for consensus to be achieved before starting a new round of membership configuration (ms)
consensus: 3600
# Turn off the virtual synchrony filter
vsftype: none
# Number of messages that may be sent by one processor on receipt of the token
max_messages: 20
# Limit generated nodeids to 31-bits (positive signed integers)
clear_node_high_bit: yes
# Disable encryption
secauth: off
# How many threads to use for encryption/decryption
threads: 0
# Optionally assign a fixed node id (integer)
# nodeid: 1234
# This specifies the mode of redundant ring, which may be none, active, or passive.
rrp_mode: active
transport: udpu
interface {
member {
memberaddr: 172.16.0.1
}
member {
memberaddr: 172.16.0.2
}
ringnumber: 0
bindnetaddr: 172.16.0.0
mcastport: 5405
ttl: 1
}
interface {
member {
memberaddr: 192.168.25.8
}
member {
memberaddr: 192.168.25.9
}
ringnumber: 1
bindnetaddr: 192.168.25.0
mcastport: 5407
ttl: 1
}
}
amf {
mode: disabled
}
service {
# Load the Pacemaker Cluster Resource Manager
ver: 0
name: pacemaker
}
aisexec {
user: root
group: root
}
logging {
syslog_priority: warning
fileline: off
to_stderr: no
to_logfile: yes
logfile: /var/log/corosync/corosync.log
logfile_priority: notice
to_syslog: no
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
tags: enter|leave|trace1|trace2|trace3|trace4|trace6
}
}
И запускаем corosync командой:
/etc/init.d/corosync start
Просмотреть статус нашего кластера можно командой crm_mon -1
или crm status
, результат выполнения команды будет примерно таким:
============
Last updated: Thu Mar 27 17:07:47 2014
Last change: Thu Mar 27 17:07:21 2014 via crmd on db1
Stack: openais
Current DC: db1 - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
0 Resources configured.
============
Online: [ db1 db2 ]
Выставляем базовые настройки для кластера (учитываем, что у нас кластер состоит из двух нод):
crm configure property stonith-enabled="false"
crm configure property symmetric-cluster="false"
crm configure rsc_defaults resource-stickiness="110"
crm configure rsc_defaults migration-threshold=3
crm configure property no-quorum-policy=ignore
Перед настройкой ресурсов кластера на обоих серверах убираем из автозагрузки скрипты, которые в дальнейшем будут контролироватся corosync
’ом:
update-rc.d -f drbd remove
update-rc.d -f mysql remove
update-rc.d -f nfs-common remove
update-rc.d -f nfs-kernel-server remove
update-rc.d -f sphinxsearch remove
update-rc.d -f gearman-job-server remove
На этом установка и настройка Pacemaker
и Corosync
закончена, в заключительной части пошаговой настройки Active/Passive Cluster в Linux мы добавим ресурсы кластера, организуем их в группы и определим порядок запуска.