33
mergerfs + snapraid
nunks edited this page 2026-03-21 16:07:46 -03:00

Sumario

Documentacao relevante

Duvidas para sanar

  • Qual o melhor fs pra mergerfs? EXT4? XFS?
  • QUal o melhor fs pra SnapRAID parity?

Passo a passo

  1. LER AS DOCUMENTAÇÕES
  2. Instalar a placa SATA e o novo HDD de 10GB (hardware)
  3. Formatar o /mnt/SINKBAK e tambem o novo HDD
  4. Montar o SINKBAK e o novo HDD em /mnt/storage/disks/data-drive-1 e data-drive-2
  5. Instalar o mergerfs e configurar pra fazer merge dos dois data-drive* acima, em modo que preserve hardlinks
  6. Montar o novo filesystem mergeado em /mnt/storage/data
  7. 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
  8. Estando tudo testado a contento, fazer rsync do /mnt/SINK para /mnt/storage/data e deixar o mergerfs distribuir tudo o que precisar
  9. Testar apontamento do *arr stack para os novos mounts em /mnt/storage/data/media
  10. Estando tudo certo e garantido q nao precisa mais de rsync (FAZER UM ULTIMO SYNC PRA GARANTIR), seguir com o procedimento do SnapRAID:
  11. Formatar o /mnt/SINK como paridade de SnapRAID e montar em /mnt/storage/disks/parity-drive-1
  12. Instalar o SnapRAID e configurar os /data-drive-* e /parity-drive-1 de acordo
  13. Fazer o primeiro sync do SnapRAID
  14. Agendar futuros syncs
  15. 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