私は現在、debian7で高可用性NASを作成しようとしています。次のパッケージを使用しています:
drbd8-utils
iscsitarget
iscsitarget-dkms
ペースメーカー
corosync
openais
pacemaker
がなくてもすべて正常に動作します(したがって、confエラーではないと思います)
すべてをペースメーカーに入れると、ノードの1つを再起動するまですべてが機能します。これが私のペースメーカー設定です:
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論理ユニットは実際にはありません。現在VMでテスト段階にありますが、以前のテストでまったく同じエラーが発生しました。
誰かがそのエラーを特定/修正するのを手伝ってもらえますか?
PS:他のもののための私のconfファイル:
http://Pastebin.com/rUZYrhxm (/etc/drbd.d/*)
http://Pastebin.com/X4VGNJuP (/etc/iet/ietd.conf)
問題はdrbdフェンシングに起因するものではありません。一方のノードを再起動すると、両方のノードが実際に役割を切り替えます(再起動されたサーバーは、まだセカンダリになっていない場合はセカンダリになり、もう一方のサーバーはまだプライマリになりません)。
私はすでにクラスター情報ベースでリソースレベルのフェンシングを使用しています( http://Pastebin.com/rUZYrhxm を参照)。
戦略は、iSCSIサービスのスタートアップをdrbdマスターの役割でグループ化することでした。ただし、マスターの役割に切り替える前にiSCSITargetを起動しようとしていたようで、ディスクが読み取り専用であったためにロックされていました。
システム全体を最初からやり直しましたが、今では機能しています。どこかで小さなエラーが1つあったと思います。
Debianでは、ハートビート用のiSCSITarget
がないからだと思います。ディレクトリを確認してください/usr/lib/ocf/resource.d/redhat/
。
ls -ls /usr/lib/ocf/resource.d/redhat/
そこに表示されない場合は、存在しないスクリプトを呼び出しています。
Stonithが欠落しているため、ペースメーカーでstonithを構成し、ペースメーカーフェンシングを呼び出すようにdrbdを構成する必要があります。
http://drbd.linbit.com/users-guide/s-pacemaker-fencing.html