# HA iSCSI target cluster



## m4r1n (Feb 14, 2015)

Hi,

I'm considering to Build a 2-node highly-available iSCSI target cluster based on FreeBSD. All cluster nodes will share some storage for iSCSI volumes. I plan to use the new ctld(8) iSCSI implementation. All nodes will share a common virtual IP address for client requests. As far as I know, there is basically two ways to set this up in FreeBSD:

Use CARP to manage the virtual IP + devd(8) to make some scripts subscribe to CARP events.
Use net/ucarp to handle both the virtual IP and event-based actions.
I have three questions:

According to your experience, which one is the most reliable ? Split-brain scenarios are my greatest fears, and I read that CARP was sometimes not as reliable as it should.
Both nodes will have identical ctl.conf files and storage paths: is that enough for ctld(8) failover, or am I missing something ?
Do you know of a way to keep each node's config files in sync ? I could use net/rsync to push changes to the other nodes, but I wonder if a special tool exists for cluster environments.
Many thanks for your answers!

Marin.


----------



## ondra_knezour (Feb 14, 2015)

Regarding third question, see HAST - https://www.freebsd.org/doc/handbook/disks-hast.html


----------



## m4r1n (Feb 14, 2015)

Thanks for your answer, however HAST is designed for block-level replication. I only need to replicate a bunch of config files, not the whole disk.


----------



## junovitch@ (Feb 17, 2015)

2/3: net/csync2 is a tool for bidirectional syncing in cluster doing one to many syncs.  It might be a bit much.  There are plenty of configuration management frameworks out there as well that are well suited to managing config files and restarting or reloading services as needed.


----------

