我目前正在尝试在 Debian 7 下制作高可用性 NAS。我正在使用以下软件包:
drbd8-utils
iscsitarget
iscsitarget-dkms
起搏器
corosync
openais
一切工作正常pacemaker
(所以我认为这不是一个配置错误)
当我把所有东西都放在起搏器上时,一切都正常,直到我重新启动其中一个节点。这是我的起搏器配置:
node NAS-1
node NAS-2
primitive nas_ip ocf:heartbeat:IPaddr2 \
params ip="192.168.152.210" cidr_netmask="255.255.255.0"
primitive p_drbd ocf:linbit:drbd \
params drbd_resource="nas" \
op monitor interval="29" role="Master" \
op monitor interval="31" role="Slave"
primitive p_iscsitarget ocf:heartbeat:iSCSITarget \
params iqn="iqn.2015.01.net.utopia:nas" tid="1" \
op monitor interval="10s"
group g_iscsi nas_ip p_iscsitarget
ms ms_drbd p_drbd \
meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
colocation nas inf: g_iscsi ms_drbd:Master
order o_drbd inf: ms_drbd:promote g_iscsi:start
property $id="cib-bootstrap-options" \
dc-version="1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff" \
cluster-infrastructure="openais" \
expected-quorum-votes="2" \
stonith-enabled="false" \
no-quorum-policy="ignore" \
default-resource-stickiness="1"
crm(live)configure#
错误如下:
root@NAS-1:~# crm_mon -1
============
Last updated: Wed Jan 7 16:02:53 2015
Last change: Wed Jan 7 15:57:51 2015 via cibadmin on NAS-1
Stack: openais
Current DC: NAS-2 - partition with quorum
Version: 1.1.7-ee0730e13d124c3d58f00016c3376a1de5323cff
2 Nodes configured, 2 expected votes
4 Resources configured.
============
Online: [ NAS-1 NAS-2 ]
Master/Slave Set: ms_drbd [p_drbd]
Masters: [ NAS-2 ]
Slaves: [ NAS-1 ]
Resource Group: g_iscsi
nas_ip (ocf::heartbeat:IPaddr2): Started NAS-2
p_iscsitarget (ocf::heartbeat:iSCSITarget): Started NAS-2 (unmanaged) FAILED
Failed actions:
p_iscsitarget_stop_0 (node=NAS-2, call=16, rc=5, status=complete): not installed
root@NAS-1:~#
注意:NAS 中确实没有配置 iSCSi 逻辑单元,目前在虚拟机上处于测试阶段,但我在之前的测试中遇到了完全相同的错误。
有人能帮我找出/纠正这个错误吗?
PS:我的其他内容的配置文件:
http://pastebin.com/rUZYrhxm (/etc/drbd.d/*)
http://pastebin.com/X4VGNJuP (/etc/iet/ietd.conf)
答案1
问题不是来自 drbd 隔离,当我重新启动一个节点时,两个节点确实切换了它们的角色(重新启动的服务器如果尚未变为辅助服务器则变为辅助服务器,而另一个服务器如果尚未变为主服务器则变为主服务器)。
我已经使用集群信息库的资源级别防护(请参阅http://pastebin.com/rUZYrhxm)。
策略是将 iSCSI 服务启动与 drbd Master 角色分组。但它似乎在切换到 Master 角色之前试图启动 iSCSITarget,因此由于磁盘处于只读状态而被锁定。
我再次从头开始重建了整个系统,现在它可以正常工作了,我想我在某个地方犯了一个小错误。
答案2
因为缺少stonith,所以需要在pacemaker中配置stonith,并配置drbd调用pacemaker fencing。
http://drbd.linbit.com/users-guide/s-pacemaker-fencing.html
答案3
我认为是因为在 Debian 中没有iSCSITarget
心跳。检查目录/usr/lib/ocf/resource.d/redhat/
。
ls -ls /usr/lib/ocf/resource.d/redhat/
如果没有看到,那么您正在调用一个不存在的脚本。