Echten Linux Server mit Proxmox ersetzen
Warum?
Mein alter Home-Server – ein normaler Celeron ist jetzt 10 Jahre alt.
Daraus ergeben sich folgende Probleme:
- Alter:
Die Gefahr, dass jetzt etwas ausfällt steigt langsam auf ein kritisches Maß an, egal ob SSD, Festplatten, Motherboard usw. - Komplexität:
Alles auf einer Maschine, mit gewachsen und inzwischen superkomplexen Konfigurationen, so dass jede Änderung zu einem Abenteuer wird. Vor allem Upgrades auf neuere Linux Versionen kosten immer mehrere Tage bis alles wieder läuft. - Stromkosten:
Als der Server aufgebaut wurde waren Stromkosten kein großes Thema. Wenn eine Platte voll war, kam eine neue Platte dazu. Und natürlich waren die wichtigen Daten auf einem Raid1. Das summierte sich alles auf 60-70 Watt im Leerlauf.
Der Plan:
- Neuen Rechner kaufen mit folgenden Anforderungen:
- möglichst mit Mobilprozessor (wegen dem geringeren Stromverbrauch)
- mindestens einem Schacht für eine 3,5′ Festplatte.
- am Besten einen generalüberholten gebrauchten Mini PC für um die 100€
- Alle Funktionen sollen virtualisiert laufen.
Jeder Dienst der auf dem Rechner läuft soll in einem eigenen Container laufen, das minimiert- die Komplexität,
- den Konfigurationsaufwand,
- den Wartungsaufwand
- die Backups
Ich habe einen Dell für 99€ mit einer 250GB SSD gefunden. Die 250GB sind zu wenig, also eine 1TB SSD für das System und eine 12TB Platte für die Daten in das Gehäuse geschraubt und los geht’s. Der Rechner läuft mit 17W.
Setup:
Schritt 1: Installation der Virtualisierungsumgebung Proxmox
Das geht ganz einfach und ist schnell gemacht
- Proxmox ISO herunterladen: https://www.proxmox.com/de/downloads
- USB-Stick präparieren: https://www.ventoy.net/en/download.html
- ISO auf USB Stick kopieren
- Proxmox auf SSD installieren
Alles was wir jetzt machen findet auf der Shell von den neu installierten Proxmox-Server statt.
Es macht keinen Unterschied ob via ssh (cooler) oder dem Proxmox Web-Interface).
Schritt 2: Einrichtung von LVM auf einer Festplatte
WICHTIG: sdX = Das X müsst Ihr durch die Nummern eurer Platte(n) ersetzen. (df -h)
Dazu brauchen wir erst mal ein LVM („Logical Volume Manager“). Das ist eine zusätzliche Abstraktionsschicht zwischen physikalischen Datenspeichern und dem Betriebssystem, die eine flexible Aufteilung und nachträgliches Größe ändern erlaubt. (Mehr Infos: wikipedia/LVM)
Weiter im Text: Die Schritte zur Einrichtung von LVM auf der Festplatte mit den entsprechenden Befehlen und einer kurzen Erklärung für jeden Schritt:
- Partitionierung der Festplatte:
sudo fdisk /dev/sdX
fdisk
, um die Datenplatte /dev/sdX
zu partitionieren. Partitionen für jeden Bereich erstellen, bei mir (Dokumente, Backups, Filme).
- Erstellen von physischen Volumes (PVs):
sudo pvcreate /dev/sdX1
# Falls man das LVM über mehrere Platten spannen will:
# sudo pvcreate /dev/sdX1 /dev/sdX2 /dev/sdX3
Mit pvcreate
erstellt man das physische Volumes auf der Partition.
Falls man das LVM über mehrere Platten spannen will, müssen die anderen erstellten Partitionen zB /dev/sdX1
, /dev/sdX2
und /dev/sdX3
. auch angegben werden.
Diese physischen Volumes dienen als Basis für das LVM.
- Erstellen einer Volume Group (VG):
sudo vgcreate myvg /dev/sdX1 /dev/sdX2 /dev/sdX3
vgcreate
erstellt eine Volume Group namens “myvg” und fügt die zuvor erstellten physischen Volumes hinzu. Die Volume Group ist der Pool, aus dem logische Volumes erstellt werden.
- Erstellen von logischen Volumes (LVs):
sudo lvcreate -L 20G -n documents myvg
sudo lvcreate -L 30G -n backups myvg
sudo lvcreate -L 50G -n movies myvg
Mit lvcreate
erstellen wir jetzt logische Volumes innerhalb der Volume Group “myvg”. Jedes logische Volume erhält eine bestimmte Größe (-L
) und einen Namen (-n
). In diesem Fall haben wir “documents”, “backups” und “movies” als Namen gewählt.
- Dateisysteme erstellen und mounten:
sudo mkfs.btrfs /dev/myvg/documents
sudo mkfs.btrfs /dev/myvg/backups
sudo mkfs.btrfs /dev/myvg/movies
sudo mkdir /mnt/documents /mnt/backups /mnt/movies
sudo mount /dev/myvg/documents /mnt/documents
sudo mount /dev/myvg/backups /mnt/backups
sudo mount /dev/myvg/movies /mnt/movies
mkfs.btrfs
formatiert die logischen Volumes mit dem btrfs-Dateisystem. Dann werden Verzeichnisse erstellt, um die logischen Volumes zu mounten, und gemountet.
Diese Schritte ermöglichen es dir, LVM auf deiner Festplatte einzurichten und den verfügbaren Speicherplatz dynamisch in verschiedene Bereiche aufzuteilen, die separat verwaltet werden können. Durch die Verwendung von logischen Volumes kannst du die Größe der Bereiche bei Bedarf anpassen, ohne die anderen Bereiche zu beeinträchtigen.
Schritt 3: Festplatte in einen LXC Container mounten
Um die Festplatte in den LXC zu mounten bedarf es leider der Console (zumindest habe ich keine Möglichkeit über das Frontend gefunden). Die Anleitung hierfür findet man unter https://pve.proxmox.com/wiki/Linux_Container#_bind_mount_points (Danke an Georg für’s herausfischen).
# Syntax: pct set lxc_id -mpX /quelle_auf_host,mp=/mountpoint_im_lxc
pct set 200 -mp0 /mnt/documents,mp=/documents
pct set 200 -mp1 /mnt/backups,mp=/backups
pct set 200 -mp2 /mnt/movies,mp=/movies
# Wichtig: Der Container muss dazu gestoppt sein sonst erhält man folgende Fehlermeldung:
pct set 200 -mp1 /mnt/backups,mp=/backups
400 Parameter verification failed.
mp1: unable to hotplug mp1: failed to move 'mp1' into container hierarchy: Permission denied
Dateifreigabe im Netzwerk mit Samba konfigurieren
Samba installieren
sudo apt install samba
dann die Samba Konfig editieren
sudo nano /etc/samba/smb.conf
und um folgende Zeilen erweitern:
[movies]
comment = Filme
path = /movies
writable = yes
create mask = 0666
directory mask = 0770
guest ok = yes
[daten]
comment = Daten
path = /daten
valid users = hagen, @family
writable = yes
create mask = 0660
directory mask = 0770
guest ok = no
inherit acls = Yes
[backup]
path = /backup
valid users = hagen
writable = yes
create mask = 0660
directory mask = 0770
guest ok = No
danach Samba neu starten
sudo service smbd restart
TL;DR:
lvcreate -L 800G -n daten myvg
lvcreate -L 2000G -n daten myvg
lvcreate -L 2000G -n backup myvg
lvcreate -L 2000G -n medien myvg
mkdir /mnt/daten
mkdir /mnt/backup
mkdir /mnt/movies
mkdir /mnt/audio
mkfs.btrfs /dev/myvg/audio
touch /mnt/audio/audio_UNmounted
mount /dev/myvg/audio /mnt/audio
pct set 200 -mp1 /mnt/daten,mp=/daten
pct set 200 -mp1 /mnt/backup,mp=/backup
pct set 200 -mp2 /mnt/movies,mp=/movies
pct set 200 -mp3 /mnt/audio,mp=/audio
pct enter 200
reboot
pveam available
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst
lvs
lvextend -L 1T /dev/mapper/myvg-backup
lvextend -L 3T /dev/mapper/myvg-backup
btrfs filesystem resize max /mnt/backup/
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!