Dokumentation

Dokumentation von den Kursen von sysops

Proxmox

Die Dokumentation für "Proxmox Produktiv mit ZFS betreiben" basiert auf einem kostenpflichtigen Kurs und soll dessen Inhalte wiedergeben, kann aber nicht die Betreuung und Beantwortung von Fragen, wie sie der Besuch des Kurses bietet, ersetzen. Es soll das Wissen von den hauptberuflichen Sysops Admins an Interessierte weitergegeben werden, die es danach auf den von Ihnen betreuten Systemen umsetzen können.

https://cloudistboese.de - Das Schulungsportal von sysops.tv

Proxmox VE - Alternative zu vSphere und Hyper-V mit Support aus Deutschland und Österreich

Was ist Proxmox VE

Wo sind die Grenzen von Proxmox VE

Weitere Funktionen, die eher weniger Sinn machen

Indikation für Einsatz

** Bei Proxmox kommt alles aus den Kernel (ZFS, Ceph, LXC, KVM, uvm.) **

Linux Kommandos die man kennen sollte

Proxmox Installation

Um Proxmox mit ZFS nutzen zu können, müssen die Platten direkt an Proxmox angebunden werden. Es sollte kein RAID Controller mit RAID 0 genutzt werden, da dies früher oder später zu Problemen und Datenverlusten führen wird! Damit auch eine Update von Promox 7.x auf 8.x gezeigt werden kann, wird im Kurs mit der Installation einer Proxmox Version 7.x begonnen und später auf 8 aktualisiert. Das Postinstall Script aus dem Bashclub wird installiert, um auch alle benötigten Tools für die tägliche Arbeit und im Problemfall im Zugriff zu haben. (z.B. ohne ein Netzwerkverbindung kann nichts mehr nachinstalliert werden)

Spickzettel für Installation

Proxmox GUI Zugriff

Update nach Proxmox 8.x - Für Einsteiger am einfachsten bei Erstinstallation zu üben

Proxmox Update 7 to 8

Das Pre-Upgrade Check Script pve7to8 sollte ausgeführt werden, um mögliche Probleme vor dem Upgrade erkennen zu können. Erstmal ohne Parameter und anschließend mit Parameter (--full: alle Checks).

** Für das Upgrade muss entweder eine Subskription erorben werden. Alternativ kann man auch das Enterprise Repository deaktivieren und das No-Subkription Repository aktivieren. Nur so erhält man Proxmox Updates!!! Ohne diese Auswahl kommen nur Debian Security Fixes!!!

Hier der Stand Version 7 zu 8

Wir empfehlen die VMs und Container zu stoppen und einen zeitnahen Reboot - Der neue Kernel passend zur GUI kann nur so aktiviert werden

apt update apt dist-upgrade pveversion

Letzte Version PVE 7 sollte nun installiert sein, kein Reboot notwendig hier

Upgradeprozedur bei Standardsystem

sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list # ändert alle Repositories von Bullseye (Debian 11) zu Bookworm (Debian 12)

Enterprise Repo anpassen

echo "deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list

Debian update

screen # falls etwas schief geht kann man mit screen -r zurück zur Sitzung apt update apt dist-upgrade #sollte hier mehrere hundert Aktualisierungen ankündigen

Während des Upgrades sollte man alles mit N beantworten und den Diensteneustarts zustimmen. Es kommt ggf. auch ein Textdokument was mit w zu verlassen ist

Unser Postinstaller sorgt in kürzester Zeit für alle notwendigen Sicherheits- und Komforfunktionen für den Notfall

Postinstall aus bashclub (proxmox-zfs-postinstall) auf github

Wir sichern extra die /etc Ordner nach rpool/pveconf, da der Ordner /etc/pve aus einer Datenbank live erstellt wird. Er wäre bei einer Reparatur via Boot ISO leer!!!

Die ZFS auto Snapshots werden über die crontab ausgeführt. Dafür gibt es verschiedene Verzeichnisse:

In den Ordner liegt dann für jede "Aufgabe" ein eigene Datei (z.B. zfs-auto-snapshot), in welcher die auszuführen Kommandos enthalten sind. Dort ist auch hinterlegt wieviele auto snapshots aufgehoben werden sollenn. (--keep=96)

Die Zeitpunkte wann dieses ausgeführt werden sind in der Datei /etc/crontab definiert. z. B. könnte dort der tägliche Zeitpunkt angepasst werden

Ebenfalls finden sich Skripte ab Werk unter /etc/cron.d für z. B. Scrubbing und Trimming am Sonntag. Nicht jedem taugt dieser Zeitpunkt!

cat /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *	* * *	root	cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; }
47 6	* * 7	root	test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; }
52 6	1 * *	root	test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
#

Zusätzlich gibt es für jeden User (z.B. root) noch eine eigene crontab, diese liegen unter cd /var/spool/cron/crontabs/. Dort gibt es dann eine Datei root für den User root, falls diese erzeugt wurde. Diese Datei wird z.B. auf den Linux VMs genutzt, um das Trimming zeitgesteuert ausgeführen zu können.

proxmox-boot-tool / ZFS Feature Upgrade / Trimming einschalten

Mit dem promox-boot-tool könnten Platten nach einen Hardwaretausch wieder bootfähig gemacht werden. Heute sollte nach Möglichkeit uefi Boot eingesetzt werden und nicht mehr legacy Boot, damit werden die Boot Platten automatisch erkannt und müssen nicht einzeln durch probiert werden, wie bei legacy boot. Autotrim sollte auf den SSD ZFS Datasets eingeschaltet sein, damit gelöschte Blöcke wieder im Dateisystem schnell verfügbar gemacht werden.

Optionale Funktionen zur ZFS Storage Optimierung

Einige wichtige Ordner vom Proxmox:

PVE startet noch, hat aber defekte Installation oder Konfiguration - Rollback vom Debian mit PVE

Wenn der Proxmox nicht mehr richtig funktioniert, werden die folgenden Schritte durchgeführt, um ihn wieder herzustellen zu können. Die erforderlichen ZFS snapshots werden durch die "Tools" des Postinstaller erzeugt. Beim PVE Ordner (/etc/pve) handelt es sich um eine Datenbank (/dev/fuse 128M 20K 128M 1% /etc/pve), die ohne den Postinstaller nicht gesichert würden (rpool/pveconf 884G 128K 884G 1% /rpool/pveconf).

Daher sollte der Postinstaller aus dem Bashclub auf jeden Promox PVE installiert sein, damit die Konfigurationsverzeichnisse von Proxmox auf ZFS gesichert und mit Auto Snapshosts versehen werden !!!

**Sollte der Rollback Punkt z. B. auf einen Punkt von PVE 7 zeigen, so kann man beim Booten einen älteren Kernel auswählen

Nach erfolgreichem Neustart empfehle ich

Installation Windows mit VirtIO Treiber

** Inzwischen installiert der Postinstaller einmalig eine aktuelle Virtio Treiber ISO als stabile Version - Für spätere Downloads...**

Inzwischen kann man die geladene virtio.iso als zweites Laufwerk in die VM einklinken

q35 Version 5.2 - weniger Probleme als mit Version 8.0 wegen deutschen Treibern - ist für US optimiert ... - Probleme mit Netzwerkkarten möglich

EFI hat feste Bildschirmauflösung - kann nur im EFI der VM eingestellt werden (EFI BIOS) - Im Bootvorgang in der Console (Proxmox GUI) - ESC drücken

Während der Installation am einfachsten nur die VIOSCSI Treiber installieren, da sonst keine Disks angeboten werden Den Rest des Setups von der VIRTIO ISO kann nach der Installation erledigt werden. Das spart die dummen Sicherheitsfragen und geht schneller.

Am Ende sollte auf der VM Statusseite die IP Adresse zu sehen sein, ansonsten noch prüfen ob der Haken bei Guest Agent an ist!

Für alle die von den APPS genervt sind etwas lustiges zum nachbasteln

Get-appxPackage | Remove-appxPackage # man verliert Taschenrechner - alle App werden entfernt - auch der Storage wird entfernt - Nach Feature Update wieder alles da

**Windows installiert am Ende des Setups eine Wiederherstellungspartition. Diese ist eventuell zu entfernen, da ansonsten kein Resize möglich ist. Der Resize ist auf der Disk in PVE jederzeit möglich

** Windows ist inzwischen in der Lage freie Blöcke an ZFS zurückzugeben, für den Fall daß wie beschreiben SCSI Single + SSD Emulation plus Discard gewählt wurde**

Optional noch Hilbernation Mode aus

Unser Datastore Swap kann genutzt werden um die Auslagerungsdatei auf eine eigene Disk zu legen. Das spart bei ramhungrigen Systemen viel Platz, da dort keine automatischen Snapshots ausgeführt werden. Die Platte muss nicht gesichert werden. Bei Linux bitte die Swap Disks mit Backup einmal sichern

Trimming unter Linux

fstrim -av # muss eine Ausgabe bringen - sonst ist die VM falsch konfiguriert - VM Platten auf SSD und Discard umstellen

Festplatten Tausch bei Defekt oder S.M.A.R.T Fehler

Es reicht nicht mit zpool replace eine fehlende oder defekte Disk zu ersetzen. Sie könnte danach nicht booten. Wir benötigen ebenfalls zwei Partitionen mit dem Bootimage!

Der Fall beschreibt den Tausch optional gleich gegen eine größere Festplatte oder SSD

Erklärung zum Kommando sgdisk ... -- R ...

dmesg -Tw

Platte einbauen und Output prüfen, sdf ist neue Disk

zpool set autoexpand=on rpool # Erweiterung des Pools erfolgt am Ende automatisch! Bei Raid 10 reicht es zwei Disks zu Tauschen, bei RaidZx müssen allte getauscht werden um den Platz zu erweitern!

ls -althr /dev/disk/by-id | grep sdf (sdf wurde als neue Disk erkannt)

zpool status

Output zeigt aktive oder defekte Disks

	rpool                                                 ONLINE       0     0     0
	  mirror-0                                            ONLINE       0     0     0
	    ata-INTEL_SSDSC2KB019T8_PHYF951101ZS1P9DGN-part3  ONLINE       0     0     0
	    ata-INTEL_SSDSC2KB019T8_PHYF951102271P9DGN-part3  ONLINE       0     0     33

Wir tauschen nun die zweite Disk vorsorglich

-part3 zeigt deutlich daß es sich hier um die dritte Partion handelt die ersetzt werden muss, folglich sind Parition 1 und 2 zum booten!!!

ls -althr /dev/disk/by-id | grep ata-INTEL_SSDSC2KB019T8_PHYF951102271P9DGN-part3 

lrwxrwxrwx 1 root root 10 Oct 15 17:38 ata-INTEL_SSDSC2KB019T8_PHYF951102271P9DGN-part3 -> ../../sdb3

Wir müssen also sdb3 ersetzen

Als erstes Paritionstabelle übernehmen und erweitern, falls größere Disk

sgdisk /dev/sdb -R /dev/sdf #sdb ist eine gute Disk, sdf die neue Disk
sgdisk -G /dev/sdf # neue GUID damit EFI die Disk unterscheiden kann
proxmox-boot-tool format /dev/sdf2 #format mit fat32
proxmox-boot-tool init /dev/sdf2 #kopiert Bootimage und notiert die Disk für künftige Updates

Optional

cfdisk /dev/sda # Partition vergrößern

** Beim nächsten sgdisk der Paritionstabelle einfach die große Disk als Vorlage nehmen

Jetzt den eigentlichen Datenbestand ersetzen

ls -althr /dev/disk/by-id | grep sdf | grep part3
zpool replace rpool ata-INTEL_SSDSC2KB019T8_PHYF951102271P9DGN-part3 ata-INTEL_SSDSC2KB019T8_PHYF95111111PXXX-part3

** Kontrolle des Erfolgs mit

zpool status # da soll dann die alte Disk raus sein und keine Fehler
zpool list # eventuell mehr freier Speicher nach Austausch von zwei Disks oder mehr
proxmox-boot-tool status #sollte zwei Treffer und einen Fehler melden, wegen gezogener defekter Disk
proxmox-boot-tool clean entfernt tote Bootdatenträger

Windows kaputt machen - Trojanersimulation

ZFS Cache

zpool add -n rpool cache ata-intense..
zpool add -nf rpool cache ata-intense.. # wenn schon Daten auf der Platte
zpool add -f rpool cache ata-intense..
zpool iostat -v 3
zpool iostat -v 1 # 1 sec

Das Wort "cache" im Kommando ist sehr wichtig, da sonst die Platte evt. als einzel Mirror an den stehenden Mirror angehängt wird und das wollen wir nicht, daher immer mit -n testen !!!

Proxmox Cluster

cd /etc/pve
service pveproxy restart

cd /rpool/pveconf 
zfs list -t snapshot rpool/ROOT/pve-1 

zfs rollback -r rpool/ROOT/pve-1@zfs-auto-snap_hourly-2023-09-28-1017 # panic Variante und Stromkabel nach 2 s

dd if=/dev/zero of=/dev/sda2 bs=1M count=511 
dd if=/dev/zero of=/dev/sdd2 bs=1M count=511 
proxmox-boot-tool status 

Backup Proxmox Datenbank - Wie funktioniert das ?

Backup und Monitoring

zfs list # Ziel Backup Disk - Pool Backup
zfs create backup/repl -o com.sun:auto-snapshot=false 
zfs set com.sun:auto-snapshot=false backup 
bash-club-zfs-push-pull # auf Ziel ausführen

git clone https://github.com/bashclub/bashclub-zfs-push-pull.git
cd bashclub-zfs-push-pull
chmod +x 02pull
bashclub-zfs
cp bashclub-zfs /usr/bin

vi 02pull # Anpassen - In for Schleife ein echo zum Testen
bashclub-zfs # Parameter I und R - alte Snapshot und Zwischen-snapshots mitnehmen # Prinzipiell pull !!! - Quelle kommt nicht auf das Ziel, sondern nur Ziel kommt auf Quelle
cp 02pull /etc/cron.hourly

Für Trojaner sicher immer die "pull Methode" anwenden. Nur Ziel kommt auf die Quelle und nicht umgekehrt.

Monitoring

wget -O /usr/local/bin/checkzfs https://raw.githubusercontent.com/bashclub/check-zfs-replication/main/checkzfs.py  
chmod +x /usr/local/bin/checkzfs 
checkzfs --sourceonly 
checkzfs --filter rpool/data/ --replicafilter backup/repl --threshold 75,90 
checkzfs --filter rpool/data/ --replicafilter backup/repl --threshold 75,90 --columns +message 

checkzfs --filter rpool/data/ --replicafilter backup/repl --threshold 75,90 --columns +message --output checkmk
# Datei generieren und auf anderen Server kopieren - über scp 
zfs mount -a 
ls /backup/repl/subvol-100-disk-0/etc/pmg 
mkdir /mnt/restore 

mount /dev/zvol/backup/repl/vm-101-disk-1-part3 /mnt/restore 
ls /mnt/restore # Damit kann man Daten aus dem Windows zurückspielen 
umount /mnt/restore 

zfs create backup/klon -o com.sun:auto-snapshot=false 
zfs list -t snapshot backup/repl/vm-101-disk-1 
zfs clone backup/repl/vm-101-disk1@bashclub-zfs_2023-09-28_16:21:30 backup/klon/vm-101-disk-1 

mount /dev/zvol/backup/klon/vm-101-disk-1-part3 /mnt/restore 
ls /mnt/restore 
vi /etc/pve/qemu-server/9101.conf # Anpassung das der Klon verwendet wird 
    
umount /mnt/restore 
zfs get guid 
zfs get guid | grep bashclub-zfs_2023-09-28_16:46:50 
zfs get creation rpool/data/subvol-100-disk-0@bashclub-zfs_2023-09-28_16:46:50
zfs snapshot rpool/data/vm-100-disk-0@snap1 # snapshot auslösen 
zfs send rpool/data/vm-100-disk-0@snap1 | zfs recv -dvF backup/repl # local 
zfs send rpool/data/vm-100-disk-0@snap1 | ssh rot@zielip zfs recv -dvF # anderes System

ssh root@sourceip zfs send rpool/data/vm-100-disk-0@snap1 | zfs recv -dvF backup/repl # pull

checkzfs --filter rpool/data/ --replicafilter backup/repl --threshold 75,90 --columns+message --output mail

Kopie OPNSense Workshop - Vorumstellung auf markdown


Inhaltsverzeichnis


  1. Virtuelle OPNSense auf ProxMox
  1. Sophos UTM9 Firewall
  1. OPNsense GUI - Einstiegskonfiguration
  1. OPNsense GUI - Basiseinrichtung
    1. Einschub Aliases
    2. Basis Setup
    3. Plugins
    4. Zertifikat für die Weboberfläche (GUI) der OPNsense
    5. OPNSense HA
  1. OPNsense Hardware / Virtuell
  1. Migrationswege zur OPNSense
    1. Harter Tausch
    2. Multivan
    3. Single WAN
    4. OPNSense
  2. DNS Server (alter: ISC )
  3. VPN
    1. IPSec
    2. WireGuard
    3. OpenVPN Einwahl - Roadwarrior
    4. Bridges
  4. Mailgateway

OPNSense

  1. Allgemein
    1. Links zu den Youtube Video und Nextcloud


Workshop 09.04.2024 und 11.04.2024



Die Aufzeichnungen findet ihr im Kurs, der wiederum auf ein Textdokument in der Nextcloud verweist!


Kostenpflichtiger Link für Videos



  1. Virtuelle OPNSense auf ProxMox


DNS Eintrag: opnws.sysops.de


Download: https://opnsense.org/download/



Im PVE funktioniert der „Download“ nicht, da ein .bz2 Datei


Auf ProxMox CLI:


PVE GUI - anlegen der VM


Was fehlt hier noch ? Das WAN Interface


Wechseln zu Hardware:


MAC Adressen aus dem PVE aufschreiben / merken !


PVE Console OPNSense:

  1. Sophos UTM9 Firewall


In den Kurs wird immer mal wieder parallel auf die Sophos Firewall gegangen.


Bei ersten einloggen ist auf gefallen, dass die Lizenz abgelaufen oder herausgeflogen ist, dann kann man sich auch keine bestehenden Konfigurationen mehr anschauen.


Chriz hat die Lizenz wieder eingespielt und man kann sich wieder alles anschauen. Es muss der File aus dem myutm-sophos.com Portal heruntergeladen werden und dieser File muss eingespielt werden !

  1. OPNsense GUI - Einstiegskonfiguration


In der Dokumentation werden nur die wichtigsten Felder der OPNsense beschrieben, um sich die Bilder vom Workshop anzuschauen, kann die Volltextsuche vom Kurs verwendet werden. Um die Dokumentation recht schlank zu halten, wird möglichst auf Bilder verzichtet. 

Im Webbrowser die GUI der OPNsense starten

ProxMox CLI:

Wieder zurück im Webbrowser der OPNsense

Einschub: Thema VDSL

Im Textfile erklärt:

OPNsense VDSL

Wieder zurück im Webbrowser der OPNsense

In einer CLI:

Pingtest funktioniert noch nicht, da noch kein Gateway

Wieder zurück im Webbrowser der OPNsense

In einer CLI:

Pingtest funktioniert noch nicht

Wieder zurück im Webbrowser der OPNsense

In einer CLI:

Pingtest funktioniert noch nicht

Wieder zurück im Webbrowser der OPNsense

Im Suchfeld (Lupe): alias

Wieder zurück im Webbrowser der OPNsense

In einer CLI:

Pingtest funktioniert jetzt

Sophos Interface - WAN angeschaut

Wieder zurück im Webbrowser der OPNsense

So jetzt haben wir zweite IP Adresse

Wieder zurück im Webbrowser der OPNsense

Im Suchfeld (Lupe): Gateways —> Wie ist das gedacht …

Im anderen Browser Tab: Google

Wieder zurück im Webbrowser der OPNsense


Frage: Firehol L1: ausgehend oder eingehend ?


Firehol L1 enthält private Netze, d.h. eingehend - L1 eingehend auf WAN


Was ich immer machen würde:


OPNsense Business License - hat Chriz für das RZ gekauft —> anderes Browser Tab

Business Edition:

  1. OPNsense GUI - Basiseinrichtung

    1. Einschub Aliases


Für die Aliases wäre ein Konzept sinnvoll, aber Chriz meinte auf Grund der Kundenanzahl und … wird er es nicht konsequent umsetzen können. Darüber muss sich jeder selbst Gedanken machen, inwieweit das für einen sinnvoll ist.


Wieder zurück im Webbrowser der OPNsense

Sophos - Firewall - rules

—> gibt es so nicht in der OPNsense


Regel in der OPNsense im RZ angeschaut


Chriz erklärt es noch mal anders:

Achtung: Hier ist die Reihenfolge der Regeln entscheidend. Erst verbieten dann erlauben. Eine erlauben Regel vor der verbieten Regel würde wieder z.B. ein Netz erlauben

    1. Basis Setup

Wieder zurück im Webbrowser der OPNsense

OPNsense: Für jeden neuen Dienst muss eine Firewall Regel definiert werden


SOPHOS: da war das nicht so - dort werden Netze definiert, die im Hintergrund eine Firewall Regel gebaut haben


CLI:


Wieder zurück im Webbrowser der OPNsense


Ob man das ssh auf WAN will muss man sich überlegen.



    1. Plugins


Im Suchfeld (Lupe): Plugins



OPNSense: kann im laufenden Betrieb Netzwerkkarten hinzufügen


SOPHOS: da ging das nicht im laufenden Betrieb - Interface - um hinter Interface einzutragen muss die SOPHOS herunterfahren - eintragen und wieder starten - Bei HA muss beide heruntergefahren werden - das bedeutet RZ offline - ging dann nur abends


OPNSense: Wieder in die Oberfläche einloggen


ProxMox GUI:

QEMU Agent erlaubt es die VM sauber herunterzufahren

    1. Zertifikat für die Weboberfläche (GUI) der OPNsense


Let’s encrypt war in der SOPHOS recht spät und richtig schlecht - Certificate Management - Reiter Certificate Authority - geht nur mit http challenge

DNS Anbieter: macht bloss 2 Faktor Authentifizierung rein

Browser Hetzner Login Seite


Nachdem das Zertifikat in der OPNSense angefordert wurde, sieht man im Hetzner Portal —> Record deleted


Da heißt OPNsense steuert jetzt Deinen Hetzner.


Chriz hat anschließend gleich den Revoke token ausgeführt, damit ist der Token in der OPNsense unbrauchbar geworden.


Browser:

Frage: intern Domain .z.B. xxx.lan

    1. OPNSense HA

Du könntest Dir jetzt das umständlich zusammen klicken, aber das machen wir hier nicht

SOPHOS: High Availability —> war nicht der SOPHOS viel einfacher


Youtube Video

OPNsense High Availability, höher und günstiger denn je - Live 24.08.2023 

Link: OPNSense HA

Wenn Du ein ProxMox Cluster hast

ProxMox GUI:

CLI:


Chriz reduziert den RAM der OPNsense Workshop, dafür wird die VM heruntergefahren. Bei der offline Migration im ProxMox braucht nur der Storage migriert werden, durch ZFS werden nur die Änderungen übertragen. Anschließend wird der RAM auf 4096 MB reduziert, minimaler RAM auf 2048 gesetzt und wieder gestartet.

  1. OPNsense Hardware / Virtuell

An hand der „Themenstruktur.md“:

Virtuelle OPNsense Parameter an hand der „Themenstruktur.md“ durchgesprochen



  1. Migrationswege zur OPNSense

    1. Harter Tausch

Als erstes müssen die Redbox (Red) los werden

Site to Site VPN und Fernzugriff

Praxis Beispiel:


    1. Multivan

Bei Multivan bringe beide Firewalls online auf verschiedenen IP’s. Über Routen oder über DHCP Server ändern des Gateways auf ONPsense.

    1. Single WAN

Auf der OPNSense wird alles durch geNATet.

Sophos Kabel für den Internet Zugang abziehen und auf die OPNsense umstecken.

Danach auf der Sophos auf Internal das „IPv4 default GW Address“ auf die OPNsense ändern und das war’s. Danach die NAT Regel auf der Sophos auf die OPNsense eintragen. D.h. Du NATest die Sophos raus und das hat den Nebeneffekt, dass Du siehst wie weit Du mit der Migration bist.

OPNSense:


Sophos:

Ausschalten der Sophos

Wichtig ist die Änderung der Gateway auf die neue Firewall. Im DHCP Server muss das neue Gateway eingetragen sein. Ist in diesen Fall so, da die OPNsense den DHCP Server spielt. Wo das Gateway von Hand eingetragen ist, muss es auch von Hand geändert werden.

Alles noch mal kontrollieren, ob alles auf die OPNSense umgestellt ist.

    1. OPNSense

Es gibt zwei DHCP Server 


Unbound DNS

Backup

Qemu Agent nochmal kurz angesprochen.

Sophos - NAT Regeln

OPNsense


PVE - Container anlegen (ID: 9998) - kleiner Webserver zu herauslegen

pct enter 9998


OPNSense 

PVE CLI

OPNSense 

PVE CLI

OPNSense 

Browser:

Terminal:

PVE CLI

Fritz!Box oder OPNSense

Browser

Für kleine Setup.


Richtige Weg wäre … ist mühsam …bietet aber auch mehr Möglichkeiten

OPNSense 

Browser


Für einen weiteren Eintrag müssen alle 4 Schritte wiederholt werden …


Im Schnelldurchgang weitere Einträge in der OPNsense:

Nginx in der OPNsense bietet noch mehr

OPNSense 

SOPHOS- Web Application Firewall (WAF) - verschiedene Reiter

Nextcloud - Kurs Files - Cynfo Setup - OPNSENSE_HA_PROXY.docx

ISPConfig funktioniert nicht hinter einen NGINX Proxy, da braucht man den HA_Proxy —> Dafür hat Chriz die Anleitung schon ein paarmal benötigt

Wie bekommen wir raus, ob alles funktioniert ?

Browser

Sophos - Network Protection - Firewall 

Um das in der OPNSense abzubilden muss man sich vorher eine Alias für Sources und Destinations bauen, um das abgebildet zu bekommen … - dann als Firewall Regel anlegen

OPNSense 

Chriz zeigt nochmal einige in seiner Firewall

2. Tag 11.04.2024

  1. DNS Server (alter: ISC )

Anmerkung: Neuer DNS Kea 

OPNSense 

Wie kann man das Testen ?

Linux Server mit nmap - dort gibt es ein Script: broadcast-dhcp-discover

LInux CLI mit nmap

OPNSense 

DHCP gibt es pro Interface, wenn er aktiviert ist.

Nachtrag zum ersten Tag:

OPNsense

  1. VPN


    1. IPSec

SOPHOS: Site-to-Site VPN - IPSec

IPsec.jpg

OPNSense 

OPNSense 

Gegenseite SOPHOS:


Anmerkung: Geht nicht mit der Schulung OPNsense wegen Routing

CLI:

ping 194.30.174.96 # —> ergibt keine Antwort

PVE GUI:

Gegenseite SOPHOS:

PVE GUI:

CLI:

ping 194.30.174.96 # —> ping gibt eine Antwort - IP Adresse aktiv

OPNSense 

Gegenseite SOPHOS:

Chriz will erstmal ein Erfolgserlebnis, darum nehmen wir jetzt die festen IP Adressen …

SOPHOS:

OPNSense 

SOPHOS:

OPNSense 

SOPHOS:

OPNSense 

SOPHOS:

OPNSense

SOPHOS und OPNSense Ansichten müssen aktualisiert werden

OPNSense

SOPHOS

OPNSense

SOPHOS

Preshared Key von der OPNSense auf die SOPHOS nochmal kopiert

Auch nach die Änderung des Preshared Keys hat nicht gebracht, die IPsec Verbindungen werden nicht komplett aktiv.

Problem der Ursache gerade nicht bekannt.

Wir schauen uns jetzt ein erfolgreiche Verbindung an, die gestern konfiguriert wurde.

OPNSense

OPNSense - DynDNS

IPSec funktioniert immer in beide Richtungen

Bein OPENVPN und WireGuard braucht nur eine Richtung für den Aufbau funktionieren.

    1. WireGuard


Wir löschen die IPSec Verbindung und wollen sie durch WireGard ersetzten

Bei WireGuard ist die SOPHOS raus.

WireGuard site-to-site

OPENSense Kunde

OPENSense OPNrz

OPENSense Kunde

OPENSense OPNrz

OPENSense Kunde

Frage: Wie geht es einfacher ?

Browser: 

wg-info.jpg

Du gehst auf eine Linux Kiste

CLI:

Jetzt macht man nur noch Copy & Paste - ist doch viel einfacher - wichtig alles kopieren und nicht das letzte Zeichen vergessen

OPENSense OPNrz

OPENSense OPNrz

OPENSense Kunde

OPENSense Kunde

OPENSense OPNrz

OPENSense Kunde


Überprüfung der WireGuard Config.


Ein Pre-Shared key war falsch, aber funktioniert immer noch nicht.



Nochmal überprüft im Live Log beider OPNSense das der Port nicht blockt wird. Keine Block Meldungen gefunden.


Wir machen die Config noch mal neu.


Jetzt wird alles aus wg-config kopiert außer dem Port 52451


CLI:

Mit dieser Ausgabe können wir jetzt wirklich copy & Paste machen - wir generieren nichts

Bei DynDNS braucht man auf der DynDNS Seite bei Peer keine Endpoint Address eintragen, es reicht auf einer Seite.

OPENSense Kunde

Der ping funktioniert auch wieder !!!

Braucht man mehrere braucht trägt man die im Peer eine weitere Netz unter Allowed IPs ein. Die Paket Filter müssen auch passen.

Wichtig bei Tunnel Address muss die Subnet Mask eingegeben werden, sonst sucht man eine Fehler der nicht da ist !!! (War in der Instance)

Hinweis: WireGuard Regeln müssen erstellt werden


    1. OpenVPN Einwahl - Roadwarrior

Mit IPsec und Einwahl ist nicht geil, gibt kaum clients.

OPNSense

OPNSense

SOPHOS

OPNSense

Mac von Chriz:

OPNSense

Browser download

CLI

OPNSense

CLI


Bei Chriz: kein VPN sondern eine Bridge zum RZ

Jetzt mit LDAP oder Windows AD

OPNSense

Browser UCS Server

CLI UCS Server

OPNSense

SOPHOS

An dieser Stelle kann Du Dich aussperren !

CLI

OPNSense

Browser

CLI

Jetzt kommt noch 2 FA dazu

OPNSense


QR Code mit dem Handy in der 2 FA App einlesen


Zurück im OpenVPN Client


Im Browser

OPNSense

Browser download

Zurück im OpenVPN Client



OPNSense

Zurück im OpenVPN Client

    1. Bridges

OPNSense (Bridge Server)

Da es gerade im Netzwerk ist, werde ich das mal ändern.

Browser

CLI Studio

Browser

CLI


Es bringt nichts, da ich keine Standorte habe mit denen ich das Testen kann.

Rückabwicklung der Bridge

Chriz zeigt es nochmal am Beispiel RZ.

SOPHOS

Hinweis von Chriz: Es gibt einen alias Typ OpenVPN group, aber hat sich Chriz noch nicht weiter angeschaut. Damit kann man Regeln auf User Ebene machen. (IP Address) Chriz nutzt die Group nicht.

Unter Firewall: Diagnostics: Aliases sieht man die eingewählten IP Adressen.

Im Stammtisch gab es die Frage, ob das auch mit LDAP funktioniert.

LDAP Gruppen können vermutlich nicht importiert werden, damit können die auch nicht OpenVPN group verwendet werden.

Es kann nur eine local Gruppe angelegt werden und dort können die LDAP User hinzugefügt werden.

Und dann kann man einen Alias machen.

  1. Mailgateway

SOPHOS

ProxMox Mail Gateway müssen wir raus NATen, wir schauen das mal bei uns an.

Browser

ProxMox

Die Installation des ProxMox Mail Gateways sollte jeder hin bekommen, Chriz spart sich die Installation.

Browser

SOPHOS





Verschlüsselung mit Proxmox, ZFS und Debian / Windows

Hier mal zur Überlegung was für einen Sinn macht

Physischer PC
Proxmox LXC


Proxmox LXC ZFS verschlüsselt

zfs create rpool/encrypted -o keylocation=prompt -o keyformat=passphrase -o encryption=on

#Datastore im PVE anlegen auf rpool/encrypted

nach Reboot zfs load-key #Passphrase eingeben, dann pct start xxx

Alternativ kann man das auch von außen alle Stunde auf Verdacht oder nach Prüfung per SSH auslösen

Proxmox VM



Proxmox VM ZFS verschlüsselt

zfs create rpool/encrypted -o keylocation=prompt -o keyformat=passphrase -o encryption=on

#Datastore im PVE anlegen auf rpool/encrypted

nach Reboot zfs load-key #Passphrase eingeben, dann qm start xxx

Alternativ kann man das auch von außen alle Stunde auf Verdacht oder nach Prüfung per SSH auslösen

Proxmox VM Gast verschlüsselt

Verschlüsselung wird bei der Installation vorgenommen. Nach jedem Reboot muss das Passwort in KVM Konsole von Proxmox eingegeben werden. Automatisierung nicht möglich
Abschließend ist das Ziel zu prüfen. Verschlüsselung gegen Diebstahl ist die ZFS Lösung völlig ausreichend. Replikation geht mit Raw (send -w), Backup nur wenn entsperrt ist.  Eine Sicherung einer intern verschlüsselten VM ist jederzeit, mit jeder Methode (PBS, ZFS) möglich, muss halt in jeder VM vorgenommen werden, LXCs lassen sich verschlüsselt nur gegen Diebstahl schützen, nicht gegen Einsicht.

Proxmox Best Practice Setup für ZFS und / oder Ceph im Cluster für Einsteiger (Stand Dezember 2024)

Der Verfasser des Artikels, Christian-Peter Zengel, hat zum Zeitpunkt des Artikels ca 15 Jahre Erfahrung mit ZFS und Proxmox. Er betreibt aktuell ca 150 Systeme mit Proxmox und ZFS

Das Einsatzgebiet geht von Standaloneinstallation bis zu ca 10 Hosts im Cluster. Es ist keine Ceph Expertise vorhanden!

Dieser Dokumentation basiert auf diesem online Kurse von cloudistboese.de

18.12.2024 - 11h Proxmox Best Practice Cluster mit ZFS + Ceph für Einsteiger

ZFS ist die perfekte Grundlage für kleine und mittlere Kunden komplett unverwundbar gegen Ausfall, Trojaner und vor allem Dummheit zu sein.

Ceph ist die Basis der höchsten Verfügbar- und Skalierbarkeit

In diesem Kurs vermitteln wir ZFS und Ceph Grundkenntnisse für Proxmox

Achtung: Das Tempo dieses Kurses ist relativ schnell, dafür werden alle Schritte mit Screenshots dokumentiert!

Er eignet sich für den schnellen Einstieg mit mit Wissen aus zuverlässiger Quelle.

Dauer ca 4h+

  • Basisinstallation Proxmox VE mit EFI auf ZFS
  • Installation und Hinweise auf Fehlerbehebung von PVE-Clustern
  • Einrichtung eines einfachen Ceph Clusters
  • Musteranlage einer VM und LXC für höchste Leistung und Platzersparnis
  • Konfiguration einer Hochverfügbarkeit für eine VM
  • Replikation mit Bordmitteln und deren Erfolgskontrolle
  • Automatisches Snapshotting von ZFS + Ceph mit CV4PVE + Admin GUI
  • Einrichtung Proxmox Backupserver auf LVM oder ZFS mit Sicherheitsoptimierung
  • Monitoring mit Check_MK plus Special Agent

Nach diesem Kurs kannst Du Proxmox im Cluster sicher und einfach betreiben.

Für erweiterte Trojanerabwehr bitte den Trojanersicherkurs besuchen.

Trainer/in: Christian Zengel

Der folgende Artikel eignet sich besonders für Einsteiger die mit mehr als einem Host im Cluster starten müssen.

Der Bezug auf Ceph soll lediglich zum Funktionsvergleich dienen. Wir empfehlen bis 10 Hosts immer ZFS!


Installation Proxmox

Ein System hat extra Platten für unseren Workshop, zwei wurden bereits installiert.

Es kommt der HPE Microserver Gen10 Plus V2, vorzugsweise mit ECC, zum Einsatz

Bildschirmfoto 2024-12-18 um 11.08.06.jpg

Wir installieren mindestens einen Raid1, 10 oder Z, niemals auf Basis eines Hardware Raid Controllers!

Für Cluster dringend alle IPs und Namen vorher klären, sonst kommt es zu späteren Zusatzarbeiten für den Cluster

Bildschirmfoto 2024-12-18 um 11.08.29.jpg

Cluster mit drei PVE erstellen

Cluster wird in Sekunden erzeugt, ein Node alleine läuft problemlos

Bildschirmfoto 2024-12-18 um 11.15.59.jpg

Bildschirmfoto 2024-12-18 um 11.17.18.jpg

Bildschirmfoto 2024-12-18 um 11.17.34.jpg

Cluster Nodes hinzufügen

Nodes mit den Join Information des ersten Clusternodes in der Zwischenlage auf neuen Node unter Join Cluster Einfügen und Rootpasswort und Clusternetz(e) bereitstellen

Bildschirmfoto 2024-12-18 um 11.17.55.jpg

Bildschirmfoto 2024-12-18 um 11.18.05.jpg

Bildschirmfoto 2024-12-18 um 11.18.42.jpg

Bildschirmfoto 2024-12-18 um 11.20.33.jpg

Der neue Node wird im Vorgang die Verbindung zum Browser verlieren, da er Schlüssel und Zertifikate des Clusters übernimmt. Der Browser muss neu geladen werden. Danach ist die Administration von jedem Clustermitglied aus möglich.

Lokale Storages benötigen lokalen Login zum Einrichten

Bildschirmfoto 2024-12-18 um 11.21.06.jpg

Postinstaller für erweiterte Funktionen

Unser Postinstaller vom #Bashclub funktioniert am besten mit Standalone.

Für unser Setup verzichten wir auf Autosnapshots für rpool/data, also dem local-zfs Store und auf das SSH-Hardening, aus Kompatibilitätsgründen

Diese Zusammfassung zeigt die für unser Setup günstigsten Settings, mehr Kontext im Kurs

Bildschirmfoto 2024-12-18 um 11.23.17.jpg

Demonstration ZFS Raid

Software Raid mit ZFS ist ultra schnell bei Problemen entstört. Der direkte Zugriff auf die Platten bringt via Monitoring Probleme vor Ausfall zum Vorschein. Im Beispiel packen wir eine Platte vor Reboot offline, bitte nicht nachmachen!

Bildschirmfoto 2024-12-18 um 11.23.54.jpg

Bildschirmfoto 2024-12-18 um 11.24.19.jpg

Trotz defektem Raid zeigt das Summarydashboard kein Problem. Hier muss mit Check_MK oder CV4PVE kontrolliert werden, oder...

Bildschirmfoto 2024-12-18 um 11.24.30.jpg

S.M.A.R.T Kontrolle via GUI aus Erfahrung oft noch ohne Fehler, während unser Check_MK Plugin schon Probleme erkennt!

Bildschirmfoto 2024-12-18 um 11.24.34.jpg

Bildschirmfoto 2024-12-18 um 11.24.50.jpg

Mühselige Kontrolle aller Systeme via GUI pro Host ist nicht praxistauglich!!!

Bildschirmfoto 2024-12-18 um 11.24.53.jpg

Musterinstallation Linux / Windows als VM

Der Postinstaller stellt die aktuelle Windows Treiber ISO in der Stabilen Version bereit, der Proxmox Installer das zweite Laufwerk dafür

Bildschirmfoto 2024-12-18 um 11.28.12.jpg

Bildschirmfoto 2024-12-18 um 11.28.19.jpg

i440FX als Maschinentyp und Bios sind inzwischen eher zu vermeiden, schliesslich soll der Kram lange laufen.

Funfact, i440FX war für die Pro Version des ersten Pentiums, dung ding da ding!


Bildschirmfoto 2024-12-18 um 11.28.43.jpg

Proxmox VE legt im ZFS oder Ceph ebenfalls einen Blockstorage für TPM und EFI Einstellungen an, diese werden Raw ohne Dateisystem geschrieben und haben nichts mit der EFI-Boot-Partition zu tun.

Die native Bildschirmauflösung des Systems wird in der VM beim Starten mit ESC eingestellt.

Der Virtio SCSI single Controller wird im Host als eigener Prozess und im Gast als eigener Controller pro Disk aktiviert

Der Qemu Agent sorgt für Shattenkopien, Freezing, Herunterfahren und mehr!

Bildschirmfoto 2024-12-18 um 11.29.33.jpg

Die Kombination von Discard, SSD Emulation, wie auch IO thread gibt bessere Auslastung und Entlastung von gelöschten Daten an den Host

Bildschirmfoto 2024-12-18 um 11.30.01.jpg

CPU Typ Host ist für identische Hardware in Clustern und Standalone zu bevorzugen, da hier alle Prozessorfunktionen genutzt werden

Bildschirmfoto 2024-12-18 um 11.30.41.jpg

Ballooning spart RAM beim einschalten und macht noch mehr. Treiber unter Windows sind notwendig

Bildschirmfoto 2024-12-18 um 11.31.00.jpg

Virtio Netzwerkkarten brauchen unter Windows eigene Treiber, performen aber bis 100Gbit

Bildschirmfoto 2024-12-18 um 11.31.21.jpg

Die eingebaute Replikation ist erst mal gut genug, auch wenn es mit Zsync besser geht. Dafür hat man, leider nur in der VM hier, Kontrolle über den Erfolg. Löscht man den Job, löscht sich das Replikat

Das Zeitfenster ist mit 15-60 Minuten optimal, mit einer Minute perfekt. Jedoch sollte man nicht jede VM auf eine Minute stellen. da hier das ZFS Auflisten zu Timeouts führt. 

Autosnapshotting ist nicht vorgesehen, leider!

Bildschirmfoto 2024-12-18 um 11.32.04.jpg

Bildschirmfoto 2024-12-18 um 11.32.23.jpg

Linux unterstützt alle Virtio Laufwerke und Netzwerkkarten nativ

Bildschirmfoto 2024-12-18 um 11.37.48.jpg

Installation Ceph

Der Assistent installiert die notwendigen Repositories. Wir empfehlen hier wenigstens die Community Subscription zu nehmen, da ein defekter Ceph-Cluster ein Single-Point-of-Failure ist

Bildschirmfoto 2024-12-18 um 11.44.26.jpg

Bildschirmfoto 2024-12-18 um 11.44.39.jpg

Bildschirmfoto 2024-12-18 um 11.46.22.jpg

Bildschirmfoto 2024-12-18 um 11.46.26.jpg

Die Auswahl der Netze für Cluster, Ceph, Rendundanz und weitere Segmentierungen sollten von einem Erfahrenen Fachmann vorgenommen werden. Wir empfehlen hier Inett aus Saarbrücken

Im aktuellen Setup können wir zum Testen nur das LAN nehmen, das wir ausdrücklich so nicht empfohlen!!!

Bildschirmfoto 2024-12-18 um 11.47.07.jpg

Bildschirmfoto 2024-12-18 um 11.47.37.jpg

Die Installation muss auf allen Clustermitgliedern wiederholt werden, wobei die Konfiguration via PVE Cluster übernommen wird

Jeder Host bekommt mindestens eine SSD als sog. OSD, ab drei Stück haben wir einen funktionierenden Ceph Cluster, ohne extra Sicherheit. Als Nettonutzplatz erhalten wir 1/3 der SSDs, in dem Fall knapp 1TB

Auf keinen Fall dafür in irgendeiner Weise Hardware Raid Controller nutzen!!!

Bildschirmfoto 2024-12-18 um 11.52.59.jpg

Ceph OSD Einrichtung

Bildschirmfoto 2024-12-18 um 11.53.32.jpg

Bildschirmfoto 2024-12-18 um 11.53.55.jpg

Ceph Pool anlegen

Der Pool verbindet die OSDs zum Verbund, die Rolle Monitor und Manager können auf mehrere Nodes verteilt werden, sonst wäre der Reboot des ersten Nodes nicht ohne Schaden möglich!

Bildschirmfoto 2024-12-18 um 11.54.36.jpg

Bildschirmfoto 2024-12-18 um 14.49.23.jpg

VM Migration Node zu Node

Die Übertragung einer laufenden VM oder eines LXC mit Shutdown ist bei ZFS und Ceph möglich.

Wärend bei CEPH der Speicher verteilt ist, muss bei ZFS RAM und Disk nocheinmalübertragen werden.

Bei vorheriger ZFS Replikation ist das meiste der VM schon auf dem Ziel und kann inkrementell ergänzr werden.

Gab es vorher keine Replikation muss die komplette VM übertragen werden.

Das Mittel der Übertragung ist je nach Zustand der VM via KVM oder ZFS möglich.

Ersteres würde zum Verlust von Snapshots führen!

Bildschirmfoto 2024-12-18 um 11.56.37.jpg

Bildschirmfoto 2024-12-18 um 11.56.53.jpg

Klonen zwischen ZFS und Ceph

Proxmox kann mit Bordmitteln die meisten Formate konvertieren.

Bildschirmfoto 2024-12-18 um 11.58.52.jpg

Qemu-Guest-Agent Installation

Dieses Paket für geordnetes Herunterfahren immer mitinstallieren und starten!

Bildschirmfoto 2024-12-18 um 12.02.01.jpg

IO Leistung der Systeme bei diesen Voraussetzungen

ZFS ist dreimal schneller und auf zwei Kisten verfügbar

Wir gehen von der sechsfachen benötigten Leistung aus um Leistungsmässig an ZFS Raid1 zu kommen

Bildschirmfoto 2024-12-18 um 12.11.17.jpg

Login für Root und PVE User mit zwei Faktor absichern!

Bildschirmfoto 2024-12-18 um 12.11.21.jpg

Bildschirmfoto 2024-12-18 um 12.11.35.jpg

Bildschirmfoto 2024-12-18 um 12.12.09.jpg

Weitere User benötigen entsprechende Rechte!

Bildschirmfoto 2024-12-18 um 12.12.28.jpg

Login Realm ist Linux User oder Proxmox Userbasis

Es können in der GUI keine weiteren Linux/PAM User angelegt werden, jedoch GUI aktiviert

Bildschirmfoto 2024-12-18 um 12.12.49.jpg

SSH Daemon gegen Passwort Login absichern

Bildschirmfoto 2024-12-18 um 12.13.29.jpg

Bildschirmfoto 2024-12-18 um 12.13.39.jpg

Eigene virtuelle Switche für VMs trennen das Verwaltungsnetz ab

Wenn die Resourcen vorhanden sind, dringend dafür sorgen daß Anwender und Gast VMs keinen Zugriff auf Proxmox VE, Switche und Firewalls haben

Bildschirmfoto 2024-12-18 um 12.14.57.jpg

Ein Blick auf ZFS klärt nicht welche VM auf welchem Host aktiv ist!

PVE1 und zwei sind auf den ersten Blick nicht zu unterscheiden, auch nicht mit Snapshotauflistung

Bildschirmfoto 2024-12-18 um 12.20.07.jpg

Bildschirmfoto 2024-12-18 um 12.20.50.jpg

Unser erweitertes Ablagekonzept macht die Funktion von abgelegten Daten viel deutlicher. Mehr auf cloudistboese.de

Bildschirmfoto 2024-12-18 um 12.21.29.jpg

Bildschirmfoto 2024-12-18 um 12.25.09.jpg

Prüfung der Replikationen muss mühselig pro VM vorgenommen werden

image.jpeg

Bildschirmfoto 2024-12-18 um 12.25.56.jpg

Leider zeigt das PVE Dashboard weder defekte Platten, noch Raids oder Replikationen in der Übersicht an. Hier wird später Check_MK oder CV4PVE für Übersicht sorgen müssen!

Bildschirmfoto 2024-12-18 um 12.26.11.jpg

Bildschirmfoto 2024-12-18 um 12.26.55.jpg

Postinstaller sichert komplette Konfiguration und dessen Historie mit Rsync und ZFS-Auto-Snapshot

Üblicherweise nutzen wir zfs-auto-snapshot gnadenlos auf alle Datasets und Volumes

Die Proxmox Konfiguration liegt jedoch in einer Datenbank und wird nach /etc/pve gemountet

Diesen Ordner sichern wir regelmässig nach /rpool/pveconf und bauen mit Autosnapshots eine Historie

Bildschirmfoto 2024-12-18 um 12.28.52.jpg

Hochverfügbarkeit einer VM / HA

Die HA Engine sorgt dafür daß VMs / LXC bei Ausfall eines Hosts auf einem anderen Host gestartet werden.

Der Übergang dauert mindestens zwei Minuten, wobei nur bei SAN oder CEPH kein Datenverlust entsteht

Bei ZFS verliert man dier die Replikationslücke!

Daher eignet sie  sich  am besten für Firewalls und Telefonanlagen


Die HA Gruppe definiert die gewünschte Ausführungspriorität, wobei höher mehr Prio hat

Prio 1 ist am niedrigsten

Bildschirmfoto 2024-12-18 um 13.20.48.jpg

Die VMs werden den Gruppen zugewiesen und definieren unseren Wunschort und Zustand

Bildschirmfoto 2024-12-18 um 13.21.03.jpg

Da PVE1 die höchste Priorität hatte wird VM 100 sofort dort hin migriert, die Replikation umgedreht

Bildschirmfoto 2024-12-18 um 13.21.24.jpg

Bildschirmfoto 2024-12-18 um 13.21.43.jpg

Wird ein Node neu gestartet, werden die VMs nicht automatisch umgezogen, sondern heruntergefahren.

Die Weboberfläche eines anderen Nodes muss dann geöffnet werden, die VMs vorher umgezogen werden!

Bildschirmfoto 2024-12-18 um 13.24.15.jpg

Bei Ceph sollte es kein Problem sein einen Node neuzustarten, jedoch muss dafür der Cluster redundant gebaut sein. Sonst besser alle VMs stoppen

Bildschirmfoto 2024-12-18 um 13.30.54.jpg

Bildschirmfoto 2024-12-18 um 13.33.21.jpg

Manuelle und automatische Snapshots

Manuelle Snapshots via GUI oder API werden mit dem passenden Datastoresnapshot ausgeführt, also ZFS, Ceph oder KVM

Bildschirmfoto 2024-12-18 um 13.36.44.jpg

Bei ZFS werden diese Zustände mitrepliziert und die Konfigurationsdatei um diesen Zustand erweitert

Bildschirmfoto 2024-12-18 um 13.37.17.jpg

Bildschirmfoto 2024-12-18 um 13.37.27.jpg

Bildschirmfoto 2024-12-18 um 13.37.32.jpg

Automatische Snapshots Monitoring und Management mit CV4PVE-Admin

kann eine sinnvolle Alternative zu zfs-auto-snapshot sein und ergänzt wichtige, fehlende Einblicke der PVE GUI

Bildschirmfoto 2024-12-18 um 13.38.57.jpg

Bildschirmfoto 2024-12-18 um 13.39.11.jpg

Bildschirmfoto 2024-12-18 um 13.40.57.jpg

Diese Anleitung scheint die sinnvollste, bitte auf eigene Maschine

Bildschirmfoto 2024-12-18 um 13.42.06.jpg

Bildschirmfoto 2024-12-18 um 13.45.00.jpg

Eigener PVE User plus gewünschte Rechte sind hier erklärt

Bildschirmfoto 2024-12-18 um 13.45.15.jpg

Bildschirmfoto 2024-12-18 um 13.45.28.jpg

Bildschirmfoto 2024-12-18 um 13.45.40.jpg

Bildschirmfoto 2024-12-18 um 13.45.52.jpg

Bildschirmfoto 2024-12-18 um 13.45.54.jpg

Bildschirmfoto 2024-12-18 um 13.46.13.jpg

Bildschirmfoto 2024-12-18 um 13.46.25.jpg

Bildschirmfoto 2024-12-18 um 13.47.36.jpg

Alle Replikationen mit Bordmitteln im Blick, nicht mehr jede VM muss aufgeklappt werden

Bildschirmfoto 2024-12-18 um 13.48.50.jpg

Automatische Snapshots können hier definiert werden, jedoch muss das Teil auf laufen

Bildschirmfoto 2024-12-18 um 13.51.18.jpg

Bildschirmfoto 2024-12-18 um 13.52.50.jpg

Bildschirmfoto 2024-12-18 um 13.53.32.jpg

Bildschirmfoto 2024-12-18 um 13.53.32.png

Bildschirmfoto 2024-12-18 um 13.53.50.jpg

ZFS Snapshots können via GUI nur einzeln zurückgerollt werden, hier ist Ceph im Vorteil

Bildschirmfoto 2024-12-18 um 13.53.50.png

Bildschirmfoto 2024-12-18 um 13.54.03.jpg

Bildschirmfoto 2024-12-18 um 13.54.03.png

Bildschirmfoto 2024-12-18 um 13.56.34.png

Replikation bricht nicht bei Rollback

Bildschirmfoto 2024-12-18 um 13.56.57.png

Proxmox kann von HW Raid, ZFS, BTRFS, jedoch nicht von Ceph booten

Den Ceph Zustand kann man nicht mit Check_MK Bordmitteln prüfen

Bildschirmfoto 2024-12-18 um 13.57.50.jpg

Datensicherung mit Proxmox Backup Server

Proxmox kann nativ erst mal nur eine Vollsicherung

Erst der Proxmox Backup Server bringt inkrementelle Backups und Management

Er kann auf einen bestehenden PVE installiert werden, alternativ auch als LXC

Bildschirmfoto 2024-12-18 um 14.03.19.jpg

Die Repos fehlen jedoch hier

Bildschirmfoto 2024-12-18 um 14.05.51.jpg

Bildschirmfoto 2024-12-18 um 14.06.08.png

Hier wäre aktuell Bookworm

Bildschirmfoto 2024-12-18 um 14.08.51.png

Bildschirmfoto 2024-12-18 um 14.09.02.png

Bildschirmfoto 2024-12-18 um 14.09.20.png

Zugriff in diesem Fall via PVE3 auf Port 8007 mit SSL

Bildschirmfoto 2024-12-18 um 14.09.48.jpg

Das Dateisystem könnte mit BTRFS, ZFS oder Ext4 bereitgestellt werden, wobei Ext4 keine Snapshots zum Absichern von Backups beherrscht, dafür 100% Platzausnutzung

Bildschirmfoto 2024-12-18 um 14.18.43.png

Bildschirmfoto 2024-12-18 um 14.19.30.jpg

Der Backupstore wird als Mountpoint bereitgestellt. SMB performt hier sehr schlecht

Root User plus Backupuser werden mit 2fa abgesichert!

Bildschirmfoto 2024-12-18 um 14.24.09.jpg

Bildschirmfoto 2024-12-18 um 14.24.13.jpg

Bildschirmfoto 2024-12-18 um 14.24.25.jpg

Bildschirmfoto 2024-12-18 um 14.24.32.jpg

Für die Sicherung benötigen wir einen Token auf den Backupuser

Bildschirmfoto 2024-12-18 um 14.24.45.jpg

Backup Benutzer und -Token benötigen die Berechtigung Datastore Backup

Bildschirmfoto 2024-12-18 um 14.25.28.jpg

Bildschirmfoto 2024-12-18 um 14.25.34.jpg

Bildschirmfoto 2024-12-18 um 14.25.44.jpg

Für den Datastore in PVE benötigen wir mehrere Parameter

Bildschirmfoto 2024-12-18 um 14.26.11.jpg

Oben den Datastorenamens seitens PVE, den Tokennamen wie sein Passwort.

Auf der Rechten Seite der Datastorename aus dem PBS und unten dessen Fingerabdruck, den wir auf der Startseite des PBS finden

Bildschirmfoto 2024-12-18 um 14.27.28.jpg

Danach taucht der Backupstore in jedem PVE auf, wenn gewünscht

Bildschirmfoto 2024-12-18 um 14.27.49.jpg

Achtung, das Bootvolume von PVE ist per Default auch als Backupstore definiert, weg damit!

Bildschirmfoto 2024-12-18 um 14.28.24.jpg

Bildschirmfoto 2024-12-18 um 14.28.30.jpg

Bildschirmfoto 2024-12-18 um 14.28.31.jpg

Erstes manuelles Backup zeigt den Dirty-Bitmap Status: created-new, was eine Vollsicherung bedeutet

Bildschirmfoto 2024-12-18 um 14.29.02.jpg

Bildschirmfoto 2024-12-18 um 14.29.19.jpg

Bildschirmfoto 2024-12-18 um 14.30.15.jpg

Die zweite Sicherung wird dann inkrementell durchgeführt, bis die VM gestoppt wird!!!

Bildschirmfoto 2024-12-18 um 14.30.40.jpg

Bildschirmfoto 2024-12-18 um 14.31.05.jpg

Löschen einer Sicherung ist gewollt nicht über PVE möglich, in PBS kann man das manuell durchführen oder automatisch.

Der Platz wird erst nach einem Prune lauf freigegeben!

Bildschirmfoto 2024-12-18 um 14.31.11.jpg

Bildschirmfoto 2024-12-18 um 14.31.34.jpg

Nach einem Reboot des Hosts oder Stoppen des Gasts wird wieder eine Vollsicherung durchgeführt, jedoch nur neue Chunks auf das Ziel geschrieben. Dadurch geht das auch noch relativ flott. Siehe die MB angaben unten bei der Sicherung

Bildschirmfoto 2024-12-18 um 14.32.32.jpg

Bildschirmfoto 2024-12-18 um 14.33.02.jpg

Für den automatischen Lauf immer VMs ausschliessen oder alles mitnehmen. Eine Auswahl der VMs führt zu Fehlern über die Zeit durch Unterlassung

Bildschirmfoto 2024-12-18 um 14.35.48.jpg

Die Retention, also das Aufräumen hier ist nicht sinnvoll, noch möglich

Bildschirmfoto 2024-12-18 um 14.36.48.jpg

In Prunejobs regelst Du die Aufhebezeiten und die Ausführung der Regel, was aber nur für die Auswahl relevant ist. Der Vorgang geht relativ schnell

Der Simulator von Proxmox hilft dabei

Bildschirmfoto 2024-12-18 um 14.37.41.jpg

Bildschirmfoto 2024-12-18 um 14.38.41.jpg

Bildschirmfoto 2024-12-18 um 14.38.50.jpg

Die Garbage Collection räumt dann alle Junks auf die in keinem Backup mehr benötigt werden.

Der Vorgang hat hohe Last und dauert, also bei Stilstand ausführen

Bildschirmfoto 2024-12-18 um 14.39.20.jpg

dBildschirmfoto 2024-12-18 um 14.40.54.jpg

Der Verify Job überprüft regelmässig die Vollständigkeit der Junks und die Integrität der Backups.  Der Erfolg wird in der Rechten Spalte in PVE und PBS angezeigt

Bildschirmfoto 2024-12-18 um 14.41.35.jpg

Bildschirmfoto 2024-12-18 um 14.41.55.jpg

Bildschirmfoto 2024-12-18 um 14.42.01.jpg

Optional Replikationskontrolle mit checkzfs von #Bashclub

Da unklar ist welcher Host gerade welche ZFS Maschine aktiv betreibt, bleibt uns nur den Vergleich aller Datastores gegeneinander.

Der Vorgang sollte nur ausgeführt werden wenn gerade keine Replikation läuf, sonst spuckt er Fehler

Bildschirmfoto 2024-12-18 um 14.59.16.jpg

Bildschirmfoto 2024-12-18 um 15.01.43 1.jpg

Bildschirmfoto 2024-12-18 um 15.01.43.jpg

Bildschirmfoto 2024-12-18 um 15.01.45.jpg

Für diesen Anwendungsfall ist eventuell CV4PVE einfacher, da es auch viele Teile vom Monitoring übernimmt

Bildschirmfoto 2024-12-18 um 15.17.28.jpg

Vielen Dank für Ihre Aufmerksamkeit

Christian-Peter Zengel (sysops.tv)

Resourcen

https://aow.de/books/ubersicht-des-projekts/page/prospekt - Unser aktueller Prospekt

https://aow.de - Linkliste zu allen Projekten

https://cloudistboese.de - Schulungsportal, alle Kurse können kostenfrei wiederholt werden. Kurse meist online, auch vor Ort

http://youtube.com/sysopstv - Livesendung Montags und Donnerstags gegen 17:15h, Donnerstags Stammtisch online