ZFS Storage Architecture ZFS Storage Architecture Terra utilizes ZFS for primary data storage, leveraging its advanced features for data integrity, snapshots, and caching. ๐ŸŠ Pools ๐Ÿš€ main (SSD Pool) Hardware: Raid-Z2 (6x 2TB SSD) Total Capacity: ~12TB Raw Use Case: High-performance data, VM disks, Docker root, and active AppData. L2ARC: 48GB limit (leveraging NVMe partitions). ๐Ÿ˜ bulk (HDD Pool) Hardware: Raid-Z1 (4x 12TB HDD) Total Capacity: ~48TB Raw Use Case: Large media storage, backups, and long-term archival. Special VDEV: Mirrored NVMe partitions used for metadata offloading to speed up file listing on HDDs. ๐Ÿ“‚ Key Datasets & Mounts /srv: Docker-compose configuration files (Stored on main). /main/appdata: Primary persistent storage for containers (Stored on main). /bulk/pics: Family photo/video archive (Stored on bulk). ๐Ÿ›ก๏ธ Health & Maintenance ๐Ÿ” Automated Monitoring ( smartd) Drive health is monitored via smartmontools with automated short and long self-tests configured to email results. Test schedules are staggered to prevent resource contention. NVMe (2x 500GB): Short tests daily at 1am & 2am; Long tests quarterly on the 1st-2nd. HDD (4x 12TB): Short tests daily at 3am-6am; Long tests on the 4th, 6th, 8th, and 10th of each month. SSD (6x 2TB): Short tests daily from 1am-6am; Long tests quarterly on the 3rd, 5th, 7th, 9th, 11th, and 12th. ๐Ÿงน ZFS Scrubbing A scrub is performed automatically on the 3rd Sunday of every month to ensure data integrity and prevent bitrot. Scrub Schedule (Cron): 24 0 15-21 * * root if [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/scrub ]; then /usr/lib/zfs-linux/scrub; fi