03 - USB HDD + SnapRAID Sync
Date: 2025-12-22/23
System: Proxmox VE + Docker LXC (ID: 100, IP: 192.168.0.110)
π Starting State¶
- Proxmox server: Working MergerFS + SnapRAID
- disk1 (5.5TB HGST) - data
- disk2 (5.5TB HGST) - parity
- Raspberry Pi server: DEAD β
- 2 USB HDDs connected:
- disk3 (1TB) - "Filmek" label
- disk4 (2TB) - "Filmek2" label
- Docker LXC: Running, but media paths use old structure
π― Goals¶
- β Integrate USB HDDs into the MergerFS pool
- β Update SnapRAID config (3 data disks)
- β
Unify media structure (
/media/movies/hun,/media/tv/eng) - β Fix Docker application paths
- β Resolve DNS issue (RPi AdGuard Home died)
1οΈβ£ Identifying and Mounting USB HDDs¶
Check disks:¶
Result:
sdc1: 931GB, ext4, Label="Filmek"
UUID=YOUR_DISK3_UUID
sdd1: 1.8TB, ext4, Label="Filmek2"
UUID=YOUR_DISK4_UUID
Mount points and mounting:¶
mkdir -p /mnt/disk3 /mnt/disk4
mount /dev/sdc1 /mnt/disk3
mount /dev/sdd1 /mnt/disk4
df -h | grep disk
Data: - disk3: 713GB used (82% full) - disk4: 922GB used (53% full)
fstab configuration (automount):¶
Lines added:
# USB HDDs (from RPi)
UUID=YOUR_DISK3_UUID /mnt/disk3 ext4 defaults,noatime 0 2
UUID=YOUR_DISK4_UUID /mnt/disk4 ext4 defaults,noatime 0 2
Test:
2οΈβ£ Expanding the MergerFS Pool¶
Original MergerFS config:¶
New MergerFS config (3 disk pool):¶
Modified line:
/mnt/disk1:/mnt/disk3:/mnt/disk4 /mnt/storage fuse.mergerfs defaults,allow_other,use_ino,cache.files=partial,dropcacheonclose=true,category.create=mfs 0 0
Remount:¶
Result:
β 8.1TB unified pool (5.5T + 1T + 2T)
3οΈβ£ Updating SnapRAID Configuration¶
Edit SnapRAID config:¶
New configuration:
# SnapRAID Configuration
# Parity file (disk2 = 5.5TB parity)
parity /mnt/disk2/snapraid.parity
# Content files (saved in multiple locations!)
content /var/snapraid.content
content /mnt/disk1/.snapraid.content
content /mnt/disk3/.snapraid.content
content /mnt/disk4/.snapraid.content
# Data disks (3 disks in the pool)
data d1 /mnt/disk1
data d3 /mnt/disk3
data d4 /mnt/disk4
# Exclude patterns
exclude *.unrecoverable
exclude /tmp/
exclude /lost+found/
exclude *.!sync
exclude *.tmp
# Autosave
autosave 500
Run SnapRAID sync:¶
Sync result:
Scanned d1 in 0 seconds β
Scanned d3 in 3 seconds β
Scanned d4 in 14 seconds β
100% completed, 1766832 MB (1.7TB)
Duration: 2:43 (163 minutes)
Average speed: 165-239 MB/s
Everything OK β
4οΈβ£ Restructuring the Media Directory¶
Problem:¶
- disk3/disk4: Movies were directly under
/movies/and/tv/ - Goal:
/media/movies/hun,/media/movies/eng,/media/tv/hun,/media/tv/eng
Restructure (disk3):¶
mkdir -p /mnt/disk3/media
mv /mnt/disk3/movies /mnt/disk3/media/
mv /mnt/disk3/tv /mnt/disk3/media/
ls -lh /mnt/disk3/media/
Restructure (disk4):¶
mkdir -p /mnt/disk4/media
mv /mnt/disk4/movies /mnt/disk4/media/
mv /mnt/disk4/tv /mnt/disk4/media/
ls -lh /mnt/disk4/media/
Result:
disk1/media/movies/hun/ β EMPTY (new)
disk1/media/movies/eng/ β EMPTY (new)
disk3/media/movies/hun/ β 262GB movies (144 folders)
disk3/media/movies/eng/ β Movies (7 folders)
disk4/media/movies/hun/ β 231GB movies (100 folders)
disk4/media/movies/eng/ β Movies (3 folders)
Permission fix:¶
5οΈβ£ Resolving the MergerFS Merge Problem¶
Problem:¶
Reason: Empty hun/eng folders existed on disk1 β MergerFS was only showing those!
Solution:¶
# Remove empty folders from disk1
rmdir /mnt/disk1/media/movies/hun
rmdir /mnt/disk1/media/movies/eng
# tv/hun remains (LakΓ‘svadΓ‘szok series)
# Verify
ls -lh /mnt/storage/media/movies/hun/ | head -5
Result:
total 960K
drwxrwxrwx 2 100000 100000 4.0K 101.Dalmatians.1961...
drwxrwxrwx 3 100000 100000 4.0K 101.Dalmatians.1996...
... (654 Hungarian movies total!)
β MergerFS now merges the content of all 3 disks!
6οΈβ£ Docker LXC Media Visibility Problem¶
Problem:¶
# Inside LXC
pct enter 100
ls -lh /mnt/storage/media/movies/hun/ # Only 2 folders! β
# On Proxmox host
ls -lh /mnt/storage/media/movies/hun/ # 654 folders! β
Reason: The MergerFS mount was not yet ready when the LXC booted!
Solution: LXC restart¶
# On Proxmox host
pct stop 100
pct start 100
pct enter 100
# Verify
ls -lh /mnt/storage/media/movies/hun/ | wc -l
# Result: 654 β
7οΈβ£ Resolving Jellyfin Problems¶
Problem 1: Marker file conflict¶
Solution:
Problem 2: Media not visible¶
Reason: Container was still using the old path mapping!
Solution:
cd /srv/docker-compose/jellyfin
docker compose down
docker compose up -d
docker exec -it jellyfin ls -lh /media2/hun/
Result:
total 112K
drwxrwxrwx 2 root root 4.0K Ahsoka.S01...
drwxrwxrwx 12 root root 4.0K A.Kiraly.S01...
... (28+ series!) β
8οΈβ£ Resolving DNS Problem¶
Problem:¶
Result:
Temporary fix (inside LXC):¶
PROBLEM: Proxmox auto-generates this β resets after restart!
Permanent fix (on Proxmox host):¶
Change:
LXC restart:
π Final State¶
Disk usage:¶
Disk Size Used Free Use% Purpose
ββββββββββββββββββββββββββββββββββββββββββββββββ
disk1 5.5TB 7.6GB 5.2TB 1% Data (MergerFS)
disk2 5.5TB 11GB 5.2TB 1% Parity
disk3 916GB 713GB 158GB 82% Data (MergerFS)
disk4 1.8TB 922GB 818GB 53% Data (MergerFS)
ββββββββββββββββββββββββββββββββββββββββββββββββ
MergerFS 8.1TB 1.7TB 6.1TB 21% Unified pool
Media structure:¶
/mnt/storage/media/
βββ movies/
β βββ hun/ (654 movies - disk3+disk4 merged)
β βββ eng/ (12 movies - disk3+disk4 merged)
βββ tv/
β βββ hun/ (28+ series - disk1+disk3+disk4)
β βββ eng/ (6 series - disk3+disk4)
βββ downloads/
βββ books/
βββ music/
Docker compose volume mappings (updated):¶
volumes:
- /srv/docker-data/jellyfin:/config
- /mnt/storage/media/movies:/media
- /mnt/storage/media/tv:/media2:ro
SnapRAID protection:¶
- 3 data disks protected (disk1, disk3, disk4)
- Parity: disk2 (5.5TB)
- Content files: saved in 4 locations
- Sync status: OK, 1.7TB protected
β οΈ Important Notes¶
Boot order:¶
- MergerFS mount (
/mnt/storage) - LXC start (this is why a restart was needed!)
- Docker containers start
DNS strategy:¶
- At this point: Google DNS (8.8.8.8) - temporary fix
- Later: Start AdGuard Home on dedicated LXC 102 (192.168.0.111) β Done - see Doc 05
- Then: Modify LXC config:
nameserver: 192.168.0.111β Done - see Doc 05
Scrutiny problem:¶
β Does not work inside LXC (device access restricted) β Solution: Run Scrutiny on the Proxmox host
π Next Steps¶
Urgent:¶
- β Run Jellyfin library scan
- β³ Fix paths for other Docker apps (Radarr, Sonarr, etc.)
- β³ Start AdGuard Home on the new server
Later:¶
- SnapRAID automation (cronjob)
- Monitoring setup (Grafana + Prometheus)
- Finalize backup strategy
- Fine-tune network segmentation (arr_stack vs utils)
π Lessons Learned¶
What worked well:¶
β
MergerFS flexibility - easy to add new disks
β
SnapRAID scalability - smoothly scaled from 1 to 3 disks
β
ext4 filesystem - cross-platform compatibility
β
Docker compose - simple path modification
Problems and solutions:¶
β Empty folders in MergerFS β Deletion required
β LXC mount timing β Restart required
β DNS Proxmox auto-config β LXC config modification needed
β Docker caches old mounts β Compose down/up required
Session end: 2025-12-23 01:00
Document created by: Claude (Anthropic)