Необходимо настроить высокодоступный сервис. В данной статье рассмотрены автоматическое переключение IP на доступную ноду и перевод DRBD ноды в состояние Primary.
Подготовительные шаги
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | pcs status Cluster name: COREMAIL Stack: corosync Current DC: coremail01 (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum Last updated: Thu Mar 21 16:04:43 2019 Last change: Thu Mar 21 16:04:04 2019 by hacluster via crmd on coremail01 2 nodes configured 4 resources configured Online: [ coremail01 coremail02 ] Full list of resources:  coremail    (ocf::heartbeat:IPaddr2):       Started coremail01  Resource Group: monitordrbd      mountfs    (ocf::heartbeat:Filesystem):    Stopped  Master/Slave Set: ms-drbd_arraydata [drbd_arraydata]      Slaves: [ coremail01 coremail02 ] Daemon Status:   corosync: active/enabled   pacemaker: active/enabled   pcsd: active/enabled | 
Т.е. у нас получаются две ноды в состоянии SLAVE Выполним принудительное переключение (Вот тут не совсем верно! Данная команда задает принудительно Primary ноду. Т.е. после перезагрузки мастером будет указанный сервер)
| 1 2 3 | pcs resource move ms-drbd_arraydata coremail01 --master | 
Повторно проверим состояние системы
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |  pcs status Cluster name: COREMAIL Stack: corosync Current DC: coremail01 (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum Last updated: Thu Mar 21 16:05:02 2019 Last change: Thu Mar 21 16:05:00 2019 by root via crm_resource on coremail01 2 nodes configured 4 resources configured Online: [ coremail01 coremail02 ] Full list of resources:  zs-coremail    (ocf::heartbeat:IPaddr2):       Started coremail01  Resource Group: monitordrbd      mountfs    (ocf::heartbeat:Filesystem):    Started coremail01  Master/Slave Set: ms-drbd_arraydata [drbd_arraydata]      Masters: [ coremail01 ]      Slaves: [ coremail02 ] Daemon Status:   corosync: active/enabled   pacemaker: active/enabled   pcsd: active/enabled | 
Проверяем состояние SELinux
При настройке возникла ошибка
| 1 2 3 4 5 6 7 | drbd(drbd_arraydata)[16773]: ERROR: maildata: Exit code 107 drbd(drbd_arraydata)[16773]: ERROR: maildata: Command output: lrmd[6058]:  notice: drbd_arraydata_monitor_15000:16552:stderr [ Error signing on to the CIB service: Transport endpoint is not connected ] drbd(drbd_arraydata)[16773]: ERROR: maildata: Called /usr/sbin/crm_master -Q -l reboot -v 10000 | 
Файл конфигурации SELinux сообщает следующее
| 1 2 3 4 5 | grep -v -E "#|^$" /etc/sysconfig/selinux SELINUX=disabled SELINUXTYPE=targeted | 
Т.е. отключен, но при загрузке системы вижу
| 1 2 3 4 5 6 7 8 9 10 11 12 | sestatus SELinux status:                 enabled SELinuxfs mount:                /sys/fs/selinux SELinux root directory:         /etc/selinux Loaded policy name:             targeted Current mode:                   permissive Mode from config file:          enforcing Policy MLS status:              enabled Policy deny_unknown status:     allowed Max kernel policy version:      31 | 
Возможно данная ситуация связана с тем, что я пересобираю ядро, с определенными параметрами. Отключить удалось только добавлением параметра ядра при загрузке в файле /boot/grub2/grub.cfg — selinux=0
| 1 2 3 4 5 | linux16 /vmlinuz-3.10.0-957.5.1.el7.x86_64 root=/dev/mapper/centos_node-root ro rd.lvm.lv=centos_node/root  zswap.enabled=1 zswap.max_pool_percent=30 elevator=noop transparent_hugepage=never LANG=ru_RU.UTF-8 selinux=0 | 
После чего ошибка Error signing on to the CIB service: Transport endpoint is not connected ушла.
Настройка ресурсов Pacemaker
Воспользуемся командой crm. По умолчанию данная команда отсутствует в CentOS. Как установить ее написано в статье Pacemaker
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | crm configure node 1: node1 \         attributes node 2: node2 \         attributes primitive clusterip IPaddr2 \         params cidr_netmask=24 ip=101.201.203.50 \         op monitor interval=60s \         op start interval=0s timeout=20s \         op stop interval=0s timeout=20s primitive drbd_arraydata ocf:linbit:drbd \         params drbd_resource=maildata \         op monitor interval=15 role=Master \         op monitor interval=30 role=Slave primitive mountfs Filesystem \         params device="/dev/drbd0" directory="/mnt" fstype=ext4 options="noatime,nodiratime" \         op monitor interval=10s ms ms-drbd_arraydata drbd_arraydata \         meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true colocation col-array_on_drbd inf: monitordrbd ms-drbd_arraydata:Master order o-drbd_before_mount inf: ms-drbd_arraydata:promote monitordrbd:start property cib-bootstrap-options: \         have-watchdog=false \         dc-version=1.1.19-8.el7_6.4-c3c624ea3d \         cluster-infrastructure=corosync \         cluster-name=DRBD \         stonith-enabled=false \         no-quorum-policy=ignore \         last-lrm-refresh=1551790931 \         stop-all-resources=no | 
Небольшие пояснения
primitive clusterip IPaddr2 — задание IP адреса кластера, который будет перемещаться на Primary
primitive drbd_arraydata ocf:linbit:drbd — поднятие массива maildata, описанного в конфигурационном файле DRBD
primitive mountfs Filesystem — автоматическое монтирование массива DRBD на Primary ноде
ms ms-drbd_arraydata drbd_arraydata — мониторинг DRBD
И так, в случае выключения или перезагрузки одной из нод, произойдет переключение состояния массива DRBD на Primary и автоматически подключиться диск в каталог /mnt



 Загрузка...
 Загрузка...