iSCSI/ZFS strangeness

Jan Bramkamp crest at rlwinm.de
Thu Oct 29 18:17:44 UTC 2015


On 29/10/15 02:57, Michael W. Lucas wrote:
> The initiators can both access the iSCSI-based pool--not
> simultaneously, of course. But CARP, devd, and some shell scripting
> should get me a highly available pool that can withstand the demise of
> any one iSCSI server and any one initiator.
>
> The hope is that the pool would continue to work even if an iSCSI host
> shuts down. When the downed iSCSI host returns, the initiators should
> log back in and the pool auto-resilver.

I would recommend against using CARP for this because CARP is prone to 
split-brain situations and in this case they could destroy your whole 
storage pool. If the current head node fails the replacement has to 
`zpool import -f` the pool and and in the case of a split-brain 
situation both head nodes would continue writing to the iSCSI targets.

I would move the leader election to an external service like consul, 
etcd or zookeeper. This is one case where the added complexity is worth 
it. If you can't run an external service for this e.g. it would exceed 
the scope of the chapter you're writing please simplify the setup with 
more reliable hardware, good monitoring and manual failover for 
maintenance. CARP isn't designed to implement reliable (enough) master 
election for your storage cluster.

Adding iSCSI to your storage stack adds complexity and overhead. For 
setups which still fit inside a single rack SAS (with geom_multipath) is 
normally faster and cheaper. On the other hand you can't spread out SAS 
storage far enough to implement disaster tolerance should you really 
need it and it certainly is an interesting setup.


More information about the freebsd-fs mailing list