Synology NAS durch Debian Homeserver ersetzen

Warum Debian? Was muss ich vorher wissen? Wo geht's nach der Installation weiter?
Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 25.01.2020 16:02:35

Die Synology kann kein ZFS, damit fällt das dort schon mal weg.
Man könnte natürlich überlegen, ob man die USB Platte als ZFS-Pool formatiert und dann ZFS send nutzt. Aber dann müsste ich drei verschiedene Backupsysteme lernen...
Ich dachte ja ursprünglich, ich könnte einfach Duplicati nutzen, aber das ist wohl für große Datensätze nicht zu gebrauchen.

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 25.01.2020 16:41:51

@Lord_Carlos: Ich habe beim Arch-Wiki das so verstanden, dass man entweder ein Key oder ein Passwort nutzen, kann man auch beides machen? Bei LUKS geht das ja. Mit Keys ist es praktischer mit dem automatischen boot. Aber ich habe gerne ein Password, welches ich mir merke, damit ich im Zweifel immer noch an die Daten dran komme, wenn das System zerschossen ist.

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 25.01.2020 17:29:02

Weis ich leider nicht.
Ich habe vom key ein backup gemacht.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 25.01.2020 23:11:05

Ich denke, ich bleibe bei luks.

So würde ich das ganze einrichten. Ganze HDD als cryptdevice mit komfortablen Namen, Entschlüsselung mit keyfile und komprimierung. Mal schauen, ob das mit dem auto-snapshot-skript so klappt. Scrubb einmal im Monat.

##ZFS Pool Creation and Configuration
###Preparation of Disks
Write down the serial numbers of the disks and note in which bay they are installed.

####Checking for quality
Run badblocks on the disks to be sure they are ok. Because they are big -b 4096 option is needed. All partitions and files will be destroyed.

badblocks -b 4096 -wsv /dev/sdx

####Create luks containers for encryption
Since ZFS natice encryption still has some drawbacks, luks containers are used. All disks will be encrypted as a hole, and decrypted on boot up via a keyfile.

Create the keyfile:

dd if=/dev/urandom of=/root/key bs=1024 count=4
chmod 0400 /root/key

Check the ids of the disks by:
ls /dev/disk/by-id

One should recognize the serial numbers. The cryptdevices get a name according to their bay like cryptbay1. Repeat the following for all pool disks:
1. cryptsetup luksFormat /dev/disk/by-id/<disk>
enter <password>

2. Check if it worked by opening the container with:
cryptsetup open --type luks /dev/disk/by-id/<disk> crypthome
3. Add the key for decryption and create an entry in crypttab:
nano /etc/crypttab
add "cryptbay<number> /dev/disk/by-id/<disk> /root/key luks"
cryptsetup luksAddkey /dev/disk/by-id/<disk> /root/key

4. Reboot to see if it's working properly.

###Creation of pool
Create the pool of 2 striped mirrors:
zpool create -o ashift=12 -O compression=lz4 -O relatime=on pool \
mirror \
cryptbay1 \
cryptbay2 \
mirror \
cryptbay3 \
cryptbay4

###Creation of datasets
The following datasets have to be created:
* tick (ticks stuff)
* trick (tricks stuff)
* track (track' stuff)
* media (music, movies, and tvshows)
* fotos (photographs and home videos)
* tmp (tmp)

zfs create pool/tick
zfs create pool/trick
zfs create pool/track
zfs create pool/media
zfs create pool/fotos
zfs create pool/tmp

###Automatic Snapshots
Use the zfs-auto-snapshot script.

cd /root
wget https://github.com/zfsonlinux/zfs-auto- ... 2.4.tar.gz
tar -xzf 1.2.4.tar.gz
cd zfs-auto-snapshot-upstream-1.2.4
make install

###Automatic Scrubbing
Open crontab with:
crontab -e
Enter the following:
0 2 1 * * /sbin/zpool scrub pool

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 26.01.2020 11:32:22

Debianzfs-auto-snapshot ist im debian repo und legt automatisch alle cron jobs an. Aber pass auf, sobald du es installierst faengt es gleich damit an stuendliche, tagliche, wochentliche etc. snapshots zu machen.

Scrubbing wird automatisch zu den cron hinzugefuegt.

Dataset mit grossen Daten, Videos, Music vielleicht grosse Bilder von Camera wuerde ich recordsize gross machen.
sudo zfs set recordsize=1M pool/media

Dedup sollte aus sein, nur um sicher zu sein habe ich nochmal ein sudo zfs set dedup=off tank0 gemacht.

So ganz 100% verstehe ich es nicht, aber dies hier wird wohl empfehlen:
sudo zfs set xattr=sa tank0
sudo zfs set dnodesize=auto tank0

https://www.reddit.com/r/zfs/comments/8 ... dium=web2x
und https://wiki.debian.org/ZFS#Advanced_Topics

In deinen Notizen wuerde ich compression=on schreiben. Momentan das gleiche wie compression=lz4 aber wenn du in ein paar Jahren nochmal ein pool erstellst, kannst du sicher sein das du ein aktuellen cpression algo bekommst.
Edit: Wenn du compression=on machst, dann wird immer der default genommen. "when the default changes, all new writes will use the new algo, but pre-existing data will remain as-is"
Ob das gut oder schlecht ist kann ich nicht sagen.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 26.01.2020 21:17:52

Vielleicht ist das Tutorial von Aaron Toponce https://pthree.org/2013/01/02/zfs-admin ... roperties/ etwas out of date. Ich habe halt das zum Einlesen und Planen genommen. Dort steht zur Recordsize:

recordsize: Specifies a suggested block size for files in the file system. This property is designed solely for use with database workloads that access files in fixed-size records. ZFS automatically tunes block sizes according to internal algorithms optimized for typical access patterns. The size specified must be a power of two greater than or equal to 512 and less than or equal to 128 KB. Changing the file system's recordsize affects only files created afterward; existing files are unaffected. This property can also be referred to by its shortened column name, "recsize".

Damit wäre doch 1M out of range?

Bei Compression nehme ich lieber das lz4, was auch der default ist. Der Ausblick, dass sich der Default ändert und ich das nicht mitkriege und dann einfach damit automatisch sich was am Pool ändert ist eher nicht so toll.

Bezüglich dedup: das sollte ja auch der default sein, aber klar vlt. nehme ich es zur Sicherheit noch mit rein.

Bezüglich xattr da steht bei Toponce es gäbe nur on und off. Beim Arch-Wiki gibt es da auch dieses sa. dnodesize wird gar nicht thematisiert. Muss ich mir mal durchlesen. Ich habe von xattr vor allem im Zusammenhang mit ACL gelesen, die ich ja eignentlich gar nicht nutzen will.

Vielen Dank fürs Feedback.

Edit: Habe das hier gelesen https://jrs-s.net/2019/04/03/on-zfs-recordsize/ und denke mit Filmen, Musik, Fotos, Scans Textdokumenten usw. kann ich auch global mit -O recordsize=1M das groß setzen und es sollte passen. Die paar asci-Files etc. sollten da dann auch passen.

xattr=sa bringt wohl was für performance, macht aber probleme sollte man mal nicht zol nutzen wollen. Letzteres ist für mich kein Problem.

Damit wäre ich dann bei:
zpool create -o ashift=12 -o autoexpand=on -O recordsize=1M -O xattr=sa -O dnodesize=auto -O compression=lz4 -O dedup=off-O relatime=on pool \
mirror \
cryptbay1 \
cryptbay2 \
mirror \
cryptbay3 \
cryptbay4

Das ich das snapshot tool aus den quellen installieren kann ist super, beim suchen in den Quellen hatte ich nur was von zol und zed gelesen.

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 26.01.2020 21:49:43

Hier ein 2019 Eintrag zu recordsize: https://jrs-s.net/2019/04/03/on-zfs-recordsize/

xattr=sa hat kein Nachteil, es sei denn du willst es auf nicht linux systemen mounten.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 26.01.2020 22:10:29

^^ Siehe edit ;).

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 01.02.2020 22:33:57

Die ganze Server-Hardware ist bestellt, langsam wirds ernst :).

Mal ne Frage zur Installation von ZFS. Auf der ZoL Seite wird für Debian vorgeschlagen das so zu machen:
nano /etc/apt/sources.list.d/buster-backports.list
deb http://deb.debian.org/debian buster-backports main contrib
deb-src http://deb.debian.org/debian buster-backports main contrib

nano /etc/apt/preferences.d/90_zfs
Package: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux spl-dkms zfs-dkms zfs-test zfsutils-linux zfsutils-linux-dev zfs-zed
Pin: release n=buster-backports
Pin-Priority: 990

apt update
apt install --yes dpkg-dev linux-headers-$(uname -r) linux-image-amd64
apt-get install zfs-dkms zfsutils-linux

Da wird also ein pinning vorgenommen. Im Wiki wird geschrieben, man solle sich das gut überlegen. Ist das wirklich notwendig oder würde es auch reichen, einfach backports main hinzuzfügen und zfs-dkms und zfsutils-linux zu installieren?

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 01.02.2020 23:30:07

Ich habe nichts mit pinning gemacht. Kenne mich da nicht so aus.
Aber ja, ich benutzte auch backports.

Aber vor wenigen Tagen das hier gefunden. Eigentlich nur dazu damit nicht immer der neuste Kernel installiert wird der ggf nicht mit ZFS zusammen passt.
ZFS wurde von mir auskommentiert.

Code: Alles auswählen

#!/bin/bash

declare -a ZFS KERNEL

#ZFS=(spl spl-dkms zfs-dkms zfsutils-linux libnvpair1linux libuutil1linux libzfs2linux libzpool2linux)

KERNEL=(linux-image-amd64 linux-headers-amd64)

apt-get update

#apt-get install "${ZFS[@]}"
apt-get install "${KERNEL[@]}"

apt-mark hold "${KERNEL[@]}" #"${ZFS[@]}"
ZFS 0.8.3 ist jetzt in Testing :3 Freu mich schon wenn es in Backports ist.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 02.02.2020 17:05:39

Ah ok, ich habe noch mal nachgelesen und anscheinend sorgt das pinning genau dafür, dass bei einem update die entsprechenden Pakete aktuell gehalten werden.

So ganz leicht habe ich auch überlegt, Debian Sid zu nutzen und mir das ganze mit den Backports zu sparen. Mit arch habe ich eigentlich noch keine schlechten Erfahrungen mit RR gemacht. Kann natürlich sein, dass es mit Sid anders ist, weil es nicht als RR gedacht ist, sondern als eine Entwicklungsversion.

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 06.02.2020 13:52:59

Oh man, mir ist aufgefallen, dass ich mich noch nicht wirklich mit ZED befasst habe.
Das wird in vielen Anleitungen auch spärlich behandelt.

Bislang habe ich im Arch Wiki zwei Dinge gefunden, für die ich ZED gebrauchen kann.
1. Das automatische Mounten beim Boot.
2. Für die Email Benachrichtigungen, bei Events.

Beides versuche ich mir gerade zu erschließen.

Ansonsten sollten Morgen oder Übermorgen die letzten Teile kommen und der aktuelle Planungsstand sieht so aus:
ZFS Pools und Datasets: Habe ich, glaube ich, final.
ZED: Habe ich etwas übersehen, wie man sieht.
Benutzer und Gruppen: auch final.
Samba: Hier habe ich einen Entwurf, der durch ein paar Test Dateien und ein paar Test mounts mit verschiedenen Nutzern in kurzer Zeit nach Einrichtung zeigen sollte, ob das funktioniert.
TVHeadend, easyepg und emby: Die Anleitungen für Einrichtungen sind soweit vorhanden und sollten keine großen Probleme machen. Emby Einrichtung definiere ich beim machen aus.
Backups: Ich habe etwas mit Borg rumgespielt und angefangen mir Gedanken über bash Skripte für die Automatisierung zu machen. Da habe ich einige Fragen, aber komme nur schleppend voran. Habe auf Reddit schon mal nach Hilfe gesucht, aber so wirklich rumgekommen ist dabei nichts. Vielleicht mache ich hier noch mal einen Thread auf.
Monitoring: Ich glaube, wenn ich ZED am laufen habe und auch Smartchecks bekomme, reicht mir das fast. Der Schlüssel ist wohl Emailversand hinzubekommen. Meine Backups möchte ich dann auch damit monitoren. Ist aber auch noch recht unklar.
UPS Shutdown: Habe ich auch irgendwie aus den Augen verloren.

Ich hab echt unterschätzt, wie viel Arbeit dahintersteckt und wie viel ausdefiniert werden muss. Aber auch, wenn noch einiges offen ist, habe ich doch schon nen großes Stück geschafft und zumindest so viel geklärt, dass ich das System erst mal installieren und die wichtigsten Komponenten aufsetzen kann. Bis es aber meine NAS wirklich produktiv ersetzen kann und ein kompletter Datentransfer Sinn macht, vergehen wohl noch einige Tage.

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 06.02.2020 14:04:58

Unter Debian wird ZFS mit systemd services gemountet.
Aber fuer email Benachrichtigungen bei Scrub oder Fehlern nimmst du ZED. Viel einstellen muss man da nicht.

Man muss aber erstmal Debian dazu bewegen Emails zu versenden. Ich hatte da so meine Probleme, guck mal den letzten Beitrag hier: viewtopic.php?f=8&t=175245&hilit=email#p1221052 (Ich versende via gmail)

Wenn der email kack eingerichtete ist, kannst du den auch fuer SMART benutzten. Da muss nur eine Zeile angepasst werden AFAIK.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Simaryp
Beiträge: 86
Registriert: 29.11.2019 14:09:49

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Simaryp » 06.02.2020 14:37:50

Und muss ich den mount noch konfigurieren oder wird der automatisch angelegt, wenn ich den Pool anlege, so wie anscheinend auch die Cronjobs automatisch angelegt werden?

Deinen Post zu Emails habe ich nicht vergessen, aber ich will lieber nicht gmail nutzen.
Ich habe hier ne Anleitung gefunden https://www.reddit.com/r/homelab/commen ... s_for_zfs/
Aber bevor ich das einfach kopiere, will ich es noch besser verstehen.

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Synology NAS durch Debian Homeserver ersetzen

Beitrag von Lord_Carlos » 06.02.2020 14:48:26

Fuer automounts muss du nichts machen wenn ich das richtig in Erinnerung habe.

Exim ist bei Debian schon installiert. Eigentlich musst du es nur beibringen richtige emails zu versenden.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Antworten