Skip to content

jcasnellie69/homelab-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Homelab ZFS Pool: tank0

Overview

tank0 is the main ZFS storage pool for the homelab environment. This pool is designed with redundancy, tiered storage, and container hosting in mind. It supports a structured file layout across multiple tech domains and provides optimized datasets for Docker volumes, configuration backups, media storage, and monitored workloads.

Pool Layout

Pool Name: tank0

Redundancy: Mirrored vdevs (RAID1 equivalent)

Tiering Strategy:

SSDs for higher IO/latency-sensitive workloads

HDDs for media and archive storage

External USBs for backup tiers (cold/immutable copy)

Devices

Device

Type

Model

Capacity

Role

nvme1n1

SSD

CT2000P310SSD8

2 TB

Primary high-speed

nvme2n1

SSD

WD Blue SN5000 2

2 TB

Mirror for nvme1n1

sda

HDD

WDC WD20PURX

2 TB

Media/archive tier

sdc

SSD

CT2000BX500SSD1

2 TB

General use / staging

sdb

HDD

ST1000VX001

1 TB

Boot (Linux)

nvme0n1

SSD

AirDisk 1TB SSD

1 TB

ZFS cold spare

Dataset Layout

Datasets are organized by function and domain alignment.

/opt/ ├── baseOS ├── business ├── infra/ │ ├── application │ ├── automation │ ├── development │ ├── language │ ├── network │ ├── observability │ ├── output │ ├── security │ ├── storage │ ├── utility │ ├── virtualization │ └── web └── user/ ├── configs └── ux

/srv/ └── shares

/var/lib/docker/volumes -> tank0/docker-volumes

Backup Strategy

Snapshots: Enabled on key datasets (automation, configs, storage, business)

External USBs: Used for immutable ZFS send/receive backups

Tiered Data Handling: CCTV (Tapo) & low-priority content moved to HDDs

Monitoring (KPIs)

Performance of tank0 is tracked via:

zpool iostat for latency, queue depth

iostat for device-level throughput

Grafana dashboards (hosted via container) for live metrics

Key Metrics:

Mirror IO balancing behavior

Write latency spikes

Snapshot storage growth

Disk temperature & SMART status

GitOps Integration

Git repo initialized under ~/homelab-config/ for:

Mount point definitions

Post-install scripts

Container orchestration

Monitoring dashboards

Inventory & system audit info

Next Steps

Update /etc/fstab if required (ZFS mountpoints typically managed by zfs-mount)

Document NIC layout and assess whether bonding is needed

Evaluate storage classes for k8s, LXC, and Docker needs

Finalize and add structured documentation to ~/homelab-config repo

UML (Planned)

A diagram is planned to visually represent:

Physical devices (with model info)

vdev layout

Dataset structure

Backup flows

(To be generated in PNG and `` formats)

Maintained by: Joe Casnellie Last updated: July 2025

About

An Unexpected Journey

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published