Целевые узлы для пакета Heartbeat - три рабочих сервера с одним общим виртуальным IP-адресом. Непрерывная доступность сервисов обеспечивается с помощью пакета Heartbeat.
Примечание. В дальнейшем описании для главных узлов кластера используются названия kn0, kn1, kn2, для рабочих узлов - kn3, kn4, kn5. Установка и настройка пакета Heartbeat выполняется на рабочих узлах kn3, kn4 и kn5.
Для установки и настройки пакета Heartbeat:
Установите и настройте Heartbeat:
apt-get update && apt-get -y install heartbeat && systemctl enable heartbeat
Примечание. Все три сервера делят один IP-адрес - <main external cluster ip>. Этот виртуальный IP-адрес будет перемещаться между серверами, поэтому включите параметр net.ipv4.ip_nonlocal_bind, чтобы разрешить привязку системных служб к нелокальному IP-адресу.
Добавьте эту возможность в файл /etc/sysctl.conf для узлов kn3, kn4, kn5:
# echo ‘net.ipv4.ip_nonlocal_bind=1’
>> /etc/sysctl.conf
# sysctl -p
Создайте файл /etc/ha.d/authkeys. В этом файле Heartbeat хранит данные для взаимной аутентификации, файл должен быть одинаковым на всех рабочих узлах:
# echo -n securepass | md5sum
bb77d0d3b3f239fa5db73bdf27b8d29a
# Где securepass – пароль для Heartbeat
# Cкопируйте полученную хеш-сумму в буфер обмена
kn3
$ sudo vi /etc/ha.d/authkeys
auth 1
1 md5 bb77d0d3b3f239fa5db73bdf27b8d29a
kn4
$ sudo vi /etc/ha.d/authkeys
auth 1
1 md5 bb77d0d3b3f239fa5db73bdf27b8d29a
kn5
$ sudo vi /etc/ha.d/authkeys
auth 1
1 md5 bb77d0d3b3f239fa5db73bdf27b8d29a
Проверьте, что файл /etc/ha.d/authkeys доступен только пользователю root:
Kn3# sudo chmod 600 /etc/ha.d/authkeys
Kn4# sudo chmod 600 /etc/ha.d/authkeys
Kn5# sudo chmod 600 /etc/ha.d/authkeys
Создайте основные файлы конфигурации для Heartbeat на выбранных серверах (для каждого сервера файл будет незначительно отличаться):
Создайте файл /etc/ha.d/ha.cf на узлах kn3, kn4, kn5.
Примечание. Для получения параметров узлов для конфигурации запустите uname -n на всех трех серверах. Также используйте имя вашей сетевой карты вместо ens160.
Kn3# vi /etc/ha.d/ha.cf
# keepalive: how many seconds
between heartbeats
#
keepalive 2
#
# deadtime: seconds-to-declare-host-dead
#
deadtime 10
#
# What UDP port to use for
udp or ppp-udp communication?
#
udpport 694
bcast ens160
mcast ens160 225.0.0.1 694 1 0
ucast ens160 <main kn3 ip>
# What interfaces to heartbeat
over?
udp ens160
#
# Facility to use for syslog()/logger
(alternative to log/debugfile)
#
logfacility local0
#
# Tell what machines are in
the cluster
# node nodename
... -- must match uname -n
node kn3
node kn4
node kn5
kn4# vi /etc/ha.d/ha.cf
# keepalive: how many seconds
between heartbeats
#
keepalive 2
#
# deadtime: seconds-to-declare-host-dead
#
deadtime 10
#
# What UDP port to use for
udp or ppp-udp communication?
#
udpport 694
bcast ens160
mcast ens160 225.0.0.1 694 1 0
ucast ens160 <main kn4 ip>
# What interfaces to heartbeat
over?
udp ens160
#
# Facility to use for syslog()/logger
(alternative to log/debugfile)
#
logfacility local0
#
# Tell what machines are in
the cluster
# node nodename
... -- must match uname -n
node kn3
node kn4
node kn5
kn5# vi /etc/ha.d/ha.cf
# keepalive: how many seconds
between heartbeats
#
keepalive 2
#
# deadtime: seconds-to-declare-host-dead
#
deadtime 10
#
# What UDP port to use for
udp or ppp-udp communication?
#
udpport 694
bcast ens160
mcast ens160 225.0.0.1 694 1 0
ucast ens160 <main kn5 ip>
# What interfaces to heartbeat
over?
udp ens160
#
# Facility to use for syslog()/logger
(alternative to log/debugfile)
#
logfacility local0
#
# Tell what machines are in
the cluster
# node nodename
... -- must match uname -n
node kn3
node kn4
node kn5
Создайте файл /etc/ha.d/haresources. В нём указывается общий виртуальный IP-адрес и задаётся, какой узел является главным по умолчанию. Файл должен быть одинаковым на всех узлах:
Kn3# vi /etc/ha.d/haresources
Kn3 <main virtual cluster ip>
Kn4# vi /etc/ha.d/haresources
Kn3 <main virtual cluster ip>
Kn5# vi /etc/ha.d/haresources
Kn3 <main virtual cluster ip> ### Здесь и выше kn3 - это
hostname узла, выбранного "главным" по умолчанию для Heartbeat.
Запустите службы Heartbeat на всех узлах и проверьте, что на узле kn3 установлен заявленный виртуальный IP-адрес:
Kn3# systemctl restart heartbeat
Kn4# systemctl restart heartbeat
Kn5# systemctl restart heartbeat
kn1# ip a s
ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet <main kn3 ip>/24
valid_lft forever preferred_lft forever
inet <main cluster ip>/24
Проверьте доступ по main cluster ip с помощью команды:
nc -v <main cluster ip> 22
Пример результата выполнения команды:
Connection to x.x.x.x 22
port [tcp/*] succeeded!
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.7
После выполнения действий пакет Heartbeat будет установлен и настроен, далее перейдите к подготовке кластера системы Ceph.
См. также:
Подготовка среды для продукта «Форсайт. Мобильная платформа» | Подготовка кластера системы Ceph