Active/Passive Cluster в Linux. Часть 2: установка и настройка Pacemaker и Corosync

Dec 28, 2015 15:58 · 514 words · 3 minute read pacemaker corosync cluster

В предыдущей части мы успешно настроили 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 мы добавим ресурсы кластера, организуем их в группы и определим порядок запуска.

tweet Share