Skip to content

fix(media): declare Plex's legacy volume-3 media mount (#329) - #330

Open
ChrisonSimtian wants to merge 1 commit into
mainfrom
fix/plex-declare-volume3-mount
Open

fix(media): declare Plex's legacy volume-3 media mount (#329)#330
ChrisonSimtian wants to merge 1 commit into
mainfrom
fix/plex-declare-volume3-mount

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

Closes #329.

Plex served 3.5 TB — 81% of its library — from a mount that existed in no shape. plex.lxc.yaml declared only ds1813-nfs-volume-4; the legacy library reached CT 5008 through a hand-written line in the container's own /etc/fstab:

192.168.179.11:/volume3/Volume-3/data/media /mnt/media nfs ro 0 0

Converge couldn't see it, MountReconciler couldn't reconcile it, validate couldn't catch it. Recreating CT 5008 would have come up healthy, passed every check, and served 821 GB of 4.3 TB — no error, just mostly-empty libraries. It also broke the root CLAUDE.md rule that NFS mounts are host-level, never inside the guest (BL-016).

Not just "the old fleet's storage" — every library depends on it

Movies    /mnt/media/Movies    + /data/media/movies
TV Shows  /mnt/media/TV Shows  + /data/media/tv
Animes    /mnt/media/Anime       ← volume-3 ONLY, no volume-4 counterpart
Youtube                           /data/youtube

903 of 1049 media_parts (86%) resolve under /mnt/media.

Two things that had to be exactly right

  • Appended LAST. Mounts render positionally, so this is mp2; inserting above would have renumbered the live mp0/mp1. Verified both still point at volume-4 afterwards.
  • target stays exactly /mnt/media. Plex stores absolute section paths, so any other target would silently empty three libraries.

Kept ro: true — Plex reads it, the old arr fleet still writes it.

Verified live, across a CT restart

Check Result
pct config 5008 mp2 added; mp0/mp1 unchanged
/mnt/media provider LXC host-level (clientaddr = the host), ro
library counts identical — Animes 463, Movies 91, TV Shows 532, Youtube 103
file readability 400/400 sampled volume-3 files readable
read-only writes refused (Read-only file system)
Plex active, :32400 HTTP 200 locally and on 10.10.200.98

The in-CT fstab line is replaced by a comment pointing at the shape (original at /etc/fstab.pre-329.bak), so there's one source of truth and nobody re-adds a second mount on the same target.

Context

Found while surveying why 8 guests tagged retired still had live connections. Retiring volume-3 is a far larger decision — 3.2 TB of torrents and 470 seeding entries on CT 5007 live there too; see the survey notes on #199.

Plex served 3.5 TB — 81% of its library — from a mount that existed in no shape.
stacks/Media/plex.lxc.yaml declared only ds1813-nfs-volume-4; the legacy library
reached CT 5008 through a hand-written line in the container's own /etc/fstab:

  192.168.179.11:/volume3/Volume-3/data/media /mnt/media nfs ro 0 0

Converge could not see it, MountReconciler could not reconcile it, and validate
could not catch it. Recreating CT 5008 would have come up healthy, passed every
check, and served 821 GB of 4.3 TB — no error, just mostly-empty libraries. It
also broke the root CLAUDE.md rule that NFS mounts are host-level, never mounted
inside the guest (BL-016).

This is not "the old fleet's storage". EVERY Plex library depends on it:

  Movies    /mnt/media/Movies    + /data/media/movies
  TV Shows  /mnt/media/TV Shows  + /data/media/tv
  Animes    /mnt/media/Anime       <- volume-3 ONLY, no volume-4 counterpart
  Youtube                           /data/youtube

903 of 1049 media_parts (86%) resolve under /mnt/media.

Declared as mp2, appended LAST because mounts render positionally and inserting
above would renumber the live mp0/mp1. target stays exactly /mnt/media: Plex
stores absolute section paths, so changing it would silently empty three
libraries. Kept ro — Plex reads it, the old arr fleet still writes it.

The in-CT fstab line is replaced by a comment pointing at the shape (original
saved as /etc/fstab.pre-329.bak), so there is one source of truth and nobody
re-adds a second mount on the same target.

Verified live, before and after a CT restart:
  - pct config 5008 -> mp2 added, mp0/mp1 unchanged (both still volume-4)
  - /mnt/media now provided by LXC host-level (clientaddr = the host), ro
  - library counts identical: Animes 463, Movies 91, TV Shows 532, Youtube 103
  - 400/400 sampled volume-3 media files readable; writes correctly refused
  - plexmediaserver active, :32400 HTTP 200 locally and on 10.10.200.98

Found while surveying why 8 guests tagged `retired` still had live connections.
Retiring volume-3 is a much larger decision — 3.2 TB of torrents and 470 seeding
entries on CT 5007 also live there (#199).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Plex serves 3.5 TB from an UNDECLARED in-CT NFS mount — a recreate would lose 81% of the library

1 participant