Wir wissen inzwischen, dass Windows 98se und andere alte Betriebssysteme auf aktuelle NAS Systeme nicht vernünftig zugreifen können.
Daher möchte ich hier eine kleine Anleitung zusammenschreiben wie man einen funktionierenden Fileserver selber baut.
ACHTUNG: ES WERDEN VIELE SICHERHEITSFEATURES DEAKTIVIERT. NUR IN SICHEREN NETZWERKEN NUTZEN UND AUF EIGENES RISIKO!
Benötigte Hardware / Demo Hardware:
Generell gilt, es ist fast egal welche Hardware ihr nutzt. An sich reicht ein altes Mainboard und eine alte gammel IDE HDD um dieses / ein ähnliches Setup aufzusetzen, allerdings gibt es ein paar Empfehlungen:
Empfehlungen:
64Bit Betriebssystem:
ZFS kann mit einem 32bit Betriebssystem arbeiten, da es allerdings vom grundsätzlichen Design auf 64bit ausgelegt ist und eine menge RAM nutzt ist ein 64bit System von Vorteil.
Ich werde hier alles mit 64bit machen.
ECC-Ram:
ZFS nutzt Checksummen um die Datenintegrität sicher zu stellen. Allerdings ist es (genau wie alle anderen Dateisysteme) anfällig für Fehler im Arbeitsspeicher. Daher ist es sinnvoll wann immer es geht ECC Speicher einzusetzen. Dies heist allerdings nicht, dass man lieber ein EXT4/NTFS nimmt wenn man keinen ECC Ram hat. Selbst in dem Fall bietet ZFS eine bessere Sicherheit.
1GB RAM pro TB Storage:
Diese Faustregel ist schwierig. Ich selbst habe noch nicht ausreichend Tests gemacht und im Netz finden sich epische Troll fights hierzu.
Grundsätzlich ist es sinnvoll so viel RAM wie möglich im System zu haben. Allerdings ist dies auch eine Frage wohin wir wirklich wollen.
Ein Firmenserver wo 1000 Leute rund um die Uhr drauf zugreifen, wo z.b. eine Datenbank und ein Fileserver drauf rennt braucht weit mehr Arbeitsspeicher fürs Storage als ein kleiner Fileserver der nur 1-2 Leute Bedient. ZFS nutzt den RAM zum einen als Datencache und zum anderen auch für Metadaten.
2 SSDs mit Power-loss Protection:
Auch hier gilt man kann selbstverständlich auch auf eine einzelne SSD setzen oder es ganz weglassen. Wir wollen allerdings auf Nummer sicher gehen.
Diese beiden SSDs sollten in unserem Beispiel mindestens 10GB pro TB Storage haben. Man kommt allerdings auch gut mit kleineren aus, sollte man einige später genannte Features weglassen wollen. Power-loss Protection ist hier Wichtig, da wir all unsere Metadaten auf der SSD liegen haben. Sollten wir keine Power-loss Protection haben, kann es zu Datenverlust kommen. Beispiel A: SSD bearbeitet grade ihre Internen Metadaten ---> kompletter Datenverlust auf der SSD ---> Metadaten fürs Storage weg ---> Datenverlust. Beispiel B: SSD bestätigt Schreibvorgänge obwohl sie noch im Cache liegen ---> Datenkorruption / evlt kann man die zuletzt geschriebenen Daten nicht mehr vom Storage lesen oder Datenverlust.
Generell gilt hier der Spruch: Sollten einem seine Daten wichtig sein, immer auf Power-loss Protection achten bei SSDs, auch ohne ZFS....
2 HDDs:
Man kann natürlich auch ein reines SSD Storage bauen... Dennoch haben heutzutage Festplatten immer noch die besten Preise / GB. Und wir werden sämtliche Nachteile für ein home Storage mit Festplatten hier erschlagen, ob ihr es glaubt oder nicht.
Optimal: 1 sehr schnelle oder billige U.2 / M.2 SSD:
Je nachdem wie ihr das System ans Netzwerk anbindet, sollte diese SSD schneller im Lesen sein als euer Netzwerk. z.b. Sollte bei einem 10gbit netzwerk die SSD mindestens 1GB/s Lesen können. Weiterhin ist hier eine hohe TBW von Vorteil.
Wir nutzen folgende Hardware zum Testen:
X8SIL-F
Intel X3450
32GB Reg ECC
2 Intel 320 120GB SSDs
2 HGST HE10 10TB
1 Intel X540 10G Netzwerkkarte
1 Intel P4610 1.6TB
Lass uns doch mal ansehen wie unsere Benchmark werte aussehen. Fangen wir mit den SSDs an:
HDTune_Benchmark_INTEL_SSDSA2BW120G3H.png
Bei den SSDs ist die sequenzielle Lese und Schreibgeschwindigkeit für uns eigentlich zweitrangig. Diese können aber später relevant werden.
Hier haben wir Werte ab 4KB Das sind etwa 98mb/s beim Lesen und 78mb/s beim Schreiben. Je nachdem wie wir später das Storage aufsetzen kann es hier beim Schreiben zu einem irrelevanten Bottleneck kommen. Allerdings liefern uns die SSDs 260mb/s beim Lesen. Was schon mal für uns voll ausreichend ist.
Nach 4KB brechen die IO/s zusammen. Aber für uns sind nur die 4KB IO/s interessant.
as-ssd-bench INTEL SSDSA2BW12 17.12.2022 22-24-45.png
Noch einen AS SSD benchmark zum Schluss. Ich Wette ihr habt schon weit bessere Ergebnisse gesehen. Allerdings ist dies für unseren Anwendungsfall mehr als ausreichend.
Was machen unsere HDDs:
HE102.jpgas-ssd-bench ATA HGST HUH7210 18.12.2022 16-55-54.png
Wenigstens gewinnen die SSDs beim Random IO und den Zugriffszeiten
Lass uns mal Kopieren:
HE101.jpgHDTune_Benchmark_ATA_____HGST_HUH721010AL.png
HDTune misst nur die ersten 2 TB, dennoch haben wir einen Durchsatz von etwa 220 MB/s.
Wir sind also mehr als schnell genug um ein 1gb Netzwerk auszulasten. Ein 10gbit Netzwerk wird uns allerdings Probleme machen. Ich gehe davon aus, dass wir Später mit 200MB/s schreiben und mit 400-500 MB/s lesen können.
Sehr wichtig ist allerdings, dass man auf die verbaute Hardware achtet. Der Intel Chipsatz den wir hier verbaut haben hat ein kleines Problem:
Wir haben beim SATA Controller nur eine Bandbreite von etwa 760MB/s. Solltet ihr wie ich auch ein 10g Netzwerk zuhause haben, und hier 6 Platten im Raid 6 nutzen wollen, habt ihr ein Problem....Für unsere Testes reicht es.
Wir nutzen folgende Software hierzu:
Debian 11
ZFS + Tools
Samba
Lass uns mal mit dem Setup beginnen:
Wir nutzen ein Debian 11 in diesem Beispiel, dieses ist mit eine der besten Linux Distributionen, wenn es um Zuverlässigkeit und Einfachheit geht.
Debian nutzt nicht die aktuellste Software, da es eine lange Testphase für Pakete gibt. Ihr könnt gerne andere Betriebssysteme testen. Allerdings werden wir hier keinerlei Diskussionen dulden ob Debian oder Distro XYZ besser ist. Fakt ist einfach Debian ist für uns hier am besten, da die Anleitung mit Debian arbeitet.
Hier mal das Setup in Screenshots:
screenshot_20221102_204001.png
screenshot_20221102_204137.png
Englisch ist eine Schöne Sprache. Wir werden hier alles in Englisch machen, Ich könnt auch Deutsch wählen, davon kann ich euch nicht abhalten. Wenn ihr dies tut kann ich euch allerdings ggf nicht helfen
screenshot_20221102_204216.pngscreenshot_20221102_204235.pngscreenshot_20221102_204302.pngscreenshot_20221102_204357.pngscreenshot_20221102_204422.pngscreenshot_20221102_205309.png
Hostnamen solltet ihr einen eintragen, welcher in euer Namensschema passt.
screenshot_20221102_205353.pngscreenshot_20221102_205447.png
Ich denke es ist klar, dass root hier nur ein demo Passwort ist und nicht genutzt werden sollte.
screenshot_20221102_224803.pngscreenshot_20221102_224823.pngscreenshot_20221102_224848.pngscreenshot_20221102_224946.png
Wir nutzen die ganze Festplatte und lassen LVM weg.
screenshot_20221102_225010.pngscreenshot_20221102_225026.png
Wir packen alle Daten auf eine Partition. Das ist für uns vollkommen ausrechend. Die anderen Optionen haben auch ihren Sinn und Zweck, z.b. wenn irgendeine logdatei under /var/log voll läuft ist /home und so weiter nicht betroffen.
screenshot_20221102_225053.png
screenshot_20221102_225124.png
Hier müssen wir eigentlich auf Ja drücken, tun wir dies nicht wiederholt sich alles von vorne:
screenshot_20221102_225144.pngscreenshot_20221102_225205.pngscreenshot_20221102_230630.pngscreenshot_20221102_230648.pngscreenshot_20221102_230702.pngscreenshot_20221102_230714.pngscreenshot_20221102_231339.pngscreenshot_20221102_231430.png
So anhaken wie hier zu sehen. Wir brauchen keine Desktop Umgebung!
screenshot_20221102_232308.pngscreenshot_20221102_232324.pngscreenshot_20221102_232336.pngscreenshot_20221102_232854.png
Damit haben wir Debian Installiert. Jetzt kommt die Installation und das Einrichten von ZFS