Files
2026-10-06 16:33:29 +01:00

6.4 KiB

schema_version, id, type, scope, sensitivity, last_reviewed, sources, related, update_triggers, unknowns
schema_version id type scope sensitivity last_reviewed sources related update_triggers unknowns
1 home-server.storage reference
jupiter
disks
raid
filesystems
docker-volumes
private-infrastructure 2026-10-06
kind reference
owner-report lsblk filesystem output, RAID level, mount placement and Docker data root, 2026-10-06
kind reference
owner-report Seedbox rclone mount and systemd unit, 2026-10-06
kind reference
owner-report Deployed Portainer uses /data/portainer bind mount, not portainer_data, 2026-10-06
kind reference
owner-report mdstat, mdadm scans/detail, fstab, findmnt and Docker volume/container inspection, 2026-10-06
kind repository revision paths
repository jupiter-stacks 610e325ef6a98850511ce7a089b0b9a77bfecf15
stacks/backrest/docker-compose.yml
stacks/jellyfin/docker-compose.yml
stacks/authelia/docker-compose.yml
stacks/traefik/docker-compose.yml
home-server.reference
home-server.host
home-server.seedbox
home-server.portainer
home-server.backups
home-server.operations
disk-change
raid-change
mount-change
volume-change
backup-coverage-change
persistent-mdadm-config-and-initramfs-content
disk-health

Storage

---
config:
  themeCSS: |
    .node rect { rx: 8px; ry: 8px; stroke-width: 1.5px; }
    .cluster rect { fill: var(--infra-zone) !important; stroke: var(--infra-border) !important; stroke-dasharray: 5 5; rx: 12px; ry: 12px; }
    .label, .nodeLabel, .cluster-label { color: var(--infra-text) !important; }
    .flowchart-link { stroke: var(--infra-line) !important; }
    marker path { fill: var(--infra-line) !important; stroke: var(--infra-line) !important; }
    .infraStorage rect, .infraStorage path { fill: var(--infra-storage-fill) !important; stroke: var(--infra-storage-stroke) !important; }
    .infraCloud rect { fill: var(--infra-cloud-fill) !important; stroke: var(--infra-cloud-stroke) !important; }
    .infraClient rect { fill: var(--infra-client-fill) !important; stroke: var(--infra-client-stroke) !important; }
    .infraService rect { fill: var(--infra-service-fill) !important; stroke: var(--infra-service-stroke) !important; }
  flowchart:
    curve: basis
    nodeSpacing: 30
    rankSpacing: 45
---
flowchart LR
  subgraph Array["HDD ARRAY / APPLICATION DATA"]
    direction TB
    A["<b>Seagate BarraCuda</b><br/>sda1 / 2 TB"]
    B["<b>Seagate BarraCuda</b><br/>sdb1 / 2 TB"]
    RAID["<b>Linux MD RAID 0</b><br/>md0 / no redundancy"]
    DATA[("<b>/data</b><br/>ext4")]
    A --> RAID
    B --> RAID
    RAID --> DATA
  end

  subgraph System["SSD / SYSTEM"]
    direction TB
    SSD["<b>Samsung 860 EVO</b><br/>sdc / 1 TB"]
    EFI["<b>/boot/efi</b><br/>sdc1 / FAT32"]
    SWAP["<b>Swap</b><br/>sdc2"]
    ROOT["<b>/</b><br/>sdc3 / ext4"]
    DOCKER["<b>/var/lib/docker</b><br/>Named volumes"]
    CACHE["<b>/home/jay/data</b><br/>Backrest / Jellyfin caches"]
    SSD --> EFI
    SSD --> SWAP
    SSD --> ROOT
    ROOT --> DOCKER
    ROOT --> CACHE
  end

  class A,B,SSD,DATA,ROOT infraStorage
  class RAID infraCloud
  class EFI,SWAP infraClient
  class DOCKER,CACHE infraService

RAID 0: striping; no redundancy; either HDD failure loses the array.

Filesystems

Device names reflect the supplied snapshot; UUIDs identify filesystems.

Mount Device Filesystem UUID
/data /dev/md0 ext4 d60390a1-7db3-44cc-bbde-693c23e42001
/ /dev/sdc3 ext4 7a5e0ee6-4a65-4f68-9128-b3b4f3406447
/boot/efi /dev/sdc1 FAT32 1DDE-CDF9
swap /dev/sdc2 swap 4781ea5d-fba5-438d-8d97-6a0801669ca1

MD members: /dev/sda1, /dev/sdb1; metadata 1.2; array label jupiter:0; MD UUID c67fccaa-e541-bf2d-2bf6-83221086e0e9.

RAID assembly / geometry

Linux MD, inspected with mdadm; ext4 directly on the array, no intervening LVM.

Setting Observed value
Device / scan name /dev/md0 / /dev/md/0
mdadm UUID c67fccaa:e541bf2d:2bf68322:1086e0e9
Capacity 3.64 TiB / 4.00 TB
Layout / chunk original / 512 KiB
Member order Slot 0: /dev/sdb1; slot 1: /dev/sda1
State at review clean; 2 active members; no failed/spare devices

Scan output identifies the array; persisted mdadm configuration/initramfs were not supplied. Assembly is not array creation; do not substitute mdadm --create.

Mount configuration

Supplied /etc/fstab:

UUID=7a5e0ee6-4a65-4f68-9128-b3b4f3406447 /         ext4 errors=remount-ro 0 1
UUID=1DDE-CDF9                            /boot/efi vfat utf8              0 0
UUID=d60390a1-7db3-44cc-bbde-693c23e42001 /data     ext4 defaults          0 2
UUID=4781ea5d-fba5-438d-8d97-6a0801669ca1 none      swap sw                0 0

Observed /data: rw,relatime,stripe=256; /tmp: tmpfs. Seedbox FUSE mount is service-managed, not listed in fstab.

Placement

Host path Backing / purpose
/data/<service> HDD array; service bind mounts
/mnt/seedbox Remote SFTP/FUSE mount; seedbox; not a local replica
/home/jay/data/backrest/cache SSD; Backrest cache
/home/jay/data/jellyfin/cache SSD; Jellyfin cache
/var/lib/docker SSD; Docker state and default local named volumes
/var/lib/containerd SSD; observed containerd overlayfs snapshot storage
/data/portainer HDD array; deployed Portainer state; backed up
/data/authelia Configuration, users, SQLite, notifications
/data/traefik/{acme,dynamic,certs} ACME state, dynamic configuration, certificates

Cache placement is per mount, not globally SSD-backed. /data backups do not implicitly include SSD-backed Docker volumes.

Named-volume snapshot

Inspected volumes below use driver local, no driver options, and /var/lib/docker/volumes/<name>/_data on SSD.

Volume Running consumer / container path
audiobookshelf_config Audiobookshelf /config
jellyfin_config Jellyfin /config
notes_static Notes web /usr/share/nginx/html; builder /site-output
dozzle_dozzle_data Dozzle /data
ctq_ctq_postgres_data CTQ PostgreSQL /var/lib/postgresql/data
havox_src Havox web/sync /git

Other volumes are present without a running consumer shown, including jellyfin_cache, notes_notes_static, and monitoring volumes. Presence does not prove use or justify deletion. Named volumes are outside the supplied four-directory backup plan.