#!/bin/bash # ============================================================================= # Swap Setup für Proxmox LXC Container # ============================================================================= # # WICHTIG: Dieses Script muss auf dem PROXMOX HOST ausgeführt werden, # NICHT im LXC Container selbst! # # Swap auf ZFS-basierten LXC Containern funktioniert nicht direkt im Container. # Stattdessen muss Swap auf Host-Ebene konfiguriert werden. # # ============================================================================= set -e echo "==============================================" echo " Swap Setup für Proxmox LXC Container" echo "==============================================" echo "" echo "WICHTIG: Dieses Script muss auf dem PROXMOX HOST ausgeführt werden!" echo "" # Prüfen ob wir auf dem Host sind if [ -f /etc/pve/local/qemu-server ] || pveversion &>/dev/null; then echo "✓ Proxmox Host erkannt" else echo "✗ FEHLER: Dieses Script muss auf dem Proxmox Host ausgeführt werden!" echo "" echo "Optionen für LXC Container auf ZFS:" echo "" echo "Option 1: Swap ZVOL auf Host erstellen (empfohlen)" echo " Auf dem Proxmox Host ausführen:" echo " zfs create -V 4G -b 4096 -o compression=zle \\" echo " -o logbias=throughput -o sync=standard \\" echo " -o primarycache=metadata -o secondarycache=none \\" echo " zfs_ssd2/swap" echo " mkswap /dev/zvol/zfs_ssd2/swap" echo " swapon /dev/zvol/zfs_ssd2/swap" echo " echo '/dev/zvol/zfs_ssd2/swap none swap defaults 0 0' >> /etc/fstab" echo "" echo "Option 2: Container Memory Limit erhöhen" echo " In Proxmox GUI oder via CLI:" echo " pct set 700 -memory 12288 # 12GB RAM" echo "" echo "Option 3: Build auf separatem Server" echo " GitHub Actions Runner für Builds nutzen" echo "" exit 1 fi # Für Proxmox Host: ZVOL für Swap erstellen POOL="zfs_ssd2" ZVOL_NAME="swap" ZVOL_SIZE="4G" ZVOL_PATH="/dev/zvol/${POOL}/${ZVOL_NAME}" echo "Erstelle Swap ZVOL: ${POOL}/${ZVOL_NAME} (${ZVOL_SIZE})" # Prüfen ob ZVOL bereits existiert if zfs list "${POOL}/${ZVOL_NAME}" &>/dev/null; then echo "ZVOL ${POOL}/${ZVOL_NAME} existiert bereits" else zfs create -V ${ZVOL_SIZE} -b 4096 \ -o compression=zle \ -o logbias=throughput \ -o sync=standard \ -o primarycache=metadata \ -o secondarycache=none \ "${POOL}/${ZVOL_NAME}" echo "✓ ZVOL erstellt" fi # Swap formatieren und aktivieren if ! swapon --show | grep -q "${ZVOL_PATH}"; then mkswap "${ZVOL_PATH}" swapon "${ZVOL_PATH}" echo "✓ Swap aktiviert" else echo "Swap bereits aktiv" fi # Zu fstab hinzufügen if ! grep -q "${ZVOL_PATH}" /etc/fstab; then echo "${ZVOL_PATH} none swap defaults 0 0" >> /etc/fstab echo "✓ Zu /etc/fstab hinzugefügt" else echo "Bereits in /etc/fstab" fi echo "" echo "==============================================" echo " Swap Setup abgeschlossen" echo "==============================================" free -h