我在 CentOS 7 上的 corosync 堆栈上运行两个 Pacemaker 集群,所有软件包均与发行版发布/更新包保持同步。
两个集群使用以下命令均不显示集群名称pcs status
:如下所示:
群集名称: 最后更新时间:2014 年 11 月 3 日星期一 09:55:58 最后更改:2014 年 10 月 31 日星期五 11:09:22 通过 cibadmin 在 beaker 上 堆栈:corosync 当前 DC:踏板车 (2) - 具有法定人数的分区 版本:1.1.10-32.el7_0.1-368c726 配置了 5 个节点 21 配置资源
在部分中有一个cluster_name:
条目,但我在起搏器中找不到与集群名称相关的任何内容totem
/etc/corosync/corosync.conf
加拿大国际投资局。
集群是用pcs cluster setup --name clustername node1 node2 node3 node4 node5
(clustername
是集群的预期名称)创建的。
它/etc/corosync/corosync.conf
是全世界可读的,以及它上面的目录。
答案1
pcs-0.9.115-32.el7
该函数的源代码getClusterName
实现如下:
def getClusterName():
if is_rhel6():
try:
dom = parse(settings.cluster_conf_file)
except (IOError,xml.parsers.expat.ExpatError):
return ""
return dom.documentElement.getAttribute("name")
else:
try:
f = open(settings.corosync_conf_file,'r')
except IOError as e:
return ""
p = re.compile('cluster_name: *(.*)')
for line in f:
m = p.match(line)
if m:
return m.group(1)
return ""
此函数检查从(属性名称)rhel6
中提取集群名称,或者在其他情况下从中提取。/etc/cluster/cluster.conf
/etc/corosync/corosync.conf
cluster_name
正则表达式要求文件中的和 名称 ( 'cluster_name: *(.*)'
)之间至少有一个空格corosync.conf
,也许这就是问题所在。
def is_rhel6():
try:
issue = open('/etc/system-release').read()
except IOError as e:
return False
if re.search(r'(Red Hat Enterprise Linux Server|CentOS|Scientific Linux) release 6\.', issue):
return True
else:
return False
检查是否存在/etc/corosync/corosync.conf
具有适当权限的文件。我认为这个错误可能与您有关:https://bugzilla.redhat.com/show_bug.cgi?id=1094812和https://bugzilla.redhat.com/show_bug.cgi?id=1029129
我希望这会有所帮助。