无法映射名称UUID |起搏器| linux集群

时间:2018-10-15 08:50:00

标签: centos centos7 postgresql-9.3 high-availability pacemaker

我在Centos 7.2上有一个基于Pacemaker(v1.1.18-11)和corosync(v2.4.3-2)设置的Linux群集 这是两个节点设置,其中节点= DBHA (主)和 DBFAILOVER (从)

我有一个资源 Postgresql9 ,该资源使用的资源代理:pgsql稍有变化

我正在使用标准文档来设置Postgres复制:PgSQL_Replicated_Cluster

在完成所有主控步骤后,它仍然没有成为主控。在 /var/log/cluster/corosync.log

中显示了以下错误

Could not map name=dbha to a UUID

调试了一段时间后,我发现以下命令返回上述错误: /usr/sbin/crm_attribute -l reboot -N "dbha" -n "Postgresql9-status" -v "STOP"

节点名称的计算依据:

NODENAME=$(ocf_local_nodename | tr '[A-Z]' '[a-z]')

其中ocf_local_nodename()来自ocf-shellfuncs:

ocf_local_nodename() {
    # use crm_node -n for pacemaker > 1.1.8
    which pacemakerd > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        local version=$(pacemakerd -$ | grep "Pacemaker .*" | awk '{ print $2 }')
        version=$(echo $version | awk -F- '{ print $1 }')
        ocf_version_cmp "$version" "1.1.8"
        if [ $? -eq 2 ]; then
            which crm_node > /dev/null 2>&1
            if [ $? -eq 0 ]; then
                crm_node -n
                return
            fi
        fi
    fi

    # otherwise use uname -n
    uname -n

}

我尝试在DBHA节点上同时运行命令crm_node -nuname -n都返回以下内容: DBHA

也在cibadmin中:

<nodes> <node id="2" uname="DBHA">...

当我手动运行crm_attribute命令设置属性时,它再次返回相同的错误。

以下是CIB:CIB

请帮助

预先感谢

注意:我们在不同的OS(CENTOS(6.5,6.7,7.2,7.5)Redhat(7.5)上有多种设置。我们以前从未遇到过此问题。而且,节点名称中的大写字母(或小写字母)也从未引起过以前有任何问题。

1 个答案:

答案 0 :(得分:1)

事实证明,起搏器更改了在crm_attribute中获取节点名称的逻辑,并且在比较节点名称时留下了错误。

在较新版本的起搏器中已修复(7618c29)。更新到最新补丁已为我修复。