This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
пакет_pacemaker [2019/09/12 09:35] val [Управление ресурсами] |
пакет_pacemaker [2022/05/24 14:26] val [Управление конфигурацией] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Пакет Pacemaker ====== | ====== Пакет Pacemaker ====== | ||
- | * [[http://clusterlabs.org/doc/en-US/Pacemaker/1.1-plugin/html/Clusters_from_Scratch/|Pacemaker 1.1 Clusters from Scratch]] | ||
* [[https://habrahabr.ru/post/107837/|Linux HA на основе Pacemaker]] | * [[https://habrahabr.ru/post/107837/|Linux HA на основе Pacemaker]] | ||
* [[http://wiki.525.su/doku.php?id=pacemaker_theory|Pacemaker, теория]] | * [[http://wiki.525.su/doku.php?id=pacemaker_theory|Pacemaker, теория]] | ||
Line 25: | Line 24: | ||
node1# crm configure show | node1# crm configure show | ||
- | node1# crm | + | node1# crm configure |
</code><code> | </code><code> | ||
- | configure property stonith-enabled=false | + | property dc-deadtime=120 # Для уменьшения вероятности split-brain |
- | configure property no-quorum-policy=ignore | + | |
- | configure property default-resource-stickiness=100 | + | |
- | configure show | + | property no-quorum-policy=ignore |
- | exit | + | primitive st-null stonith:null params hostlist="node1 node2" |
+ | clone fencing st-null | ||
+ | |||
+ | op timeout=240s # Для долго стартующих ресурсов (перезапуск VM в KVM на резервном узле после падения основного) | ||
+ | |||
+ | show | ||
+ | commit | ||
+ | quit | ||
</code><code> | </code><code> | ||
nodeN# find /var/lib/pacemaker/cib/ | nodeN# find /var/lib/pacemaker/cib/ | ||
+ | |||
+ | nodeN# cat /var/lib/pacemaker/cib/cib.xml | ||
</code> | </code> | ||
Line 43: | Line 49: | ||
* [[https://linux.die.net/man/8/crm_resource|crm_resource(8) - Linux man page]] | * [[https://linux.die.net/man/8/crm_resource|crm_resource(8) - Linux man page]] | ||
+ | |||
+ | ==== Создание ресурсов ==== | ||
<code> | <code> | ||
node1# crm ra classes | node1# crm ra classes | ||
Line 53: | Line 61: | ||
node1# less /usr/lib/ocf/resource.d/heartbeat/IPaddr2 | node1# less /usr/lib/ocf/resource.d/heartbeat/IPaddr2 | ||
+ | |||
+ | node1# OCF_ROOT=/usr/lib/ocf OCF_RESKEY_ip=192.168.X.10 OCF_RESKEY_nic=eth0 OCF_RESKEY_cidr_netmask=24 /usr/lib/ocf/resource.d/heartbeat/IPaddr2 start | ||
+ | |||
+ | node1# OCF_ROOT=/usr/lib/ocf OCF_RESKEY_ip=192.168.X.10 OCF_RESKEY_nic=eth0 OCF_RESKEY_cidr_netmask=24 /usr/lib/ocf/resource.d/heartbeat/IPaddr2 stop | ||
node1# crm configure | node1# crm configure | ||
Line 58: | Line 70: | ||
crm(live)configure# primitive pr_ip ocf:heartbeat:IPaddr2 params ip=192.168.X.10 cidr_netmask=32 nic=eth0 | crm(live)configure# primitive pr_ip ocf:heartbeat:IPaddr2 params ip=192.168.X.10 cidr_netmask=32 nic=eth0 | ||
crm(live)configure# group gr_ftp_ip pr_ftp pr_ip | crm(live)configure# group gr_ftp_ip pr_ftp pr_ip | ||
+ | |||
+ | crm(live)configure# edit gr_ftp_ip | ||
+ | |||
+ | crm(live)configure# show | ||
+ | |||
crm(live)configure# commit | crm(live)configure# commit | ||
crm(live)configure# exit | crm(live)configure# exit | ||
node1# crm status | node1# crm status | ||
+ | </code> | ||
+ | ==== Перемещение ресурсов ==== | ||
+ | |||
+ | <code> | ||
node1# crm resource | node1# crm resource | ||
crm(live)resource# locate gr_ftp_ip | crm(live)resource# locate gr_ftp_ip | ||
Line 71: | Line 92: | ||
node1# crm configure show | node1# crm configure show | ||
- | node1# crm resource move gr_ftp_ip node2.corpX.un | + | |
- | или | + | node1# crm resource move gr_ftp_ip node2 |
- | node1# crm resource move pr_ftp node2.corpX.un | + | |
или | или | ||
- | node1# crm configure delete cli-prefer-pr_ftp | + | node1# crm resource move pr_ftp node2 |
node1# crm configure show | node1# crm configure show | ||
- | node1#crm resource unmigrate gr_ftp_ip | + | |
+ | node1# crm configure delete cli-prefer-gr_ftp_ip | ||
или | или | ||
- | node1#crm resource unmigrate pr_ftp | + | node1# crm configure delete cli-prefer-pr_ftp |
+ | или | ||
+ | node1# crm resource unmigrate gr_ftp_ip | ||
+ | или | ||
+ | node1# crm resource unmigrate pr_ftp | ||
+ | </code> | ||
+ | |||
+ | ==== Удаление ресурсов ==== | ||
+ | |||
+ | <code> | ||
+ | node1# crm configure show | ||
node1# crm resource stop gr_ftp_ip | node1# crm resource stop gr_ftp_ip | ||
- | node1# crm resource start gr_ftp_ip | ||
node1# crm configure delete gr_ftp_ip pr_ftp pr_ip | node1# crm configure delete gr_ftp_ip pr_ftp pr_ip | ||
Line 93: | Line 124: | ||
# crm resource cleanup pr_fs_r0 | # crm resource cleanup pr_fs_r0 | ||
- | # tail -f /var/log/pacemaker.log | + | # stonith_admin -c -H node2.corpX.un |
+ | |||
+ | pacemaker# crm_resource -C | ||
+ | |||
+ | # tail -f /var/log/pacemaker/pacemaker.log | ||
</code> | </code> | ||
Line 103: | Line 138: | ||
</code> | </code> | ||
+ | ===== Запуск после монтирования файловых систем ===== | ||
+ | |||
+ | * [[https://unix.stackexchange.com/questions/246935/set-systemd-service-to-execute-after-fstab-mount|Set systemd service to execute after fstab mount]] | ||
+ | * Проблема воспроизводилась при сбойных сценариях с ресурсами, использующими [[Сервис OCFS2]] | ||
+ | |||
+ | <code> | ||
+ | # systemctl list-units --type=mount | ||
+ | </code><code> | ||
+ | ... | ||
+ | disk3.mount loaded active mounted /disk3 | ||
+ | ... | ||
+ | </code><code> | ||
+ | # systemctl edit pacemaker.service | ||
+ | </code><code> | ||
+ | [Unit] | ||
+ | After=disk3.mount | ||
+ | #After=disk2.mount disk3.mount | ||
+ | </code> | ||
+ | |||
+ | ====== Дополнительные материалы ====== | ||
+ | |||
+ | ==== ssh fencing ==== | ||
+ | <code> | ||
+ | primitive st-ssh stonith:external/ssh params hostlist="node1 node2" | ||
+ | clone fencing st-ssh | ||
+ | </code> | ||
+ | |||
+ | ==== Debian 9 ==== | ||
+ | <code> | ||
+ | # pacemaker 1.X () | ||
+ | property stonith-enabled=false | ||
+ | property default-resource-stickiness=100 | ||
+ | </code> |