Heimserver vs. NAS – Proxmox Installation

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

SilverStone SST-DS380

Mainboard

ASUS ROG Strix Z490-I 

CPU

Intel Core i5-10400 6 Kerne

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

MZHOU SATA PCIE Karte,8 SATA Port 

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

ssh root@192.168.0.248

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.

 

Schreibe einen Kommentar