legacy-arrflix/docs/32-nullstone-storage-upgrade-plan.md
s8n cb9d5db1ce doc 32: nullstone storage upgrade plan
R&M S02-S08 import (~105GB) blocked on disk pressure (post-import
117GB->12GB free). Plan upgrade first.

Hardware probed: MSI X470 Gaming Plus Max, single Intel 512GB NVMe in
M2_1, M2_2 free, 6 SATA ports free.

Recommended path: 2TB NVMe in M2_2 (~£130) -> pvcreate -> vgextend
keystone-vg -> lvextend lv-home -> resize2fs. ~5 min downtime, no
reinstall. Alt: SATA SSD/HDD, USB external. Cheapest /GB = SATA HDD.

Doc covers procedure, alternatives, post-upgrade R&M bulk import
plan via playbooks/import-media/. Owner to pick + execute install.
2026-05-10 04:41:52 +01:00

4.5 KiB
Raw Blame History

32 — Nullstone Storage Upgrade Plan

Status: PLAN (2026-05-10). Hardware purchase + install pending.

Why

ARRFLIX library growth — Rick and Morty S02-S08 import (~105 GB) would push /home from 70 % → 92 % full. Tight margin for transcodes, logs, future imports. Pre-emptive upgrade beats emergency cleanup.

Current state

Item Value
Drive Intel SSDPEKKF512G8 NVMe 512 GB (single)
Slot 1 NVMe (nvme0n1)
LVM VG keystone-vg, fully allocated (475 GB)
LV /home 406.2 GB, 263 GB used, 117 GB free (70 %)
LV /, /var, /tmp, swap 30/11/3/24 GB
Mobo MSI X470 Gaming Plus Max (MS-7B79)
Free slots 1× M.2 (M2_2), 6× SATA ports

Mobo has two M.2 slots:

  • M2_1 — PCIe 3.0 ×4, occupied (Intel 512 GB)
  • M2_2 — PCIe 2.0 ×4 / SATA, free
Capacity Approx cost Recommended
1 TB NVMe ~£60 adequate
2 TB NVMe ~£130 best — leaves headroom for full Disney+ / Star Wars catalogue
4 TB NVMe ~£250 long-term, future-proof

Specs: NVMe PCIe 3.0 ×4 (M.2 2280). Brand: WD SN770, Samsung 990 EVO, Crucial P310, Lexar NM790. M2_2 is PCIe 2.0 — drive will negotiate down (still ~1.5 GB/s — plenty for media).

Procedure

  1. Power off nullstone.
  2. Open case, install drive in M2_2 slot.
  3. Boot.
  4. Verify: lsblk should show new nvme1n1.
  5. Partition: sudo parted /dev/nvme1n1 mklabel gpt && sudo parted /dev/nvme1n1 mkpart primary 0% 100%
  6. Add as LVM PV: sudo pvcreate /dev/nvme1n1p1
  7. Extend VG: sudo vgextend keystone-vg /dev/nvme1n1p1
  8. Extend LV: sudo lvextend -l +100%FREE /dev/keystone-vg/home
  9. Grow filesystem online: sudo resize2fs /dev/keystone-vg/home
  10. Verify: df -h /home should show new size, no reboot needed.

Total downtime: ~5 min for case open + boot. No reinstall.

Alternative paths (if M.2 install blocked)

SATA SSD/HDD (option 4 from poll)

  • 6 SATA ports free. Mobo has space for 2.5"/3.5" drives (case-dependent).
  • 2 TB SATA SSD ~£80, 2 TB HDD ~£25, 4 TB HDD ~£60.
  • Procedure same as NVMe but /dev/sda instead of nvme1n1.
  • HDD slower (~150 MB/s vs NVMe's 1500 MB/s) but fine for media — 4K HDR HEVC peaks at ~15 Mbps = 1.9 MB/s read.
  • Pro: cheapest per GB. Con: slower transcodes if SSD cache not configured.

USB external (option 3 from poll)

  • USB 3.0/3.1 ports available (at least 2× 10 Gbps slots).
  • Plug-and-play, no case open.
  • Pro: no install risk, can move drive between machines.
  • Con: cable disconnect risks media server uptime (auto-mount needs udev rule or fstab nofail). Slower than internal (~400-500 MB/s real-world over USB 3.1).
  • Best if: temporary expansion or testing.

Migration of /home/user/media

Once new drive added to LVM and lv-home extended → media stays in place. NO migration needed. Just more headroom.

If using a SEPARATE drive (not joining LVM):

# Mount new drive at /mnt/media-2
sudo mkfs.ext4 /dev/nvme1n1p1   # or /dev/sda1
sudo mkdir /mnt/media-2
sudo mount /dev/nvme1n1p1 /mnt/media-2
sudo chown user:user /mnt/media-2

# Move TV to new drive (movies stay on /home for now)
sudo rsync -aHAX --info=progress2 /home/user/media/tv/ /mnt/media-2/tv/

# Update fstab for auto-mount on boot
echo '/dev/nvme1n1p1 /mnt/media-2 ext4 defaults 0 2' | sudo tee -a /etc/fstab

# Update Jellyfin container — stop, edit docker-compose.yml volume:
#   /mnt/media-2/tv → /media/tv-2
# OR just mount-bind /mnt/media-2/tv onto /home/user/media/tv (transparent to Jellyfin):
sudo umount /home/user/media/tv  # if anything's there
sudo rmdir /home/user/media/tv
sudo ln -s /mnt/media-2/tv /home/user/media/tv

LVM-extension path is much cleaner — recommended.

Decision pending

Owner picks NVMe / SATA / USB based on what's easier to get + budget. Update this doc after decision + install.

After upgrade — Rick and Morty bulk import

Once /home has ≥ 200 GB free:

# Per playbooks/import-media/ v1.0
# Stage all 7 seasons on onyx (already done — names need normalising)
# rsync to nullstone in one bulk
# Force Library/Refresh
# Verify Series 12→13 (only 1 new — R&M existed since S01), Episodes 217→285 (+68 with all 7 seasons full)
# Wait for S03 E06+E10 to finish download first, OR import partial + add later

Run logs: playbooks/import-media/runs/rick-and-morty-s02-s08-2160p-hdr.md (template).

See also

  • playbooks/import-media/ — import workflow
  • docs/05-file-structure-rules.md — TV folder layout
  • ROADMAP.md — track upgrade as item