Pacemaker: Pacemaker를 중지해도 항상 리소스가 다른 노드로 전송되는 것은 아닙니다.

Pacemaker: Pacemaker를 중지해도 항상 리소스가 다른 노드로 전송되는 것은 아닙니다.

sles12에 2노드 클러스터를 만들었습니다. 다음은 구성입니다 -

    msnode1:~ # crm --version
    crm 3.0.0

    msnode1:~ #  corosync -v
    Corosync Cluster Engine, version '2.3.6'
    Copyright (c) 2006-2009 Red Hat, Inc.

msnode1:~ # crm config show
node 1: msnode1
node 2: msnode2
primitive mspersonal systemd:mspersonal \
        op monitor interval=30s
primitive virtip IPaddr \
        params ip=10.243.109.103 cidr_netmask=21 \
        op monitor interval=30s
location cli-prefer-virtip virtip role=Started inf: msnode1
colocation msconstraint inf: virtip mspersonal
order msorder Mandatory: virtip mspersonal
property cib-bootstrap-options: \
        have-watchdog=false \
        dc-version=1.1.16-4.8-77ea74d \
        cluster-infrastructure=corosync \
        cluster-name=mscluster \
        stonith-enabled=false \
        placement-strategy=balanced \
        help \
        list \
        last-lrm-refresh=1561341732
rsc_defaults rsc-options: \
        resource-stickiness=100 \
        migration-threshold=2
op_defaults op-options: \
        timeout=600 \
        record-pending=true

msnode1:~ # crm status
Stack: corosync
Current DC: msnode1 (version 1.1.16-4.8-77ea74d) - partition with quorum
Last updated: Tue Jun 25 17:43:44 2019
Last change: Tue Jun 25 17:38:21 2019 by hacluster via cibadmin on msnode1

2 nodes configured
2 resources configured

Online: [ msnode1 msnode2 ]

Full list of resources:

 virtip (ocf::heartbeat:IPaddr):        Started msnode1
 mspersonal     (systemd:mspersonal):   Started msnode1

노드 1에서 클러스터를 종료하거나 노드 1을 다시 시작하면 리소스가 msnode2에서 시작되지만 즉시 종료되고 상황이 변경됩니다.

msnode1:~ # systemctl stop pacemaker
msnode2:~ # crm status
Stack: corosync
Current DC: msnode2 (version 1.1.16-4.8-77ea74d) - partition WITHOUT quorum
Last updated: Tue Jun 25 17:44:26 2019
Last change: Tue Jun 25 17:38:20 2019 by hacluster via cibadmin on msnode1

2 nodes configured
2 resources configured

Online: [ msnode2 ]
OFFLINE: [ msnode1 ]

Full list of resources:

 virtip (ocf::heartbeat:IPaddr):        Stopped
 mspersonal     (systemd:mspersonal):   Stopped

msnode1에서 Pacemaker 서비스를 다시 시작하면 리소스가 msnode1에서 다시 시작됩니다.

msnode1:~ # systemctl start pacemaker
msnode1:~ # crm status
Stack: corosync
Current DC: msnode2 (version 1.1.16-4.8-77ea74d) - partition with quorum
Last updated: Tue Jun 25 17:46:09 2019
Last change: Tue Jun 25 17:38:20 2019 by hacluster via cibadmin on msnode1

2 nodes configured
2 resources configured

Online: [ msnode1 msnode2 ]

Full list of resources:

 virtip (ocf::heartbeat:IPaddr):        Started msnode1
 mspersonal     (systemd:mspersonal):   Started msnode1

하지만 동일한 연습을 다시 실행하면 리소스가 실제로 msnode2에서 시작됩니다.

msnode1:~ # systemctl stop pacemaker
msnode2:~ # crm status
Stack: corosync
Current DC: msnode2 (version 1.1.16-4.8-77ea74d) - partition WITHOUT quorum
Last updated: Tue Jun 25 17:47:00 2019
Last change: Tue Jun 25 17:38:20 2019 by hacluster via cibadmin on msnode1

2 nodes configured
2 resources configured

Online: [ msnode2 ]
OFFLINE: [ msnode1 ]

Full list of resources:

 virtip (ocf::heartbeat:IPaddr):        Started msnode2
 mspersonal     (systemd:mspersonal):   Started msnode2

그러나 msnode1에서 Pacemaker를 다시 시작하면 리소스가 msnode1로 다시 이동되는데, 이는 고정성이 100으로 설정되어 있기 때문에 예상하지 못한 현상입니다.

이 클러스터 구성에서 무엇이 누락되었는지 찾을 수 없습니다.

답변1

로그나 추가 정보 없이 첫 번째 시도에서 리소스가 완전히 중지된 이유를 알 수 없습니다. 두 번째 연습은 아래의 위치 제약을 고려하여 예상한 대로 수행되었습니다.

location cli-prefer-virtip virtip role=Started inf: msnode1

이 위치 제약 조건에는 고정성 점수인 200을 훨씬 초과하는 무한대 점수가 있습니다. 이 위치 제약 조건을 제거하고 테스트를 다시 시도한다면 원하는 방식으로 작동할 것 같지 않습니다.

관련 정보