Proxmox VE Grundlagen
Open-Source Virtualisierungsplattform fuer VMs und Container. Enterprise-Features ohne Enterprise-Kosten.
🖥️ Was ist Proxmox VE?
Proxmox Virtual Environment (PVE) ist eine Open-Source Virtualisierungsplattform, die KVM-basierte virtuelle Maschinen und LXC-Container auf einer einheitlichen Oberflaeche vereint.
KVM - Virtuelle Maschinen
- Vollstaendige Hardware-Virtualisierung
- Jedes Betriebssystem moeglich
- Eigener Kernel pro VM
- Hoechste Isolation
LXC - Container
- OS-Level Virtualisierung
- Nur Linux-Gaeste
- Teilen Host-Kernel
- Minimaler Overhead
Wann VM, wann Container?
- VM: Windows, BSD, andere Kernels, maximale Isolation, Kernel-Module
- LXC: Linux-Services, Docker-Host, leichtgewichtig, schneller Start
💿 Installation
Proxmox VE wird als eigenstaendiges ISO installiert, nicht als Paket auf bestehendem Debian.
Systemanforderungen
| Komponente | Minimum | Empfohlen |
|---|---|---|
| CPU | 64-bit mit VT-x/AMD-V | Multi-Core mit VT-d/IOMMU |
| RAM | 2 GB | 16+ GB (je nach VMs) |
| Storage | 32 GB SSD | NVMe SSD + separate Daten-Disks |
| Netzwerk | 1x Gigabit | 2x 10 GbE (Management + Storage) |
# ISO von proxmox.com herunterladen
# https://www.proxmox.com/en/downloads
# USB-Stick erstellen (Linux)
sudo dd bs=1M conv=fdatasync if=proxmox-ve_*.iso of=/dev/sdX status=progress
# Oder mit Ventoy (empfohlen)
# ISO einfach auf Ventoy-USB kopieren
Installations-Schritte
- Von USB booten, "Install Proxmox VE" waehlen
- Ziel-Festplatte waehlen (wird komplett ueberschrieben!)
- Land, Zeitzone, Tastaturlayout
- Root-Passwort und E-Mail setzen
- Netzwerk: Hostname, IP, Gateway, DNS
- Installation starten, nach Reboot USB entfernen
BIOS-Einstellungen prüfen
Vor der Installation im BIOS/UEFI aktivieren: VT-x/AMD-V (Virtualisierung) und VT-d/IOMMU (fuer GPU/PCIe-Passthrough).
🌐 Web-Interface
Nach der Installation erreichst du Proxmox ueber den Browser:
https://DEINE-IP:8006
Benutzer: root
Passwort: [bei Installation gesetzt]
Realm: Linux PAM standard authentication
Wichtige Bereiche
- Datacenter: Cluster-weite Einstellungen, Storage, Backup
- Node (pve): Server-spezifisch - Shell, Netzwerk, Disks
- VM/CT: Hardware, Optionen, Snapshots, Backup
- Summary: Ressourcen-Ueberblick (CPU, RAM, Storage)
Subscription-Warnung entfernen
Die "No valid subscription"-Meldung ist nur ein Hinweis, keine Einschraenkung. Enterprise-Repository deaktivieren und No-Subscription-Repo aktivieren:
# Enterprise-Repo deaktivieren
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
# No-Subscription-Repo hinzufuegen
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt dist-upgrade
🖥️ Virtuelle Maschinen erstellen
VMs bieten vollstaendige Hardware-Virtualisierung fuer jedes Betriebssystem.
1. ISO hochladen
Datacenter → Storage (local) → ISO Images → Upload
2. VM erstellen (Web-UI)
Rechtsklick auf Node → Create VM
| Tab | Empfehlung |
|---|---|
| General | VM ID (eindeutig), Name |
| OS | ISO waehlen, Guest OS Type |
| System | UEFI (q35) fuer moderne OS, BIOS (i440fx) fuer Legacy |
| Disks | VirtIO SCSI, Cache: Write back, Discard: on (SSD) |
| CPU | Type: host (beste Performance) |
| Memory | Ballooning fuer dynamisches RAM |
| Network | VirtIO (Linux), Intel E1000 (Windows ohne Treiber) |
# VM mit ID 100 erstellen
qm create 100 \
--name "debian-server" \
--memory 4096 \
--cores 2 \
--cpu host \
--net0 virtio,bridge=vmbr0 \
--scsihw virtio-scsi-pci \
--scsi0 local-lvm:32,discard=on \
--ide2 local:iso/debian-12-amd64.iso,media=cdrom \
--boot order=scsi0;ide2
# VM starten
qm start 100
# VM stoppen
qm stop 100
# VM-Konfiguration anzeigen
qm config 100
VirtIO-Treiber fuer Windows
Fuer Windows-VMs die VirtIO-Treiber-ISO einbinden:
virtio-win.iso
Waehrend der Installation als zweites CD-Laufwerk einbinden.
📦 LXC Container erstellen
LXC Container sind leichtgewichtiger als VMs und ideal fuer Linux-Services.
1. Template herunterladen
Datacenter → Storage (local) → CT Templates → Templates
Oder per CLI:
# Verfuegbare Templates anzeigen
pveam available
# Template herunterladen
pveam download local debian-12-standard_12.2-1_amd64.tar.zst
# Heruntergeladene Templates
pveam list local
2. Container erstellen (Web-UI)
Rechtsklick auf Node → Create CT
# Container mit ID 200 erstellen
pct create 200 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \
--hostname docker-host \
--memory 2048 \
--cores 2 \
--net0 name=eth0,bridge=vmbr0,ip=dhcp \
--rootfs local-lvm:8 \
--unprivileged 1 \
--features nesting=1 \
--password
# Container starten
pct start 200
# In Container einloggen
pct enter 200
# Container stoppen
pct stop 200
# Container-Konfiguration
pct config 200
Privileged vs Unprivileged
- Unprivileged (Standard): Sicherer, UID-Mapping, empfohlen
- Privileged: Voller Root-Zugriff, noetig fuer manche Anwendungen (NFS, etc.)
# In der Container-Config (/etc/pve/lxc/200.conf):
features: nesting=1,keyctl=1
# Nach Aenderung Container neu starten
pct reboot 200
# Im Container Docker installieren
apt update && apt install -y docker.io docker-compose
LXC-Limitierungen
- Nur Linux-Gaeste (teilen Host-Kernel)
- Kein eigener Kernel/Kernel-Module moeglich
- Manche Software benoetigt privilegierten Container
💾 Storage Management
Proxmox unterstuetzt verschiedene Storage-Typen fuer unterschiedliche Anwendungsfaelle.
| Typ | Use-Case | Snapshots |
|---|---|---|
| local | ISOs, Templates, Backups | - |
| local-lvm | VM/CT Disks (Standard) | Ja |
| ZFS | VMs, Snapshots, Replikation | Ja (schnell) |
| Ceph | Cluster-Storage, HA | Ja |
| NFS/CIFS | Netzwerk-Storage, Backups | Nein |
# Storage-Uebersicht
pvesm status
# Disk-Nutzung
pvesm list local-lvm
# Neue Disk zu VM hinzufuegen
qm set 100 -scsi1 local-lvm:50
# Disk vergroessern
qm resize 100 scsi0 +20G
# ZFS-Pool erstellen (Mirror)
zpool create -f tank mirror /dev/sdb /dev/sdc
# ZFS als Storage hinzufuegen
pvesm add zfspool tank-storage -pool tank
ZFS-Empfehlung
Fuer Produktiv-Systeme ist ZFS empfohlen:
- Integrierte Checksummen (Bit-Rot Schutz)
- Schnelle Snapshots
- Kompression (lz4)
- Replikation zwischen Nodes
🌐 Netzwerk-Konfiguration
Proxmox nutzt Linux Bridges fuer die Netzwerk-Virtualisierung.
Standard-Konfiguration
vmbr0 ─────┬───── enp0s31f6 (physisches Interface)
│
├───── VM 100
├───── VM 101
└───── CT 200
# Physisches Interface (nicht direkt nutzen)
iface enp0s31f6 inet manual
# Bridge (Standard)
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports enp0s31f6
bridge-stp off
bridge-fd 0
# VLAN-aware Bridge
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports enp0s31f6
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
# Netzwerk-Konfiguration neu laden
ifreload -a
# Bridge-Status
brctl show
# IP-Adressen
ip a
# VM-Netzwerk aendern
qm set 100 -net0 virtio,bridge=vmbr0,tag=100
# tag=100 → VLAN 100
VLANs nutzen
Mit VLAN-aware Bridge koennen VMs verschiedenen VLANs zugewiesen werden. Im VM/CT Network-Tab einfach den VLAN-Tag setzen.
💾 Backup & Snapshots
Proxmox bietet integrierte Backup-Funktionen und Snapshots.
Snapshots
- Zustand zu einem Zeitpunkt
- Schnell erstellen/wiederherstellen
- Auf gleichem Storage
- Fuer: Tests, vor Updates
Backups
- Vollstaendige Kopie
- Komprimiert als Datei
- Auf anderen Storage
- Fuer: Disaster Recovery
# Snapshot erstellen
qm snapshot 100 snap1 --description "Vor Update"
# Snapshots auflisten
qm listsnapshot 100
# Snapshot wiederherstellen
qm rollback 100 snap1
# Snapshot loeschen
qm delsnapshot 100 snap1
# Container-Snapshot
pct snapshot 200 snap1
pct rollback 200 snap1
# Manuelles Backup (VM)
vzdump 100 --storage local --mode snapshot --compress zstd
# Manuelles Backup (Container)
vzdump 200 --storage local --mode snapshot --compress zstd
# Backup wiederherstellen
qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 100
pct restore 200 /var/lib/vz/dump/vzdump-lxc-200-*.tar.zst
# Backup-Inhalt anzeigen
vzdump --info /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst
Automatische Backups
Datacenter → Backup → Add
# /etc/pve/jobs.cfg
vzdump: backup-daily
enabled 1
schedule *-*-* 02:00:00
storage backup-nfs
mode snapshot
compress zstd
mailnotification always
mailto admin@example.com
all 1
Backup-Strategie
- 3-2-1 Regel: 3 Kopien, 2 Medien, 1 Offsite
- Backups regelmaessig testen (Restore!)
- Retention-Policy definieren
⌨️ Wichtige CLI-Befehle
Die wichtigsten Befehle fuer die Proxmox-Administration.
# VMs auflisten
qm list
# VM starten/stoppen
qm start 100
qm stop 100
qm shutdown 100 # graceful
qm reboot 100
# VM-Status
qm status 100
# VM-Konfiguration
qm config 100
# VM loeschen
qm destroy 100
# Auf VM-Konsole zugreifen
qm terminal 100
# VM klonen
qm clone 100 101 --name "clone-vm" --full
# VM migrieren (anderer Node)
qm migrate 100 pve2 --online
# Container auflisten
pct list
# Container starten/stoppen
pct start 200
pct stop 200
pct shutdown 200
pct reboot 200
# In Container einloggen
pct enter 200
# Container-Konfiguration
pct config 200
# Container loeschen
pct destroy 200
# Befehl in Container ausfuehren
pct exec 200 -- apt update
# Proxmox-Version
pveversion -v
# Node-Status
pvesh get /nodes
# Cluster-Status (wenn Cluster)
pvecm status
# Storage-Status
pvesm status
# Ressourcen-Nutzung
pvesh get /nodes/pve/status
# Services neu starten
systemctl restart pvedaemon
systemctl restart pveproxy
# Updates
apt update && apt dist-upgrade
# Logs
journalctl -u pvedaemon
journalctl -u pve-cluster
# Disks anzeigen
lsblk -f
fdisk -l
# ZFS-Status
zpool status
zfs list
# LVM-Status
lvs
vgs
pvs
# Thin-Pool Status
lvs -a | grep thin
⚡ Performance-Tipps
Optimierungen fuer bessere VM/Container-Performance.
| Bereich | Empfehlung |
|---|---|
| CPU-Typ | host statt kvm64 |
| Disk Controller | VirtIO SCSI (scsi) statt IDE |
| Disk Cache | writeback fuer SSD mit BBU |
| Discard/TRIM | Aktivieren fuer SSDs |
| Netzwerk | VirtIO (virtio) statt E1000 |
| Ballooning | Aktivieren fuer dynamisches RAM |
| NUMA | Aktivieren bei Multi-Socket |
# /etc/pve/qemu-server/100.conf
cpu: host
scsihw: virtio-scsi-single
scsi0: local-lvm:vm-100-disk-0,discard=on,iothread=1,ssd=1
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0
balloon: 2048
numa: 1
IOThreads
iothread=1 bei VirtIO SCSI Single verbessert
die Disk-Performance bei mehreren Disks erheblich.
🔧 Troubleshooting
# VM startet nicht - Log pruefen
qm start 100
journalctl -u pve-qemu-server@100
# Container startet nicht
pct start 200
dmesg | tail -50
# Web-Interface nicht erreichbar
systemctl status pveproxy
systemctl restart pveproxy
# Storage voll
pvesm status
lvs
df -h
# Cluster-Probleme
pvecm status
pvecm expected 1 # bei Split-Brain (Vorsicht!)
# QEMU Guest Agent nicht verbunden
qm agent 100 ping
# In VM: apt install qemu-guest-agent
# Proxmox-Logs
journalctl -u pvedaemon -f
journalctl -u pve-cluster -f
journalctl -u pveproxy -f
# VM-spezifische Logs
journalctl -u pve-qemu-server@100
# System-Logs
dmesg | tail -100
cat /var/log/syslog | tail -100
# Task-Log (Web-UI Aufgaben)
cat /var/log/pve/tasks/active
Daten-Verlust vermeiden
- Niemals
qm destroyohne Backup - Bei Cluster: Quorum-Regeln beachten
- Storage-Aenderungen vorher planen
- ZFS: Niemals
zpool destroyohne Backup
Proxmox-Setup gesucht?
Wir helfen bei der Planung und Einrichtung deiner Virtualisierungs-Infrastruktur.
Kontakt aufnehmen →