High-Available iSCSI Target

Netzwerkkonfiguration

  • Node 1: cl1n1.home.eisscholle.net
    • iSCSI/Management Interface: 1.0.0.130/24
    • Cluster Interface: 1.0.10.10/24
  • Node 2: cl1n2.home.eisscholle.net
    • iSCSI/Management Interface: 1.0.0.131/24
    • Cluster Interface: 1.0.10.11/24

Pakete:

  • drbd8-utils
  • pacemaker
  • patch
  • gawk
  • iscsitarget
  • iscsitarget-dkms
  • dkms
  • linux-headers-2.6-amd64

Konfiguration /etc/drbd.conf:

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
 
include "drbd.d/global_common.conf";
#include "drbd.d/*.res";
 
resource r0 {
        protocol C;
 
        syncer {
                rate 1G;
        }
 
        on cl1n1.home.eisscholle.net {
                device          /dev/drbd0;
                disk            /dev/sdb;
                address         1.0.10.10:7788;
                meta-disk       internal;
        }
 
        on cl1n2.home.eisscholle.net {
                device          /dev/drbd0;
                disk            /dev/sdb;
                address         1.0.10.11:7788;
                meta-disk       internal;
        }
}
 
resource r1 {
        protocol C;
 
        syncer {
                rate 1G;
        }
 
        on cl1n1.home.eisscholle.net {
                device          /dev/drbd1;
                disk            /dev/sdc;
                address         1.0.10.10:7789;
                meta-disk       internal;
        }
 
        on cl1n2.home.eisscholle.net {
                device          /dev/drbd1;
                disk            /dev/sdc;
                address         1.0.10.11:7789;
                meta-disk       internal;
        }
}

Konfiguration Corosync:

node cl1n1.home.eisscholle.net \
        attributes standby="off"
node cl1n2.home.eisscholle.net \
        attributes standby="off"
primitive drbd0 ocf:linbit:drbd \
        params drbd_resource="r0" \
        op monitor interval="5s" \
        op start interval="0" timeout="240s" \
        op stop interval="0" timeout="100s"
primitive drbd1 ocf:linbit:drbd \
        params drbd_resource="r1" \
        op monitor interval="5s" \
        op start interval="0" timeout="240s" \
        op stop interval="0" timeout="100s"
primitive ietd0 ocf:heartbeat:iSCSITarget \
        params implementation="iet" iqn="iqn.cl1n1.home.eisscholle.net:drbd0" \
        op monitor interval="5s" \
        meta target-role="Started"
primitive ietd1 ocf:heartbeat:iSCSITarget \
        params implementation="iet" iqn="iqn.cl1n2.home.eisscholle.net:drbd1" \
        op monitor interval="5s" \
        meta target-role="Started"
primitive ietu0 ocf:heartbeat:iSCSILogicalUnit \
        params target_iqn="iqn.cl1n1.home.eisscholle.net:drbd0" lun="0" path="/dev/drbd0" scsi_sn="drbd0" additional_parameters="type=fileio" \
        op monitor interval="5" timeout="10" depth="0" \
        meta target-role="Started"
primitive ietu1 ocf:heartbeat:iSCSILogicalUnit \
        params target_iqn="iqn.cl1n2.home.eisscholle.net:drbd1" lun="0" path="/dev/drbd1" scsi_sn="drbd1" additional_parameters="type=fileio" \
        op monitor interval="5" timeout="10" depth="0" \
        meta target-role="Started"
primitive ip0 ocf:heartbeat:IPaddr2 \
        params ip="1.0.0.132" \
        op monitor interval="5s" \
        meta target-role="Started"
primitive ip1 ocf:heartbeat:IPaddr2 \
        params ip="1.0.0.133" \
        op monitor interval="5s" \
        meta target-role="Started"
ms ms_drbd0 drbd0 \
        meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" target-role="Started"
ms ms_drbd1 drbd1 \
        meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" target-role="Started"
colocation ip0_on_drbd0 inf: ip0 ms_drbd0:Master ietd0 ietu0
colocation ip1_on_drbd1 inf: ip1 ms_drbd1:Master ietd1 ietu1
order ip0_after_drbd0 inf: ms_drbd0:promote ip0:start ietd0 ietu0
order ip1_after_drbd1 inf: ms_drbd1:promote ip1:start ietd1 ietu1
property $id="cib-bootstrap-options" \
        dc-version="1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b" \
        cluster-infrastructure="openais" \
        expected-quorum-votes="2" \
        stonith-enabled="false" \
        no-quorum-policy="ignore" \
        default-resource-stickiness="1000" \
        last-lrm-refresh="1288633229"

Ergebnis crm_mon:

============
Last updated: Mon Nov  1 16:04:38 2010
Stack: openais
Current DC: cl1n1.home.eisscholle.net - partition with quorum
Version: 1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b
2 Nodes configured, 2 expected votes
8 Resources configured.
============
 
Online: [ cl1n1.home.eisscholle.net cl1n2.home.eisscholle.net ]
 
ip0     (ocf::heartbeat:IPaddr2):       Started cl1n1.home.eisscholle.net
ip1     (ocf::heartbeat:IPaddr2):       Started cl1n2.home.eisscholle.net
Master/Slave Set: ms_drbd0
     Masters: [ cl1n1.home.eisscholle.net ]
     Slaves: [ cl1n2.home.eisscholle.net ]
Master/Slave Set: ms_drbd1
     Masters: [ cl1n2.home.eisscholle.net ]
     Slaves: [ cl1n1.home.eisscholle.net ]
ietd0   (ocf::heartbeat:iSCSITarget):   Started cl1n1.home.eisscholle.net
ietd1   (ocf::heartbeat:iSCSITarget):   Started cl1n2.home.eisscholle.net
ietu0   (ocf::heartbeat:iSCSILogicalUnit):      Started cl1n1.home.eisscholle.net
ietu1   (ocf::heartbeat:iSCSILogicalUnit):      Started cl1n2.home.eisscholle.net