Heim-Server vs NAS oder wie gestalte ich mein eigenes Intranet.
Part 1 - Introduction
Hallo ! Willkommen !
Vor jetzt zwei Jahre fing mein altes NAS den Geist aufzugeben, die Web Oberfläche war nicht mehr erreichbar und ab und an steigte es immer wieder aus, obendrein da war nicht mehr viel Platz übrig, es war höchste Zeit, etwas neues musste her. Nur was ? Ein neues NAS ? Irgendwie hatte ich mit dem alten schlechte Erfahrungen gemacht, zu langsam, umständlich zu konfigurieren, zu eingeschränkt und wollte deshalb weg von diese Lösung.
Was blieb übrig, ich wollte nicht alles ausschließen, also begann ich in Richtung Heimserver zu suchen und ich schaute mir auch die neue NAS Lösungen an.
Schnell fande ich heraus dass, die Perfekte Lösung nicht existierte.
Bei der NAS Lösungen war es entweder preislich erreichbar aber wieder langsam und fast keine Erweiterungsmöglichkeiten, oder voll mit Erweiterungen, viel Speicher und größere CPU’s aber mit dem Preis eines High-End Spiel Computer oder weit darüber, und das ohne eine einzige Festplatte, den ich wollte auch mehr Kapazität in mein neues System. Ich hatte zu Hause ein altes Notebook herumliegen, und begann damit zu experimentieren.
Für ein neues System hatte ich mir drei Lösungen im Kopf.
- Proxmox
- FreeNAS
VmWare ESXi server
Freenas fiel von vorn herein raus, warum mich auf Freenas beschränken, wenn ich dieser auch innerhalb von vmWare oder Proxmox installieren kann.
Blieb Übrig VmWare oder Proxmox.
Diese sind so genannte Virtualisierungsplattform, also kann man, wenn einmal installiert und konfiguriert, andere Betriebssystem auf Virtuelle Computer oder Container installieren und betreiben als wären diese physische Server.
VmWare is ein sehr starkes Virtualisierungssystem, kann sogar von einer USB stick booten, aber viele Funktionen stehen nicht zur Verfügung wenn man die Freeware Version benutzt, bleibt also Proxmox, dieses Betriebssystem ist Freeware von vorn herein, man kann lediglich einen Support erwerben beim Anbieter, wenn man will oder braucht.
Ich werde euch ab jetzt zeigen, in dieser Folge und weitere wie man diese Lösung Installiert und Konfiguriert, und auch anschließend, welche Dienste nach der Installation uns zur Verfügung stehen. Anschließend werde ich euch zeigen wie man die Hardware für diesen Neuen Server plant.
Was werden wir für diese Installation brauchen
Ein Terminal Session (auf Linux oder MacOS nach Terminal suchen) auf Windows sollten Sie ein Programm wie putty oder MobaXterm benutzen
Ein USB Stick mindestens 4 oder besser 8 GB
Und den Rechner wo Sie Proxmox installieren wollen
Bevor wir zur Installation vorschreiten, möchte ich noch über die Konfiguration meiner Server sprechen. Ich habe mich zu der Zeit für folgende Komponente entschieden
Gehäuse | |
Mainboard | |
CPU | |
RAM | HyperX FURY Black HX426C16FB3K2/64 Arbeitsspeicher 64GB Kit*(2x32GB) 2666MHz |
DISK M2 Boot + SWAP + L2ARC | 2 x >Samsung MZ-V7S1T0BW 970 EVO Plus 1 TB NVMe M.2 Interne SSD Schwarz |
SATA Controller | |
HDD | 4 x WD40EFAX-68JH4N0 (4 TB NAS) |
4 x WD40EFRX-68WT0N0 (4 TB NAS) | |
2 x WDS500G1R0A-68A4W0 (500GB SSD) |
Das Gehäuse wurde ausgesucht wegen seine Größe, sehr klein trotz maximale Disk Ausbaufähigkeit, insgesamt passen 8 x 3.5″ Hotswap Disk plus 4 x 2,5″ internen Disks.
Das Mainboard habe ich ausgesucht wegen seine Internen SATA controller kapazität, 2 x M2 + 4 x SATA 3, und einen 2,5 Gb Ethernt Schnittstelle.
Der CPU bietet mit 6 Core, also 12 CPU mit hyperthreading, und der ist volkommen ausreichend, in den fast anderthalb Jahre wo ich es in Betrieb habe habe ich noch nie gesehen das die Maschine über 20-25% auslastung ging.
Für den Speicher habe ich mich für 64 GB ( nebenbei das Maximum was das Mainboard unterstützt), und bis jetzt bin ich nicht an seine Grenzen gekommen, wenn alles läuft komme ich auf ca. 85% RAM Belegung, im Durschnitt bin ich bei 50-60%.
Und jetzt sehe ich es schon kommen, was ZFS ohne ECC RAM?
Ja sehr wohl! Es macht kein Unterschied ob ich einen ZFS Filesystem benutze oder irgend ein anderen Journaling Filesystem, wenn Sie kein ECC RAM benutzen, könnten Sie aufgrund eines Speicherfehlers eine Datei verlieren, aber das wird so und so auf jeden Filesystem passieren, der einzigen Unterschied ist dass, unter ZFS, das System den Zugriff auf diese Datei verweigern wird, Sie sind dann nicht in der Lage darauf zu zugreifen in irgend eine Weise, ausser löschen, auf einen anderen Filesystem wäre die Datei genauso Fehlerhaft und konnte auch nicht geöffnet werden, aber im Notfall konnte man mit einen Binären Editor versuchen die Datei wieder her zu stellen, aber viel Spaß dabei!
Und nebenbei gesagt habe ich in die letzten zwei oder drei Jahre wo ich bei mir zu Hause ZFS benutze noch nie einen Problem damit, nur ab und zu einige read Fehler bei einer Festplatte, aber die arme ist schon 9 Jahre alt, und ich verzeihe es ihr, wenn es schlimmer wird wartet schon ein nagelneuer Disk auf ihren Job.
Dafür hat ZFS viele Vorteile die nicht bei anderen Filesysteme zu finden sind.
Aber jetzt können wir uns dran machen das Ganze zu installieren. Ich wechsle jetzt zu meinem Computer um die einzelne Schritte zu zeigen.
Part 2 – Proxmox Installation
Zuallererst brauchen wir das Betriebssystem, dafür wechsle ich in den Browser
und gebe ein : https://www.proxmox.com/de/
Da klicke ich auf Downloads und Proxmox Virtual Environment, dann ISO Images und dort klicke ich auf „Download“ für die letzte Version verfügbar (zur Zeit ist es Version 7.2-1)
Unsere Datei sollte sich jetzt in unseren Download Verzeichnis, egal ob Mac OS, Windows oder Linux.
Sie können entweder Etcher Verwenden um die ISO Datei auf den USB Stick zu kopieren oder MAC OS und Linux Benutzer können das Befehl „dd“ Benutzen.
How do I start using Etcher?
Step 1, Select the image you want to record. IMG, ISO, ZIP, DISK, GZ, RAW, and some other formats are supported.
Step 2, Select the USB drive or SD card to which you want to burn the image.
Step 3, click on the «Flash!» button to start the process. Once you click this button, Etcher will take the image you selected and burn it to the disk you selected. When this is done, it will check if everything went fine and safely remove the USB drive. It will then ask you if you want to flash the same image or a different one.

Ohne Etcher?
Zuerst einen Terminal öffnen und den diskname feststellen
MacOS ==> diskutil list
Linux ==> lsblk
Notieren Sie sich der diskname (Hier zum Beispiel /dev/sdb) Stellen Sie unbedingt sicher dass Sie den richtigen Disk auswählen, den das Programm is Gnadenlos, egal was Sie angeben es überschreibt alles.
wechseln Sie in das Downloads Verzeichnis und überprüfen zuerst das keine Partition enghängt ist, falls ja einfach einer dieser Befehle ausführen
Linux ==> umount /mountpoint
MacOS ==> diskutil unmountDISK /dev/sdb
sudo dd if=proxmox-ve_7.2-1.iso of=/dev/sdb bs=1m status=progress
Warten Sie bis die Übertragung fertig ist und dann können Sie zu euren Rechner wechseln.
Stecken Sie den USB Stick in den Rechner und Booten von diesen.
Sie sollten eine Feste IP Adresse verwenden den wir wollen später dieser Rechner einfach erreichen können.
Part 3 – Proxmox Konfiguration
Unser Proxmox Server ist jetzt installiert, es ist zwar lauffähig so wie es ist jetzt, aber uns fehlt noch unseren Disk Speicher, dieser muss jetzt konfiguriert werden, wir können den direkt vom Web Frontend machen oder mit der command line auf dem Server wo wir dann viel mehr Einstellungsmöglichkeiten haben. Es ist aber jetzt an die Zeit über unseren Storage zu denken. Ich werde mich jetzt auf die Konfiguration die ich ausgesucht habe konzentrieren.
Filesystem:
Ich habe mich für ZFS entschieden, dieses Filesystem hat fast keine Grenze nach oben, es ist erweiterbar und kann bis zu 2128 Bytes pro Pool erreichen, also um es einfach aus zu drücken, mehr als Sie es je brauchen werden.
Meine Ungebung schaut so aus, ein ITX Mini Tower von SilverStone, die SST-DS380, diese bietet Platz für acht hotswap 3,5“ Harddisks, und vier 2,5“ Disks in inneren.
Ich habe mir zuerst vier Disks mit 4TB gekauft, die ich so konfiguriert habe:
Also äquivalent zu einen RAID5 Konfiguration bei herkömmlichen Systeme.(Bedeutet hier dass wir von vier Festplatten drei für Dateien verwenden können plus/minus ein Paar MB also hier ca. 12 TB von den möglichen 16 TB, also 3 Festplatten, die restliche Festplatte ist reserviert für Parität (Sicherheit). Eigentlich ist diese Parität verteilt über die 4 Festplatten, aber später dazu. Das habe ich wie folgt konfiguriert.
Config:
NAME
data
RAIDZ1
sda
sdb
sdc
sdd
Zuerst habe ich die Physische Blocksize von meine Festplatten festgestellt.
Das geht ganz einfach mit folgenden Befehl
Zuerst öffnen Sie Ihren Terminalfenster unter Linux oder MacOS müssen sie nur noch diesen Befehl eingeben
Geben Sie bei der Abfrage Ihren Passwort an und los geht
sudo lsblk -o NAME,MOUNTPOINT,PHY-SEC NAME MOUNTPOINT PHY-SEC
sda 4096
sdb 4096
sdc 4096
sdd 4096 nvme0n1 512
├─nvme0n1p1 512
├─nvme0n1p2 512
└─nvme0n1p3 512
├─pve-swap [SWAP] 512
├─pve-root / 512
├─pve-data_tmeta 512 │ └─pve-data 512
└─pve-data_tdata 512
└─pve-data 512
ashift sollte demnach wie folgt angepasst werden für physische Blocksize von 512 ==> 9 4096 ==> 12 8192 ==> 13 Also in unseren Fall können wir unseren ZFS pool so konfigurieren
zpool create -f data -oashift=9,autoexpand=on raidz /dev/sdd /dev/sde /dev/sdf /dev/sdg
Was soviel bedeutet wie erzeuge einen Pool namens „data“ mit einen Blocksize von 512, Dieser Pool soll automatisch vergrößert werden wenn es möglich ist , wir wollen raidz Also die Daten werden in zwei verteilt und eine Parität wird generiert, und natürlich die Disks die wir dazu benutzen wollen.
Das Gleiche können wir auch von der Web Oberfläche machen.
Damit haben wir einen Disk Verbund erzeugt der uns erlaubt einen Disk zu verlieren ohne das irgendwelche Daten verloren gehen, dafür haben wir auch einen Disk an Kapazität verloren z.B. wenn wir 4 Disks mit 4TB haben werden wir am Ende „nur“ ca. 12 TB zur Verfügung haben
Da wir später all unseren Filme, Bilder, etc… hier speichern wollen müssen wir noch so genannten vdev erzeugen, so können wir unsere Daten später einordnen. Einzig der Punkt Timemachine ist nur für Apple Mac User und kann von den anderen weg gelassen werden.
Dafür müssen wir uns auf unseren Proxmox Server als root einloggen.
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/vm data/vm
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/videos data/videos
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/video-private data/videos-private
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/serien data/serien
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/musik data/musik
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/bilder data/bilder
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/dvr data/dvr
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/backup data/backup
zfs create -oxattr=sa -ocompression=lz4 -oatime=off -orecordsize=16k -omountpoint=/data/timemachine data/timemachine
ZFS hat die möglichkeit die Filesystem logs oder Journal auf separate Disks zu speichern. Das ermöglich eine schnellere Verarbeitung der Daten. ZFS speichert in normal Fall alles auf seine Disks, data wie Logs, wenn wir die Logs auf schnellen SSD oder nVMe Disks ZFS wird das Betriebssystem eine erfolgreiche Speicherung der Daten auch wenn diese nur in die Logs gespeichert sind, die Daten werden sowieso später auf Disk gespeichert aber da SSD viel schneller sind als HDD gewinnen wir eine menge Zeit.
Um die Logs von den Harddisk zu trennen müssen das konfigurieren, wir müssen unseren SSD oder zumindest Partitionen in unseren pool definieren.
zpool add data log mirror /dev/sdb /dev/sdc
We can check that with
root@pve:~# zpool status
pool: data
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
logs
mirror-1 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
errors: No known data errors
Wir können auch noch quotas einfügen, damit können wir die Disk kapazität künstlich einschränken.
zfs set quota=2T data/videos
zfs set quota=500G data/videos_private
zfs set quota=1T data/serien
zfs set quota=250G data/musik
zfs set quota=250G data/bilder
zfs set quota=4T data/timemachine
zfs set quota=500G data/backup
zfs set quota=500G data/dvr
So! Jetzt sind unsere Disks bereit wir können uns daran machen unser Proxmox Server fertig zu konfigurieren um einen ersten Server zu erzeugen.
Wir wechseln erneut in den Browser und definieren unseren Storage
Part 4 – Updates
Updates
Wir haben jetzt unseren Systeme fertig gestellt ein Paar schritte müssen noch erledigt werden, wir müssen die repositories ändern, sodass unseren Server regelmäßig update beziehen kann, den von Grund aus gibt es nur diese Aktualisierung für die enterprise version, also wenn Sie den Support Vertrag nehmen. Da wir diesen nicht haben müssen wir die Einstellungen ändern.
Dafür wechseln wir in unseren Terminal:
echo “ “ >> /etc/apt/sources.list
echo „# Proxmox Updates with no subscription“ >> /etc/apt/sources.list
echo „deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription“ >> /etc/apt/sources.list
echo „#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise“ > /etc/apt/sources.list.d/pve-enterprise.list
Und jetzt können wir das System aktualisieren mit diesen Befehlen
wir können jetzt die Aktualisierung von der web Oberfläche ausführen oder von der command line mit
apt update && apt upgrade -y
Wir sind jetzt soweit, unseren Proxmox server läuft ohne Fehler, wir werden gleich in die nächste Video sehen wie man das ganze sichern kann.