venerdì 16 marzo 2012

SCST iSCSI Resource agents for pacemaker.


Inspired by Openfiler I built my own DIY Highly Available SAN using Pacemaker, DRBD, LVM and SCST.
 
My current setup is:
- Two servers running gentoo
- a DRBD device in single primary
- a floating IP address
- an iSCSI Target with one LUN pointing straight to the DRBD device (vdisk_fileio, nv_cache).

The cib looks like:

node isan01 \
    attributes standby="off"
node isan02 \
    attributes standby="off"
primitive DRBD_VG1 ocf:linbit:drbd \
    params drbd_resource="ISCSIVG1" \
    op monitor interval="29" role="Master" \
    op monitor interval="31" role="Slave"
primitive ISCSI_IP1 ocf:heartbeat:IPaddr2 \
    params ip="192.168.100.20" \
    op monitor interval="10s"
primitive ISCSI_LUN_LUN10 ocf:scst:SCSTLun \
    params target_iqn="iqn.2012-02.com.

isan:vdisk.lun10" lun="0" path="/dev/drbd/by-res/DRBD_VG1" handler="vdisk_fileio" device_name="VDISK-LUN10" additional_parameters="nv_cache=1" \
    op monitor interval="10s"
primitive ISCSI_TGT_LUN10 ocf:scst:SCSTTarget \
    params iqn="iqn.2012-02.com.isan:vdisk.lun10" portals="192.168.100.20" \
    op monitor interval="10s" timeout="60s"
group GR_ISCSIVG1 ISCSI_TGT_LUN10 ISCSI_LUN_LUN10 ISCSI_IP1
ms MS_DRBD_VG1 DRBD_VG1 \
    meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
colocation CO_ISCSI_ON_DRBD_VG1 inf: GR_ISCSIVG1 MS_DRBD_VG1:Master 
order OR_TARGET_BEFORE_VG1 inf: CL_ISCSI_TGT_LUN1:start GR_ISCSIVG1:start
order OR_DRBD_BEFORE_VG1 inf: MS_DRBD_VG1:promote GR_ISCSIVG1:start
property $id="cib-bootstrap-options" \
    dc-version="1.0.9-da7075976b5ff0bee71074385f8fd02f296ec8a3" \
    cluster-infrastructure="openais" \
    expected-quorum-votes="2" \
    stonith-enabled="false" \
    no-quorum-policy="ignore" \
    default-action-timeout="240"
rsc_defaults $id="rsc-options" \
    resource-stickiness="200"


Now I'm testing it  using vmware ESXi 5 as initiator. Seems working.

You can download them from my Github account ...

... and put them in /usr/lib/ocf/resource.d/scst.

UPDATE

SCST resource agent are now included in head revision of SCST project.
I'm just finished writing a master/slave version of SCSTLun, suitable only for iSCSI vdisk.
In the next days I'll test it and soon publish a little howto :)

4 commenti:

  1. Was hoping for an update to this

    RispondiElimina
  2. I am curious how fail over performed on the ESX side, I had a similar setup on Centos 6 SCST Target and ESXi 4.1, when fail over occurred ESX would not see the target on the fail over node unless I did a manual rescan.

    RispondiElimina
  3. What about "allowed_initiators" and "initiater group"?

    RispondiElimina
  4. Hello Steve, "allowed_initiators" and "initiator groups" are pretty easy parameters to add.. maybe in the next release :)

    RispondiElimina