It is now September 22th, 2026. I will briefly describe my home UNIX lab in this document. I have three physical machines that are all laptops:
OmniOS stable hosts two Linux virtual machines using bhyve-branded zones:
I keep all the operating systems up-to-date so this description will soon be outdated when it comes to the release numbers.
In addition to being a virtualization host, OmniOS stable is also a storage server having ZFS RAID-1 mirror with 2TB of storage. I create zvol:s when needed and I use iSCSI to expose them as block devices to the clients. In iSCSI terminology, OmniOs is target while the clients are called initiators.
Fedora 44 has one software developer user whose home directory is based on an iSCSI block device that is mounted under /mnt/untosten. On Fedora, I have created XFS file system on top of the iSCSI block device and everything works fine except that handling very big files is rather slow because OmniOS ZFS RAID-1 mirror disks are regular USB HDDs and not SSDs. But this is not a big problem for me. In normal day-to-day usage, having ZFS do LZ4 compression, error detection and correction, ARC caching and mirroring is more important than huge I/O speed. However, I plan to upgrade to faster disks in the future.
My home UNIX lab runs two instances of Cyrus IMAPD. These serve as email backup storage. FreeBSD machine runs imapsync using cron every five minutes. It fetches messages from my hosting provider's IMAP server and copies them to Cyrus IMAPD running on OmniOS. The OmniOS Cyrus serves as a primary node. It replicates everything using IMAP protocol to FreeBSD Cyrus IMAPD that is a Cyrus replica. This way, if OmniOS or FreeBSD SSD disk dies, I still have one Cyrus IMAPD instance intact.
Regarding storage on OmniOS, I have scheduled full zfs crub to happen during the first day of each month. This is achieved using a regular cronjob. OmniOS also runs zpool status -x every 5 minutes using cron. The cronjob in question monitor zpool health and sends out emergency email in case of failures. If everything is fine, nothing happens.
FreeBSD runs PostgreSQL and Apache. PostgreSQL contains two databases: one for my retrogames, one for comics books called Aku Ankan Taskukirjat. I use Python scripts and plain psql to update the databases. Web UI based on Flask framework is just for searching the databases.
All the physical machines are connected to 1GbE wired Ethernet for speed and stability.