HA iSCSI target cluster

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:
  1. Use CARP to manage the virtual IP + devd(8) to make some scripts subscribe to CARP events.
  2. Use net/ucarp to handle both the virtual IP and event-based actions.
I have three questions:
  1. 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.
  2. Both nodes will have identical ctl.conf files and storage paths: is that enough for ctld(8) failover, or am I missing something ?
  3. 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.
 
  • Thanks
Reactions: Oko
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.
 
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.
 
Back
Top