В настоящее время я пытаюсь создать высокодоступный NAS под debian 7. Я использую следующие пакеты:
drbd8-utils
iscsitarget
iscsitarget-dkms
кардиостимулятор
коросинхронизация
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: Мои файлы conf для прочего:
http://pastebin.com/rUZYrhxm (/etc/drbd.d/*)
http://pastebin.com/X4VGNJuP (/etc/iet/ietd.conf)
Проблема не возникает из-за ограждения drbd, когда я перезагружаю один узел, оба узла действительно меняют свои роли (перезагруженный сервер становится вторичным, если его еще не было, а другой сервер становится первичным, если он еще не был).
Я уже использую ограждение на уровне ресурсов с помощью кластерной информационной базы (см. http://pastebin.com/rUZYrhxm ).
Стратегия заключалась в группировании запуска службы iSCSI с ролью ведущего сервера drbd. за исключением того, что казалось, что он пытался запустить iSCSITarget перед переключением на роль Master, поэтому был заблокирован, поскольку диск был в режиме только для чтения.
Я еще раз переделал всю свою систему с нуля, и теперь она работает, думаю, я где-то сделал небольшую ошибку.
Я думаю, это потому, что в 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