Page:
mergerfs + snapraid
Clone
33
mergerfs + snapraid
nunks edited this page 2026-03-21 16:07:46 -03:00
Table of Contents
- Sumario
- Documentacao relevante
- Duvidas para sanar
- Passo a passo
- MERGERFS: Criando e montando os discos...
- Discos
- Criando os diretorios https://trapexit.github.io/mergerfs/latest/config/branches/#mount-points
- Formatando https://trapexit.github.io/mergerfs/latest/config/branches/#formatting
- Montando
- Depois de montar
- Finalmente montando o merge
- SNAPRAID: Criando e montando os discos...
Sumario
Documentacao relevante
- mergerfs e hardlinks pensando no *arr stack
- mergerfs: quickstart
- https://wiki.archlinux.org/title/SnapRAID
- https://zackreed.me/posts/modern-snapraid-maintenance-script/
Duvidas para sanar
- Qual o melhor fs pra mergerfs? EXT4? XFS?
- QUal o melhor fs pra SnapRAID parity?
Passo a passo
- LER AS DOCUMENTAÇÕES
- Instalar a placa SATA e o novo HDD de 10GB (hardware)
- Formatar o
/mnt/SINKBAKe tambem o novo HDD - Montar o
SINKBAKe o novo HDD em/mnt/storage/disks/data-drive-1edata-drive-2 - Instalar o mergerfs e configurar pra fazer merge dos dois
data-drive*acima, em modo que preserve hardlinks - Montar o novo filesystem mergeado em
/mnt/storage/data - Fazer testes de hardlink "simulando" o radarr: criar um diretorio de destino e um de download. Gerar um arquivo no diretorio de download e fazer link pra dentro do diretorio de destino
- Estando tudo testado a contento, fazer rsync do
/mnt/SINKpara/mnt/storage/datae deixar o mergerfs distribuir tudo o que precisar - Testar apontamento do *arr stack para os novos mounts em
/mnt/storage/data/media - Estando tudo certo e garantido q nao precisa mais de rsync (FAZER UM ULTIMO SYNC PRA GARANTIR), seguir com o procedimento do SnapRAID:
- Formatar o
/mnt/SINKcomo paridade de SnapRAID e montar em/mnt/storage/disks/parity-drive-1 - Instalar o SnapRAID e configurar os
/data-drive-*e/parity-drive-1de acordo - Fazer o primeiro sync do SnapRAID
- Agendar futuros syncs
- Fim?...
MERGERFS: Criando e montando os discos...
Discos
NAME PATH SERIAL
sda /dev/sda WD-BC0AV53J
sdc /dev/sdc ZA2BNCBQ
Criando os diretorios https://trapexit.github.io/mergerfs/latest/config/branches/#mount-points
while read DEVICE COMMENT; do
MP=/mnt/storage/disks/${DEVICE};
echo $(date '+%F %T') Creating mountpoint ${MP};
mkdir -p ${MP};
chown root:root ${MP};
chmod 0000 ${MP};
chattr +i ${MP};
done <<EOF
hdd01-10T-WD-BC0AV53J
hdd02-10T-ZA2BNCBQ #sinkbak
EOF
setfattr -n user.mergerfs.branch_mounts_here /mnt/storage/disks;
Formatando https://trapexit.github.io/mergerfs/latest/config/branches/#formatting
mkfs.xfs -L WD-BC0AV53J /dev/sda
mkfs.xfs -L ZA2BNCBQ /dev/sdc
Montando
#/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
LABEL=WD-BC0AV53J /mnt/storage/disks/hdd01-10T-WD-BC0AV53J auto nofail 0 2
LABEL=ZA2BNCBQ /mnt/storage/disks/hdd02-10T-ZA2BNCBQ auto nofail 0 2
mount -a
Depois de montar
for D in /mnt/storage/disks/hdd*; do
chown root:root ${D};
chmod 1777 ${D};
setfattr -n user.mergerfs.branch ${D};
getfattr ${D};
done;
Finalmente montando o merge
#fstab
/mnt/storage/disks/hdd* /mnt/storage/data mergerfs cache.files=off,category.create=pfrd,func.getattr=newest,dropcacheonclose=false 0 0
SNAPRAID: Criando e montando os discos...
Discos
sdb /dev/sdb ZTN19R59
Criando os diretorios
mkdir -p /mnt/storage/parity/hdd01-10T-ZTN19R59 #sink
Formatando
mkfs.xfs -L ZTN19R59 /dev/sdb
Montando
#fstab
LABEL=ZTN19R59 /mnt/storage/parity/hdd01-10T-ZTN19R59 auto nofail 0 2
Configurando
# /etc/snapraid.conf
parity /mnt/storage/parity/hdd01-10T-ZTN19R59/snapraid.parity
content /var/snapraid/snapraid.content
content /mnt/nvme1/snapraid.content
content /mnt/storage/disks/hdd01-10T-WD-BC0AV53J/snapraid.content
content /mnt/storage/disks/hdd02-10T-ZA2BNCBQ/snapraid.content
data d1 /mnt/storage/disks/hdd01-10T-WD-BC0AV53J
data d2 /mnt/storage/disks/hdd02-10T-ZA2BNCBQ
exclude /media/transmission/
exclude $RECYCLE.BIN/
exclude .Trash-*/
exclude *.unrecoverable
exclude /tmp/
exclude /lost+found/
exclude downloads/
exclude *.!sync
exclude .AppleDouble
exclude ._AppleDouble
exclude .DS_Store
exclude ._.DS_Store
exclude .Thumbs.db
exclude .fseventsd
exclude .Spotlight-V100
exclude .TemporaryItems
exclude .Trashes
exclude .AppleDB
autosave 250
Primeiro sincronismo
snapraid sync
Profilaxia a ser agendada
snapraid diff
snapraid sync
snapraid scrub
***
snapraid diff
snapraid sync
snapraid scrub -p new
snapraid scrub -p 100 -o 20
#Just in case is something went wrong
snapraid -e fix
snapraid -p bad scrub
snapraid touch
snapraid smart
snapraid status
snapraid down