The following example provides HA iSCSI storage resource.
primitive drbd_r0 ocf:linbit:drbd \
params drbd_resource="r0" \
op start interval="0" timeout="240s" \
op stop interval="0" timeout="100s" \
op monitor interval="11s" role="Master" \
op monitor interval="10s"
primitive iscsi_lun1 ocf:heartbeat:iSCSILogicalUnit \
params \
implementation="tgt" \
target_iqn="iqn.2010-07.com.example:storage.disk" \
lun="1" \
path="/dev/drbd0" \
op start interval="0" timeout="10s" \
op stop interval="0" timeout="10s" \
op monitor interval="10s" timeout="10s"
primitive iscsi_target ocf:heartbeat:iSCSITarget \
params \
implementation="tgt" \
iqn="iqn.2010-07.com.example:storage.disk" \
tid="1" \
allowed_initiators="192.168.0.0/24" \
op start interval="0" timeout="10s" \
op stop interval="0" timeout="10s" \
op monitor interval="10s" timeout="10s" \
meta is-managed="true" target-role="Started"
primitive net_conn ocf:pacemaker:ping \
params \
pidfile="/var/run/ping.pid" \
host_list="192.168.0.1" \
op start interval="0" timeout="60s" \
op stop interval="0" timeout="20s" \
op monitor interval="10s" timeout="60s"
primitive san_ip ocf:heartbeat:IPaddr2 \
params \
ip="192.168.0.120" \
cidr_netmask="32" \
op monitor interval="10s"
primitive tgtd lsb:tgtd \
op monitor interval="10s"
ms ms_drbd_r0 drbd_r0 meta \
master-max="1" \
master-node-max="1" \
clone-max="2" \
clone-node-max="1" \
notify="true" \
target-role="Master"
clone clone_net_conn net_conn \
meta clone-node-max="1" clone-max="2"
location ms_drbd_r0-no-conn ms_drbd_r0 \
rule $id="ms_drbd_r0-no-conn-rule" $role="Master" -inf: \
not_defined pingd or pingd number:lte 0
colocation group_san-with-ms_drbd0_r0 inf: \
ms_drbd_r0:Master san_ip tgtd iscsi_target iscsi_lun1
order iscsi_target-after-tgtd inf: tgtd iscsi_target
order lun1-after-iscsi inf: iscsi_target iscsi_lun1
order san_ip-after-ms_drbd0_r0 inf: ms_drbd_r0:promote san_ip:start
order tgtd-after-san_ip inf: san_ip tgtd