- Fixed 4 broken markdown links (bad relative paths in See Also sections) - Corrected n8n port binding to 127.0.0.1:5678 (matches actual deployment) - Updated SnapRAID article with actual majorhome paths (/majorRAID, disk1-3) - Converted 67 Obsidian wikilinks to relative markdown links or plain text - Added YAML frontmatter to 35 articles missing it entirely - Completed frontmatter on 8 articles with missing fields Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
---
|
|
title: "SnapRAID & MergerFS Storage Setup"
|
|
domain: linux
|
|
category: storage
|
|
tags: [snapraid, mergerfs, storage, parity, raid, majorraid]
|
|
status: published
|
|
created: 2026-04-02
|
|
updated: 2026-04-02
|
|
---
|
|
# SnapRAID & MergerFS Storage Setup
|
|
|
|
## Problem
|
|
|
|
Managing a collection of mismatched hard drives as a single pool while maintaining data redundancy (parity) without the overhead or risk of a traditional RAID 5/6 array.
|
|
|
|
## Solution
|
|
|
|
A combination of **MergerFS** for pooling and **SnapRAID** for parity. This is ideal for "mostly static" media storage (like MajorRAID) where files aren't changing every second.
|
|
|
|
### 1. Concepts
|
|
|
|
- **MergerFS:** A FUSE-based union filesystem. It takes multiple drives/folders and presents them as a single mount point. It does NOT provide redundancy.
|
|
- **SnapRAID:** A backup/parity tool for disk arrays. It creates parity information on a dedicated drive. It is NOT real-time (you must run `snapraid sync`).
|
|
|
|
### 2. Implementation Strategy
|
|
|
|
1. **Clean the Pool:** Use `rmlint` to clear duplicates and reclaim space.
|
|
2. **Identify the Parity Drive:** Choose your largest drive (or one equal to the largest data drive) to hold the parity information.
|
|
3. **Configure MergerFS:** Pool the data drives into a single mount point.
|
|
4. **Configure SnapRAID:** Point SnapRAID to the data drives and the parity drive.
|
|
|
|
### 3. MergerFS Config (/etc/fstab)
|
|
|
|
On majorhome, the pool mounts three ext4 drives to `/majorRAID`:
|
|
|
|
```fstab
|
|
/mnt/disk1:/mnt/disk2:/mnt/disk3 /majorRAID fuse.mergerfs defaults,allow_other,cache.files=off,use_ino,category.create=mfs,minfreespace=20G,fsname=mergerfsPool 0 0
|
|
```
|
|
|
|
Adjust the source paths and mount point to match your setup. Each `/mnt/diskN` is an individual ext4 drive mounted separately — MergerFS unions them into the single `/majorRAID` path.
|
|
|
|
### 4. SnapRAID Config (/etc/snapraid.conf)
|
|
|
|
> **Note:** SnapRAID is not yet active on majorhome — a 12TB parity drive purchase is deferred. The config below is the planned setup.
|
|
|
|
```conf
|
|
# Parity file location
|
|
parity /mnt/parity/snapraid.parity
|
|
|
|
# Data drives
|
|
content /var/snapraid/snapraid.content
|
|
content /mnt/disk1/.snapraid.content
|
|
content /mnt/disk2/.snapraid.content
|
|
content /mnt/disk3/.snapraid.content
|
|
|
|
data d1 /mnt/disk1/
|
|
data d2 /mnt/disk2/
|
|
data d3 /mnt/disk3/
|
|
|
|
# Exclusions
|
|
exclude /lost+found/
|
|
exclude /tmp/
|
|
exclude .DS_Store
|
|
```
|
|
|
|
---
|
|
|
|
## Maintenance
|
|
|
|
### SnapRAID Sync
|
|
|
|
Run this daily (via cron) or after adding large amounts of data:
|
|
|
|
```bash
|
|
snapraid sync
|
|
```
|
|
|
|
### SnapRAID Scrub
|
|
|
|
Run this weekly to check for bitrot:
|
|
|
|
```bash
|
|
snapraid scrub
|
|
```
|
|
|
|
---
|