The SuperMicro FreeNAS box is the oldest continuously running piece of infrastructure in the lab. It predates the FortiGate, the k8s cluster, the Proxmox hypervisor, and every automation tool I’ve ever set up. It just sits there, serves NFS, and doesn’t complain.

Contents#

What It Does#

Every service in the k8s cluster that needs shared data mounts NFS volumes from this box. Movies, TV, anime, music, audiobooks, downloads. The static PVs in heezy-k8s/base/nfs-media-static-pvs.yaml all point back here over NFSv3 with hard mounts.

It also handles SMB shares for direct access from desktops and laptops on the USERS VLAN.

The Hardware#

SuperMicro chassis with a server-grade motherboard, ECC RAM, and hot-swap drive bays. Came from a vendor POC that didn’t close at a previous job. The vendor told us to dispose of it however we wanted because shipping it back cost more than it was worth. More on that in Vendor Relationships and Free Enterprise Gear.

The onboard HBA is flashed to IT mode so drives pass directly to ZFS instead of going through a hardware RAID controller. Boot drive is a 32GB KingDian SSD (ada0) that just runs the OS.

Drive Inventory#

DriveModelSizeTypeNotes
ada0KingDian S100 32GB29.5 GiBSSDBoot drive
da0HGST HDN726050AL4.55 TiBHDD
da1HGST HDS724040AL3.64 TiBHDD
da2WDC WD40EFRX-68N3.64 TiBHDDBeing replaced with 16TB
da3WDC WD4000F9YZ-03.64 TiBHDDBeing replaced with 16TB
da4Seagate ST14000VN000812.73 TiBHDD
da5Seagate ST14000VN000812.73 TiBHDD
da6WDC WD201KFGX-6818.19 TiBHDD
da7WDC WD201KFGX-6818.19 TiBHDD

A mix of everything. HGST, WD Red, Seagate IronWolf, WD Gold. Different sizes, different ages. The two 20TB WD Golds (da6, da7) are the newest. The two 4TB WDs (da2, da3) are the oldest data drives and are getting swapped out for 16TB drives soon.

ZFS Configuration#

Single pool, lz4 compression, no dedup.

PoolTotalUsedFreeCompressionDedup
Arr1~37 TiB81%6.98 TiBlz4off

Datasets:

DatasetSizeNotes
Arr1/SMB29.9 TiBAll media lives here
Arr1/iocage8.13 MiBLegacy, basically empty

The SMB dataset holds everything under /mnt/Arr1/SMB/Media/: movies, tv, anime, music, audiobooks.

NFS Exports#

All mounted by the k8s cluster as static PVs:

Export PathK8s PVUsed By
/mnt/Arr1/SMB/Media/moviesnfs-media-moviesRadarr, Plex
/mnt/Arr1/SMB/Media/tvnfs-media-tvSonarr, Plex
/mnt/Arr1/SMB/Media/animenfs-media-animeSonarr, Plex
/mnt/Arr1/SMB/Media/musicnfs-media-musicLidarr, Navidrome, Slskd
/mnt/Arr1/SMB/Media/audiobooksnfs-media-audiobooksLazyLibrarian, Plex

Upcoming: 16TB Drive Swap#

The pool is at 81% and the two oldest data drives (da2 and da3, both 4TB WDs) are getting replaced with 16TB drives. That’s roughly 24TB of additional usable capacity depending on the vdev layout, which should buy plenty of runway.

Why Not Upgrade#

The box itself works. The drives are healthy. ZFS scrubs come back clean. NFS performance is fine for streaming and bulk reads.

The one thing I’d change is managing it with Ansible. Right now it’s the only manually configured box in the lab alongside the Cisco switch. FreeNAS has an API that could be automated, but the effort-to-payoff ratio for something that changes once a year isn’t there. Can’t even SSH to it from the MCP server because the key exchange algorithms are too old.