CentOS 7のcorosyncスタックで2つのペースメーカークラスターを実行しており、すべてのパッケージがディストリビューションのリリース/更新パッケージで最新になっています。
コマンドpcs status
を使用すると、両方のクラスターにクラスター名が表示されません。次のようになります。
クラスター名: 最終更新日:2014年11月3日月曜日09:55:58 最終変更日:2014年10月31日金曜日11:09:22ビーカーのcibadmin経由 スタック:corosync 現在のDC:スクーター(2)-クォーラム付きのパーティション バージョン:1.1.10-32.el7_0.1-368c726 5ノードが構成されています 21個のリソースが構成されています
cluster_name:
のtotem
セクションに/etc/corosync/corosync.conf
エントリがありますが、ペースメーカーにクラスター名に関連するものが見つかりません[〜#〜] cib [〜#〜]。
クラスターはpcs cluster setup --name clustername node1 node2 node3 node4 node5
で作成されました(clustername
はクラスターの意図された名前です)。
/etc/corosync/corosync.conf
は、その上のディレクトリと同様に、誰でも読み取り可能です。
_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
_ファイルの_corosync.conf
_と名前('cluster_name: *(.*)'
)の間に少なくとも1つのスペースが必要です。これが問題である可能性があります。
_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
これがお役に立てば幸いです。