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:
- ASRock J3355M
- 16GB RAM
- vdev1 - 3x WD Red 3TB - RAIDZ1
- vdev2 - 3x WD Red 2TB - RAIDZ1
- zasilacz SFX 450W
- karta PCIe x1 na 4x SATA
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
racku10" lub 19" - opcjonalnie umieścić
zasilacz SFXobok 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 :)
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 :)
Po wydrukowaniu pierwszych elementów, efekt był zadowalający.
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 sterowania → Usługi plików → rsync
Następnie trzeba utworzyć użytkownika z prawami tylko do odczytu do backupowanych zasobów.
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
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
- https://www.theverge.com/news/652364/synology-nas-third-party-hard-drive-restrictions
- https://www.blackvoid.club/new-2025-synology-disk-compatibility-policy/
- https://www.truenas.com/truenas-scale/
- https://www.youtube.com/watch?v=_aACgNm8UCw
- https://www.youtube.com/watch?v=-AnkHc7N0zM
- https://www.youtube.com/watch?v=0d4_nvdZdOc
- https://www.youtube.com/watch?v=M4DLChRXJog
- https://www.youtube.com/watch?v=NXIu-B52WPU
- https://github.com/sb-ocr/3d-printed-nas
- https://www.silica.io/using-ssh-key-authentification-on-a-synology-nas-for-remote-rsync-backups/
- https://stackoverflow.com/questions/73795935/sign-and-send-pubkey-no-mutual-signature-supported