Назад | Перейти на главную страницу

кардиостимулятор не запускается из-за дублирования узла, но не может удалить повторяющийся узел, поскольку кардиостимулятор не запускается

ХОРОШО! Действительно новичок в кардиостимуляторе / corosync, как будто 1 день нового.

Программное обеспечение: Ubuntu 18.04 LTS и версии, связанные с этим дистрибутивом.

кардиостимулятор: 1.1.18

corosync: 2.4.3

Я случайно удалил узлы из всего тестового кластера (3 узла)

Когда я попытался восстановить все, используя pcsd GUI, который не удался, потому что узлы были «уничтожены». Прохладно.

Так. У меня была копия последнего corosync.conf с моего "основного" узла. Я скопировал на два других узла. Я исправил bindnetaddr в соответствующих конф. Я побежал pcs cluster start на моем "основном" узле.

Один из узлов не подошел. Я посмотрел на статус pacemaker на этом узле, и я получаю следующее исключение:

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 на машине, где pacemaker не запускается, но конечно, pacemaker не работает, поэтому я получаю crmd: connection refused (111) ошибка. Итак, я выполнил ту же команду на одном из исправных узлов, который не показывает ошибок, но узел никогда не уходит и pacemaker на пораженной машине продолжала показывать ту же ошибку.

Итак, я решил снести весь кластер и снова. Я удалил все пакеты с машины. Переустановил все свежее. Я скопировал и исправил 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
    }
}

Единственное отличие этой конфигурации между узлами - это 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 removed --purgeред corosync*, pacemaker* crmsh, и pcs. я rm -rfред /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 и вместо этого назначил этому хосту нерандомизированный идентификатор со значением 1084777441. Как, черт возьми, мне это исправить?

ЖУРНАЛЫ

    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
    }
}