Appearance
💾 ZFS Mass Storage Architecture (tank on PVE-1)
The mass storage pool tank resides locally on PVE-1 (pve) and provides high-capacity storage for media, downloads, photos, and backups.
🛠️ Pool Specification
- Pool Name:
tank - Mountpoint on PVE-1:
/tank - Topology:
raidz1-0(Single-parity RAIDZ1 across 4 drives) - Raw Capacity: 15.99 TB (~14.5 TiB)
- Usable Pool Space: ~10.9 TB (11 TB pool filesystem)
- Current Allocation: ~5.8 TB Used (~56%), ~4.7 TB Free
- Deduplication: Off (
1.00x) | Fragmentation: 13%
💽 Physical Disk Layout (PVE-1)
All four drives are Seagate Enterprise Capacity 3.5" 7200 RPM 4TB Enterprise HDDs (Model: ST4000NM0035-1V4107):
| Device | Disk By-ID Link | Serial Number | WWN | SMART Status | Power-On Hours | Operational Note |
|---|---|---|---|---|---|---|
/dev/sda | /dev/disk/by-id/ata-ST4000NM0035-1V4107_ZC1B91PC-part1 | ZC1B91PC | 0x5000c500b5ede40f | PASSED | 55,783 hrs (~6.3 yrs) | Past read error (stable, not incrementing). Kept running per policy until complete failure; cold spare ready. |
/dev/sdb | /dev/disk/by-id/ata-ST4000NM0035-1V4107_ZC1B9SWK-part1 | ZC1B9SWK | 0x5000c500b5edf82e | PASSED | Normal | Healthy, 0 zpool errors |
/dev/sdc | /dev/disk/by-id/ata-ST4000NM0035-1V4107_ZC1B9Q83-part1 | ZC1B9Q83 | 0x5000c500b5ef0107 | PASSED | Normal | Healthy, 0 zpool errors |
/dev/sdd | /dev/disk/by-id/ata-ST4000NM0035-1V4107_ZC1B938P-part1 | ZC1B938P | 0x5000c500b5ed540d | PASSED | Normal | Healthy, 0 zpool errors |
⚙️ ZFS Dataset & Filesystem Settings
The main shared dataset is tank/media_root:
- ZFS Dataset:
tank/media_root - Mountpoint on PVE:
/mnt/pve/tank_media(with/tank/media_rootsymlink for backwards compatibility) - Mount Options (Active):
rw, relatime, xattr, posixacl, casesensitive - ZFS Properties:
mountpoint=/mnt/pve/tank_mediaacltype=posixacl(POSIX Access Control Lists enabled)xattr=sa(System attributes stored in inode for high performance)aclmode=passthrough(Inherits and preserves ACLs across chmod/creation)
bash
# Applying optimal ZFS dataset settings:
zfs set mountpoint=/mnt/pve/tank_media acltype=posixacl xattr=sa aclmode=passthrough tank/media_root
ln -sfn /mnt/pve/tank_media /tank/media_root📂 Dataset Layout & Directory Permissions on media_root
The root dataset /mnt/media_root (bound to /tank/media_root) contains the following directories:
| Directory | Primary Use | Active Writers / Services | Standard UID:GID | POSIX ACLs |
|---|---|---|---|---|
media/ | Movies, TV shows, music, anime libraries | Radarr, Sonarr, Fileflows | 1000:1000 (rwxrwxr-x+) | GROUP:10000:rwx |
torrents/ | Active torrents, completed downloads | qBittorrent | 1000:10000 (rwxrwxr-x+) | GROUP:10000:rwx |
usenet/ | Usenet downloads & intermediate unpacked files | SABnzbd | 1000:10000 (rwxrwxr-x+) | GROUP:10000:rwx |
images/ | Immich photos and photo library assets | Immich | 1001:1001 (rwxrwxr-x+) | GROUP:10000:rwx |
backups/ | Manual backups and application dump archives | Backup jobs | 1000:1000 (rwxrwxr-x+) | GROUP:10000:rwx |
cache/ | Application scratch / transcoder cache | Fileflows / transcoders | 1000:1000 (rwxrwxr-x+) | GROUP:10000:rwx |
iso_files/ | OS installation images, tools | Admin | 1000:1000 (rwxr-x---+) | GROUP:10000:rwx |
user_public_folder/ | Shared public transfer drop | Multi-user / SMB | 1000:1000 (rwxr-xr-x+) | GROUP:10000:rwx |
🛡️ Drive Health Policy & Spare Standby
NOTE
Operational Policy for Hard Drives:
- Known Historical Error: Drive
/dev/sda(Serial:ZC1B91PC, WWN:0x5000c500b5ede40f) has a recorded past read error (READ: 6in zpool status, 9 reallocated sectors, 4 uncorrectable). The error count is stable and not incrementing. - Run-Until-Death Policy: Drives in the array are intentionally kept running until they experience total physical failure. Do not trigger alerts or prompt for replacement during routine health checks.
- Cold Spare on Standby: A spare 4TB HDD is stored on-site and ready to replace any drive in the array immediately upon failure.
💽 Cold Backup Target Drive (WD-WXL1EC84X4KR)
In addition to the primary 4-drive ZFS array, PVE-1 supports an automated plug-and-run cold backup workflow using a dedicated 2TB HDD:
- Device:
/dev/disk/by-id/ata-WDC_WD20SDZW-11JJ8S0_WD-WXL1EC84X4KR(Serial:WD-WXL1EC84X4KR) - Capacity: 2.0 TB (5400 RPM)
- Filesystem:
ext4 - Role: Air-gapped offline cold backup storage for Immich photos (
/tank/media_root/media/photos/) and homelab database/system dumps (/tank/media_root/backups/). - Automation: Triggered automatically via
systemd-udevdon hardware insertion with Telegram notifications, filesystem buffer flush, clean unmount, and automated drive spindown.