2025.05.09 - Synology DS414 → TrueNAS

Intro

Po ostatnich ruchach Synology w zakresie obsługi dysków w modelach Plus i przechodzenia na model biznesowy doszedłem do wniosku, że dam szansę NAS'owi DIY.

Wybór padł na TrueNAS Scale. Celem jest zrobienie z istniejących komponentów NAS'a do backupu istniejącej jednostki Syno DS414.

Przygotowanie teoretyczne

Po obejrzeniu kilku(nastu) filmików o TrueNAS i ZFS wybrałem następującą konfigurację i podział dysków:

Jeśli dobrze zrozumiałem to powinno to dać 2x IOPSy (w uproszczeniu każdy VDEV ma IOPSy pojedynczego dysku) i odporność na awarię dwóch dysków w dwóch grupach. Oczywiście jeśli strzelą dwa dysku w jednym VDEV'ie to papa dane :)

Gdzie to zmieścić?

Po zebraniu gratów przyszła kolej na ważne pytanie: gdzie to wszystko zmieścić? Nie chciałem tworzyć kolejnego klockowantego PC'a, tylko coś co w minimalnym stopniu przypominałoby domowego NAS'a.

Wymagania były następujące:

  • obudowa na dyski modułowa, żeby można było w przyszłości dodać ich więcej (na początek 6 HDD)
  • wykorzystanie standardowej płyty micro-atx
  • opcjonalnie montaż w racku 10" lub 19"
  • opcjonalnie umieścić zasilacz SFX obok dysków żeby zmieścić się w racku 10"

W trakcie przeszukiwania internetu oraz prototypowania własnej obudowy do druku 3D trafiłem na piękny projekt DIY :)

3D Printed NAS
3D Printed NAS

https://www.youtube.com/watch?v=NXIu-B52WPU

Cały projekt dostępny jest na Githubie https://github.com/sb-ocr/3d-printed-nas. Zdecydowałem się na pewno wykorzystać montaż dysków, oraz może montaż na płytę główną. Reszta obudowy będzie prosta do zaprojektowania więc ogarnę to w Fusion 360.

Drukowanie

Obudowa od Salim'a nie nadaje się do użytku przez mnie 1:1. Po pierwsze cała elektronika jest inna (micro-ATX zamiast ZimaBoard), a po drugie nie mam tak dużej drukarki żeby części drukować w jednym kawałku. Prusa Mini ma pole wydruku 18x18cm, Bambu 25x25cm.

Niektóre części udało się upchnąć, ale reszta musiała być pocięta na mniejsze kawałki. Największym problemem jest drive-bay - tam gdzie zamontowana jest przejściówka do SATA - na nią działają siły wpinania i wyrywania dysku. Na szczęście z pomocą przyszło Allegro i wspaniała, chińska zgrzewarka do plastiku :)

Zgrzewarka do plastiku
Zgrzewarka do plastiku

Po wydrukowaniu pierwszych elementów, efekt był zadowalający.

Drive-bay
Drive-bay
Drive-bay
Drive-bay
Sanki
Sanki
1/2 Drive-bay druk
1/2 Drive-bay druk
Inserty M3
Inserty M3

Backup Syno do TrueNAS

Backup będzie z wykorzystaniem rsync inicjowany po stronie TrueNAS.

Konfiguracja Synology

Wszystkie operacje wykonywane były na DSM 7.1.

Najpierw trzeba włączyć rsync po stronie Syno.

Panel sterowaniaUsługi plikówrsync

Właczenie usługi rsync
Właczenie usługi rsync

Następnie trzeba utworzyć użytkownika z prawami tylko do odczytu do backupowanych zasobów.

Tworzenie użytkownika
Tworzenie użytkownika
Tworzenie użytkownika
Tworzenie użytkownika
Ustawienie uprawnień do plików
Ustawienie uprawnień do plików
Ustawienie uprawnień do aplikacji
Ustawienie uprawnień do aplikacji

Następnie trzeba się zalogować via ssh na Synology i dodać klucz dla użytkownika truenas oraz włączyć logowanie po kluczu w pliku /etc/ssh/sshd_config

PubkeyAuthentication yes

Test rsync

Teraz można przetestować działanie rsync'a z komputera.

Wygenerowałem z PuttyGen'a nowy klucz Ed25519 i dodałem authorized_keys po stronie Syno. Następnie w konfiguracji klienta .ssh/config dodałem następujące wpisy, żeby nie musiec podawać ich za każdym razem:

Host ds414
  IdentityFile ~/.ssh/truenas
  # moje Syno bez dodania algorytmu nie znajdowało wspólnego języka
  PubkeyAcceptedAlgorithms +ssh-ed25519
  User truenas

Uworzyłem testowy plik z filtrami

- @eaDir
+ /my_files/
+ /my_files/**
- *

Następnie wykonałem kilka testów z różnymi parametrami. Docelowo będzie to chyba wyglądać tak:

$ rsync -e "ssh -p 2222" -avPW --delete --no-z -f '. /tmp/.rsync-filter' truenas@synology:/volume1/ /tmp/volume1/

receiving incremental file list
./

sent 90 bytes  received 252 bytes  228.00 bytes/sec
total size is 59,135,637  speedup is 172,911.22 (DRY RUN)

Konfiguracja TrueNAS

Testowo podłączyłem jeden dysk i utworzyłem data-set

test-dataset
test-dataset

Następnie w panelu Credentials -> Backup credentials wygenerowałem nowy klucz dla połączenia do Syno i dodałem go na DS414 dla użytkownika truenas

Oraz skonfigurowałem SSH Connection

Przyszła pora na skonfigurowanie backupu. W panelu Data Protection -> Rsync Tasks dodałem nowego job'a. Najważniejsze ustawienia to ścieżki oraz kierunek połączenia na Pull

Parametry oraz harmonogram na pewno będą się zmieniać z czasem, ale na początek dałem coś takiego

Po zalogowaniu się na TrueNAS via SSH utworzyłem wymagane katalogi na test-dataset i puściłem joba z ręki. Job zaczął się kręcić, a na dysku pojawiać pliki.

Linki