Visualizzazione post con etichetta ocf. Mostra tutti i post
Visualizzazione post con etichetta ocf. Mostra tutti i post

giovedì 25 settembre 2014

BTIER Resource Agent for Pacemaker

Since BTIER became stable for production environment I wanted it in my clustered SAN, so I wrote an OCF compliant resource agent for managing a BTIER device.

For now is very simple, In future I'm planning to add some other features.

CIB Notation looks like:

primitive BTIER_TIER1 ocf:brick:btier \
params tier_devices="/dev/sda:/dev/sdb" \

device_name="mybtierdev01"
op monitor interval="10s"


I would say thanks to Mark for giving us such a piece of software.
I'm using it in production (with LVM over tiered device) and it works fine.

Download it from my Dropbox and place in /usr/lib/ocf/resource.d/brick (or whatever) directory.

giovedì 14 marzo 2013

SCST ocf Resource Agent Updated: SRPT (Infiniband) support

It's time to update the SCST Pacemaker Resource Agents!


This release introduces some new features.

Infiniband support is added. Now is possible to add infiniband target and map LUNs to it. It is also possible to have, in the same resource a LUN mapped both to iSCSI and to Infiniband. ESXi is reported to behave fine with this setup.

Tests are welcome and appreciated.

Resource Agents can be downloaded from my Dropbox: https://dl.dropbox.com/u/3102209/Projects/SCST-ocf/SCST-ocf-1.2.tar.gz


Below is part of README file:


EXAMPLE OF USAGE

Assumptions:
- you are using DRBD as backing device (/dev/drbd1)
- your target iqn is iqn.2012-02.com.mysuperhasan:vdisk.lun
- your nic reserved for iscsi is eth2 and your iscsi subnet is 192.168.103.x

This is what your resource configuration in cib notation will look like:


primitive DRBD_VOLUME ocf:linbit:drbd \
    params drbd_resource="DRBDRESOURCE" \
    op monitor interval="29" role="Master" \
    op monitor interval="31" role="Slave"
primitive ISCSI_IP ocf:heartbeat:IPaddr2 \
    params ip="192.168.103.20" cidr_netmask="24" nic="eth2" \
    op monitor interval="10s"
primitive ISCSI_LUN ocf:scst:SCSTLun \
    params iscsi_enable="1" target_iqn="iqn.2012-02.com.mysuperhasan:vdisk.lun" iscsi_lun="0" \
    path="/dev/drbd1" handler="vdisk_fileio" device_name="VDISK-LUN10" \        
    additional_parameters="nv_cache=1" \
    op monitor interval="10s" timeout="120s"
primitive ISCSI_TGT ocf:scst:SCSTTarget \
    params iscsi_enable="1" iqn="iqn.2012-02.com.mysuperhasan:vdisk.lun" \
    portals="192.168.103.20" \
    op monitor interval="10s" timeout="120s"
group GR_ISCSI ISCSI_TGT ISCSI_LUN ISCSI_IP
ms MS_DRBD_VOLUME DRBD_VOLUME \
    meta master-max="1" master-node-max="1" clone-max="2" \
    clone-node-max="1" notify="true"
colocation CO_ISCSI_ON_DRBD_VOLUME inf: GR_ISCSI MS_DRBD_VOLUME:Master
order OR_DRBD_BEFORE_ISCSI inf: MS_DRBD_VOLUME:promote GR_ISCSI:start


INFINIBAND:
For now infiniband support is using one target per HCA model, with SCST auto-created target names.
Soon it will be ported in one target per per mode, with target names represented by HCA port GUID

The CIB for infiniband looks like this:

primitive ISCSI_LUN ocf:scst:SCSTLun \
    params target_iqn="iqn.2012-02.com.mysuperhasan:vdisk.lun" lun="0" \
    path="/dev/drbd1" handler="vdisk_fileio" device_name="VDISK-LUN10" \        
    srpt_enable=1 additional_parameters="nv_cache=1" \
    op monitor interval="10s" timeout="120s"
primitive ISCSI_TGT ocf:scst:SCSTTarget \
    params iqn="iqn.2012-02.com.mysuperhasan:vdisk.lun" \
    portals="192.168.103.20" \
    srpt_enable=1 \
    op monitor interval="10s" timeout="120s"







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 :)