ОК! Действительно новинка в пейсмейкере / коросинхронизации, вроде новинки на 1 день.
Программное обеспечение: Ubuntu 18.04 LTS и версии, связанные с этим дистрибутивом.
Пейсмейкер: 1.1.18
corosync: 2.4.3
Я случайно удалил узлы из всего моего тестового кластера (3 узла)
Когда я попытался восстановить все, используя графический интерфейс pcsd
, это не удалось, потому что узлы были «уничтожены». Круто.
Итак. У меня была копия последнего corosync.conf
с моего «основного» узла. Я скопировал на два других узла. Я исправил bindnetaddr
в соответствующих файлах конфигурации. Я запустил ПК, начало кластера
на моем «основном» узле.
Один из узлов не подошел. Я взглянул на состояние кардиостимулятора
на этом узле и получил следующее исключение:
Dec 18 06:33:56 region-ctrl-2 crmd[1049]: crit: Nodes 1084777441 and 2 share the same name 'region-ctrl-2': shutting down
Я попытался запустить crm_node -R --force 1084777441
на машине, где ] кардиостимулятор
не запускается, но, конечно, кардиостимулятор
не работает, поэтому я получаю сообщение об ошибке crmd: соединение отклонено (111)
. Итак, я выполнил ту же команду на одном из исправных узлов, который не показывает ошибок, но узел никогда не уходит, и кардиостимулятор
на пораженной машине продолжал показывать ту же ошибку.
Итак, я решил снести весь кластер и снова. Я удалил все пакеты с машины. Переустановил все свежее. Я скопировал и исправил corosync.conf
на машине. Я воссоздал кластер. Я получаю ту же чертову ошибку.
Итак, этот узел с именем 1084777441
не является машиной, которую я создал. Это кластер, созданный для меня. Ранее в тот же день я понял, что использую IP-адреса в corosync.conf
вместо имен. Я исправил / etc / hosts
машин, удалил IP-адреса из конфигурации corosync, и поэтому я случайно удалил весь свой кластер в первую очередь (я удалил узлы, которые были IP-адресами).
Ниже приведен мой corosync.conf:
totem {
version: 2
cluster_name: maas-cluster
token: 3000
token_retransmits_before_loss_const: 10
clear_node_high_bit: yes
crypto_cipher: none
crypto_hash: none
interface {
ringnumber: 0
bindnetaddr: 192.168.99.225
mcastport: 5405
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: no
to_syslog: yes
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: QUORUM
debug: off
}
}
quorum {
provider: corosync_votequorum
expected_votes: 3
two_node: 1
}
nodelist {
node {
ring0_addr: postgres-sb
nodeid: 3
}
node {
ring0_addr: region-ctrl-2
nodeid: 2
}
node {
ring0_addr: region-ctrl-1
nodeid: 1
}
}
Единственное, что отличает этот conf между узлами, - это bindnetaddr
.
Похоже, здесь есть проблема с курицей / яйцом, если только я не знаю какого-либо способа удалить узел из плоского файла db или sqlite dbb где-нибудь, или есть другой более надежный способ удалить узел из кластер.
ДОПОЛНИТЕЛЬНО
Я убедился, что / etc / hosts
и имя хоста каждой из машин совпадают. Я забыл упомянуть об этом.
127.0.0.1 localhost
127.0.1.1 postgres
192.168.99.224 postgres-sb
192.168.99.223 region-ctrl-1
192.168.99.225 region-ctrl-2
192.168.7.224 postgres-sb
192.168.7.223 region-ctrl-1
192.168.7.225 region-ctrl-2
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Я решил попробовать начать с нуля. Я apt удалил --purge
ed corosync *
, кардиостимулятор *
crmsh
и шт
. Я rm -rf
ed / etc / corosync
. Я сохранил копию corosync.conf
на каждой машине.
Я переустановил все вещи на каждой из машин. Я скопировал свой сохраненный corosync.conf
в / etc / corosync /
и перезапустил corosync
на всех машинах.
Я ЕЩЕ ЕЩЕ получить такую же точную ошибку. Это должна быть ошибка в одном из компонентов!
Похоже, что crm_get_peer
не может распознать, что хосту с именем region-ctrl-2
назначен nodeid 2 в corosync.conf
. Затем узлу 2 автоматически назначается идентификатор 1084777441. Это часть, которая для меня не имеет смысла. Имя хоста машины - region-ctrl-2
, заданное в / etc / hostname
и / etc / hosts
и подтвержденное с помощью uname -n
. corosync.conf
явно назначает идентификатор машине с именем region-ctrl-2
, но что-то явно не распознает назначение из corosync
и вместо этого назначает нерандомизированный ID со значением 1084777441 для этого хоста. Как, черт возьми, мне это исправить?
LOGS
info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
info: get_cluster_type: Detected an active 'corosync' cluster
info: qb_ipcs_us_publish: server name: pacemakerd
info: pcmk__ipc_is_authentic_process_active: Could not connect to lrmd IPC: Connection refused
info: pcmk__ipc_is_authentic_process_active: Could not connect to cib_ro IPC: Connection refused
info: pcmk__ipc_is_authentic_process_active: Could not connect to crmd IPC: Connection refused
info: pcmk__ipc_is_authentic_process_active: Could not connect to attrd IPC: Connection refused
info: pcmk__ipc_is_authentic_process_active: Could not connect to pengine IPC: Connection refused
info: pcmk__ipc_is_authentic_process_active: Could not connect to stonith-ng IPC: Connection refused
info: corosync_node_name: Unable to get node name for nodeid 1084777441
notice: get_node_name: Could not obtain a node name for corosync nodeid 1084777441
info: crm_get_peer: Created entry ea4ec23e-e676-4798-9b8b-00af39d3bb3d/0x5555f74984d0 for node (null)/1084777441 (1 total)
info: crm_get_peer: Node 1084777441 has uuid 1084777441
info: crm_update_peer_proc: cluster_connect_cpg: Node (null)[1084777441] - corosync-cpg is now online
notice: cluster_connect_quorum: Quorum acquired
info: crm_get_peer: Created entry 882c0feb-d546-44b7-955f-4c8a844a0db1/0x5555f7499fd0 for node postgres-sb/3 (2 total)
info: crm_get_peer: Node 3 is now known as postgres-sb
info: crm_get_peer: Node 3 has uuid 3
info: crm_get_peer: Created entry 4e6a6b1e-d687-4527-bffc-5d701ff60a66/0x5555f749a6f0 for node region-ctrl-2/2 (3 total)
info: crm_get_peer: Node 2 is now known as region-ctrl-2
info: crm_get_peer: Node 2 has uuid 2
info: crm_get_peer: Created entry 5532a3cc-2577-4764-b9ee-770d437ccec0/0x5555f749a0a0 for node region-ctrl-1/1 (4 total)
info: crm_get_peer: Node 1 is now known as region-ctrl-1
info: crm_get_peer: Node 1 has uuid 1
info: corosync_node_name: Unable to get node name for nodeid 1084777441
notice: get_node_name: Defaulting to uname -n for the local corosync node name
warning: crm_find_peer: Node 1084777441 and 2 share the same name: 'region-ctrl-2'
info: crm_get_peer: Node 1084777441 is now known as region-ctrl-2
info: pcmk_quorum_notification: Quorum retained | membership=32 members=3
notice: crm_update_peer_state_iter: Node region-ctrl-1 state is now member | nodeid=1 previous=unknown source=pcmk_quorum_notification
notice: crm_update_peer_state_iter: Node postgres-sb state is now member | nodeid=3 previous=unknown source=pcmk_quorum_notification
notice: crm_update_peer_state_iter: Node region-ctrl-2 state is now member | nodeid=1084777441 previous=unknown source=pcmk_quorum_notification
info: crm_reap_unseen_nodes: State of node region-ctrl-2[2] is still unknown
info: pcmk_cpg_membership: Node 1084777441 joined group pacemakerd (counter=0.0, pid=32765, unchecked for rivals)
info: pcmk_cpg_membership: Node 1 still member of group pacemakerd (peer=region-ctrl-1:900, counter=0.0, at least once)
info: crm_update_peer_proc: pcmk_cpg_membership: Node region-ctrl-1[1] - corosync-cpg is now online
info: pcmk_cpg_membership: Node 3 still member of group pacemakerd (peer=postgres-sb:976, counter=0.1, at least once)
info: crm_update_peer_proc: pcmk_cpg_membership: Node postgres-sb[3] - corosync-cpg is now online
info: pcmk_cpg_membership: Node 1084777441 still member of group pacemakerd (peer=region-ctrl-2:3016, counter=0.2, at least once)
pengine: info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
lrmd: info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
lrmd: info: qb_ipcs_us_publish: server name: lrmd
pengine: info: qb_ipcs_us_publish: server name: pengine
cib: info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
attrd: info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
attrd: info: get_cluster_type: Verifying cluster type: 'corosync'
attrd: info: get_cluster_type: Assuming an active 'corosync' cluster
info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
attrd: notice: crm_cluster_connect: Connecting to cluster infrastructure: corosync
cib: info: get_cluster_type: Verifying cluster type: 'corosync'
cib: info: get_cluster_type: Assuming an active 'corosync' cluster
info: get_cluster_type: Verifying cluster type: 'corosync'
info: get_cluster_type: Assuming an active 'corosync' cluster
notice: crm_cluster_connect: Connecting to cluster infrastructure: corosync
attrd: info: corosync_node_name: Unable to get node name for nodeid 1084777441
cib: info: validate_with_relaxng: Creating RNG parser context
crmd: info: crm_log_init: Changed active directory to /var/lib/pacemaker/cores
crmd: info: get_cluster_type: Verifying cluster type: 'corosync'
crmd: info: get_cluster_type: Assuming an active 'corosync' cluster
crmd: info: do_log: Input I_STARTUP received in state S_STARTING from crmd_init
attrd: notice: get_node_name: Could not obtain a node name for corosync nodeid 1084777441
attrd: info: crm_get_peer: Created entry af5c62c9-21c5-4428-9504-ea72a92de7eb/0x560870420e90 for node (null)/1084777441 (1 total)
attrd: info: crm_get_peer: Node 1084777441 has uuid 1084777441
attrd: info: crm_update_peer_proc: cluster_connect_cpg: Node (null)[1084777441] - corosync-cpg is now online
attrd: notice: crm_update_peer_state_iter: Node (null) state is now member | nodeid=1084777441 previous=unknown source=crm_update_peer_proc
attrd: info: init_cs_connection_once: Connection to 'corosync': established
info: corosync_node_name: Unable to get node name for nodeid 1084777441
notice: get_node_name: Could not obtain a node name for corosync nodeid 1084777441
info: crm_get_peer: Created entry 5bcb51ae-0015-4652-b036-b92cf4f1d990/0x55f583634700 for node (null)/1084777441 (1 total)
info: crm_get_peer: Node 1084777441 has uuid 1084777441
info: crm_update_peer_proc: cluster_connect_cpg: Node (null)[1084777441] - corosync-cpg is now online
notice: crm_update_peer_state_iter: Node (null) state is now member | nodeid=1084777441 previous=unknown source=crm_update_peer_proc
attrd: info: corosync_node_name: Unable to get node name for nodeid 1084777441
attrd: notice: get_node_name: Defaulting to uname -n for the local corosync node name
attrd: info: crm_get_peer: Node 1084777441 is now known as region-ctrl-2
info: corosync_node_name: Unable to get node name for nodeid 1084777441
notice: get_node_name: Defaulting to uname -n for the local corosync node name
info: init_cs_connection_once: Connection to 'corosync': established
info: corosync_node_name: Unable to get node name for nodeid 1084777441
notice: get_node_name: Defaulting to uname -n for the local corosync node name
info: crm_get_peer: Node 1084777441 is now known as region-ctrl-2
cib: notice: crm_cluster_connect: Connecting to cluster infrastructure: corosync
cib: info: corosync_node_name: Unable to get node name for nodeid 1084777441
cib: notice: get_node_name: Could not obtain a node name for corosync nodeid 1084777441
cib: info: crm_get_peer: Created entry a6ced2c1-9d51-445d-9411-2fb19deab861/0x55848365a150 for node (null)/1084777441 (1 total)
cib: info: crm_get_peer: Node 1084777441 has uuid 1084777441
cib: info: crm_update_peer_proc: cluster_connect_cpg: Node (null)[1084777441] - corosync-cpg is now online
cib: notice: crm_update_peer_state_iter: Node (null) state is now member | nodeid=1084777441 previous=unknown source=crm_update_peer_proc
cib: info: init_cs_connection_once: Connection to 'corosync': established
cib: info: corosync_node_name: Unable to get node name for nodeid 1084777441
cib: notice: get_node_name: Defaulting to uname -n for the local corosync node name
cib: info: crm_get_peer: Node 1084777441 is now known as region-ctrl-2
cib: info: qb_ipcs_us_publish: server name: cib_ro
cib: info: qb_ipcs_us_publish: server name: cib_rw
cib: info: qb_ipcs_us_publish: server name: cib_shm
cib: info: pcmk_cpg_membership: Node 1084777441 joined group cib (counter=0.0, pid=0, unchecked for rivals)
После работы с clusterlabs немного, я смог найти фиксацию для этого. Фиксация была фиксацией /etc/corosync/corosync.conf
путем добавления transport: udpu
в totem
директива, и к проверке все узлы правильно добавляются в nodelist
директива. При использовании узлов по имени только затем нужно удостовериться, что узлы правильно разрешимы, который обычно делается в /etc/hosts
. Однажды эти corosync.conf
фиксируется, перезапустите весь кластер. В моем случае следующей corosync.conf
была исправленная версия:
totem {
version: 2
cluster_name: maas-cluster
token: 3000
token_retransmits_before_loss_const: 10
clear_node_high_bit: yes
crypto_cipher: none
crypto_hash: none
transport: udpu
interface {
ringnumber: 0
bindnetaddr: 192.168.99.0
mcastport: 5405
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: no
to_syslog: yes
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: QUORUM
debug: off
}
}
quorum {
provider: corosync_votequorum
expected_votes: 3
two_node: 1
}
nodelist {
node {
ring0_addr: postgres-sb
nodeid: 3
}
node {
ring0_addr: region-ctrl-2
nodeid: 2
}
node {
ring0_addr: region-ctrl-1
nodeid: 1
}
}