HAST + ZFS + NFS + CARP
julien at perdition.city
Thu Jun 30 15:04:01 UTC 2016
I'm always in the process of setting a redundant low-cost storage for
our (small, ~30 people) team here.
I read quite a lot of articles/documentations/etc and I plan to use HAST
with ZFS for the storage, CARP for the failover and the "good old NFS"
to mount the shares on the clients.
The hardware is 2xHP Proliant DL20 boxes with 2 dedicated disks for the
Assuming the following configuration:
- MASTER is the active node and BACKUP is the standby node.
- two disks in each machine: ada0 and ada1.
- two interfaces in each machine: em0 and em1
- em0 is the primary interface (with CARP setup)
- em1 is dedicated to the HAST traffic (crossover cable)
- FreeBSD is properly installed in each machine.
- a HAST resource "disk0" for ada0p2.
- a HAST resource "disk1" for ada1p2.
- a zpool create zhast mirror /dev/hast/disk0 /dev/hast/disk1 is created
A couple of questions I am still wondering:
- If a disk dies on the MASTER I guess that zpool will not see it and
will transparently use the one on BACKUP through the HAST ressource..
is it a problem? could this lead to some corruption? At this stage the
common sense would be to replace the disk quickly, but imagine the
worst case scenario where ada1 on MASTER dies, zpool will not see it
and will transparently use the one from the BACKUP node (through the
"disk1" HAST ressource), later ada0 on MASTER dies, zpool will not
see it and will transparently use the one from the BACKUP node
(through the "disk0" HAST ressource). At this point on MASTER the two
disks are broken but the pool is still considered healthy ... What if
after that we unplug the em0 network cable on BACKUP? Storage is
- Under heavy I/O the MASTER box suddently dies (for some reasons),
thanks to CARP the BACKUP node will switch from standy -> active and
execute the failover script which does some "hastctl role primary" for
the ressources and a zpool import. I wondered if there are any
situations where the pool couldn't be imported (= data corruption)?
For example what if the pool hasn't been exported on the MASTER before
- Is it a problem if the NFS daemons are started at boot on the standby
node, or should they only be started in the failover script? What
about stale files and active connections on the clients?
- A catastrophic power failure occur and MASTER and BACKUP are suddently
powered down. Later the power returns, is it possible that some
problem occur (split-brain scenario ?) regarding the order in which the
two machines boot up?
- Other things I have not thought?
Belgian Biodiversity Platform (http://www.biodiversity.be)
PGP fingerprint: EEF9 F697 4B68 D275 7B11 6A25 B2BB 3710 A204 23C0
No trees were killed in the creation of this message.
However, many electrons were terribly inconvenienced.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: not available
More information about the freebsd-fs