mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +00:00
feat(post-install): rebuild Log2RAM with the journal and task logs kept on disk
This commit is contained in:
@@ -79,7 +79,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM (SSD-bewusst, auto)",
|
||||
"what": "Reduziert SSD-/NVMe-Verschleiß durch Verschieben von /var/log in eine tmpfs-RAM-Disk mit regelmäßiger Synchronisierung auf Datenträger. Installation aus dem Upstream-Projekt bei SSD oder NVMe als Systemplatte. Die Größe richtet sich nach dem Host-RAM (128M / 256M / 512M). Ein Schutz leert alte Journale ab 80% Belegung und kürzt stark wachsende Logs ab 92% vor dem Schreiben. Regelmäßige Synchronisierung wird geplant und journald an den verfügbaren Platz angepasst. Details unter <link>Log2RAM</link>.",
|
||||
"what": "Reduziert SSD-/NVMe-Verschleiß durch Verschieben von /var/log in eine tmpfs-RAM-Disk, die nach Zeitplan auf den Datenträger geschrieben wird. Installation aus dem Upstream-Projekt bei SSD oder NVMe als Systemplatte. Die Größe richtet sich nach dem Host-RAM (128M / 256M / 512M); eine Überwachung rotiert und schreibt die Logs, wenn die RAM-Disk 85 % überschreitet. Das Journal und die Task-Logs von Proxmox VE und Proxmox Backup Server bleiben auf dem Datenträger. Alle Details unter <link>Log2RAM</link>.",
|
||||
"category": "Speicher",
|
||||
"categorySlug": "storage"
|
||||
},
|
||||
@@ -109,7 +109,7 @@
|
||||
}
|
||||
],
|
||||
"hardwareTitle": "Hardwareabhängige Standardwerte",
|
||||
"hardwareBody": "Das Skript liest die Host-Hardware vor dem Anwenden von Einstellungen. Log2RAM ist standardmäßig nur auf SSD / NVMe Root-Festplatten installiert (es wird aufgefordert, wenn die Erkennung etwas anderes sagt). Die Ramdisk-Größe von Log2RAM wird aus der Gesamt-RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>) ausgewählt. Die Journald-Limits werden an die Ramdisk-Größe angepasst, wenn Log2RAM aktiv ist, um ein Ausfüllen zu vermeiden.",
|
||||
"hardwareBody": "Das Skript liest die Host-Hardware vor dem Anwenden von Einstellungen. Log2RAM ist standardmäßig nur auf SSD / NVMe Root-Festplatten installiert (es wird aufgefordert, wenn die Erkennung etwas anderes sagt). Die Ramdisk-Größe von Log2RAM wird aus der Gesamt-RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>) ausgewählt. Bei aktivem Log2RAM bleibt das Journal mit eigener Grenze auf dem Datenträger.",
|
||||
"upgrade": {
|
||||
"heading": "Paketlisten und System aktualisieren",
|
||||
"intro": "Der erste Schritt der automatisierten Nachinstallation ist das Proxmox-Upgrade. Für einen laufenden Host innerhalb derselben Hauptversion empfiehlt Proxmox selbst:",
|
||||
|
||||
@@ -133,25 +133,25 @@
|
||||
},
|
||||
"log2ram": {
|
||||
"title": "Log2RAM installieren (SSD/NVMe Verschleißreduzierung)",
|
||||
"intro": "Log2RAM bindet <code>/var/log</code> als tmpfs-RAM-Disk ein und synchronisiert regelmäßig auf den Datenträger. Das Puffern häufiger journald-Schreibvorgänge im RAM kann SSD-Verschleiß und Datenträger-I/O verringern. Synchronisierung und sauberes Herunterfahren sichern die Logs; bei abruptem Stromausfall können Einträge seit der letzten Synchronisierung verloren gehen.",
|
||||
"intro": "Log2RAM bindet <code>/var/log</code> als tmpfs-RAM-Disk ein und schreibt sie nach Zeitplan auf den Datenträger, sodass ständig wechselnde Logs wie das Zugriffslog von pveproxy in den RAM statt auf die System-SSD geschrieben werden. Das Journal und die Task-Logs von Proxmox VE und Proxmox Backup Server bleiben auf dem Datenträger. Ein sauberes Herunterfahren schreibt die RAM-Disk auf den Datenträger; bei einem abrupten Stromausfall gehen nur die seit der letzten Synchronisierung geschriebenen Textlogs verloren.",
|
||||
"upstreamLabel": "Vorgelagertes Projekt:",
|
||||
"upstreamUrl": "https://github.com/azlux/log2ram",
|
||||
"upstreamLinkLabel": "azlux/log2ram auf GitHub",
|
||||
"doesLabel": "Was ProxMenux tut:",
|
||||
"doesItems": [
|
||||
"Erkennt anhand von <code>/sys/block/<dev>/queue/rotational</code>, ob die Systemplatte SSD/NVMe ist. Bei einer rotierenden Festplatte fragt die automatisierte Variante vor der Installation nach.",
|
||||
"Klont das Originalprojekt (<code>azlux/log2ram</code>) nach <code>/tmp/log2ram</code> und passt <code>install.sh</code> an: <code>rsync -aAXv</code> wird durch <code>rsync -aXv --no-acls</code> ersetzt. Dadurch wird der Fehler <em>set_acl: Operation not supported</em> mit Exitcode 23 vermieden, der beim Verschieben von /var/log auf Dateisystemen ohne ACL-Unterstützung auftreten kann. Die systemd-Unit <code>log2ram</code> wird nach Installation aktiviert.",
|
||||
"Installiert Log2RAM 1.7.2 aus dem Upstream-Projekt, prüft, dass der Download genau diese Version ist, und lässt den Code unverändert. Die Fehler-E-Mail wird mit <code>NOTIFICATION=false</code> abgeschaltet, da Proxmox VE keinen Mail-Befehl mitbringt.",
|
||||
"Größe der Ramdisk auf Basis des Hosts RAM: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>> 16 GB → 512M</code>. Schreibt den Wert in <code>SIZE=</code> in <code>/etc/log2ram.conf</code>.",
|
||||
"Plant eine regelmäßige Datenträgersynchronisierung über <code>/etc/cron.d/log2ram</code>: alle 1 / 3 / 6 Stunden entsprechend derselben RAM-Stufe.",
|
||||
"Installiert den Schutz <code>/usr/local/bin/log2ram-check.sh</code>, der über <code>/etc/cron.d/log2ram-auto-sync</code> alle 10 Minuten läuft. Bei 80% Belegung von <code>/var/log</code> bereinigt er journald. Bei 92% führt er zunächst <code>logrotate -f /etc/logrotate.d/proxmox-backup-api</code> aus, falls die Datei existiert: Die PBS-API-Logs sind oft der größte Platzverbraucher auf einem PBS-Host. Danach kürzt er <code>pveproxy access/error</code> und <code>pveam.log</code> vor der Synchronisierung. <code>log2ram write</code> allein kopiert tmpfs auf Disk, verkleinert es aber nicht. Der Schutz hilft gegen PVE-Ausfälle mit <em>No space left on device</em> durch unkontrolliertes Logwachstum.",
|
||||
"Erkennt den Dienst <code>proxmox-backup-server</code> auf dem Host. Falls vorhanden, erstellt es <code>/etc/logrotate.d/proxmox-backup-api</code> (20 MB × 3 Rotationen) und <code>/etc/cron.hourly/proxmox-backup-logrotate</code>, damit die häufig stark wachsenden PBS-API-Logs auch zwischen Log2RAM-Synchronisierungen begrenzt werden. Ohne PBS erfolgt keine Änderung.",
|
||||
"Stellt systemd-journald-Grenzwerte (<code>SystemMaxUse</code>, <code>RuntimeMaxUse</code>) so ein, dass sie in die Ramdisk passen, so dass ein einzelner Burst sie nicht füllen kann.",
|
||||
"Wird in <code>installed_tools.json</code> erfasst und kann über Optimierungen deinstallieren rückgängig gemacht werden."
|
||||
"Hält das Journal (<code>/var/log/journal</code>), die Task-Logs von Proxmox VE (<code>/var/log/pve</code>) und, falls installiert, die Logs von Proxmox Backup Server (<code>/var/log/proxmox-backup</code>) auf dem Datenträger, in <code>/var/hdd.journal</code>, <code>/var/hdd.pve</code> und <code>/var/hdd.proxmox-backup</code>. Jeder übliche Pfad wird zu einem Link auf seinen Ordner auf dem Datenträger. Die Verschiebung erfolgt beim Start, bevor Log2RAM startet.",
|
||||
"Schreibt die RAM-Disk mit dem Log2RAM-Timer alle 1 / 3 / 6 Stunden entsprechend derselben RAM-Stufe auf den Datenträger und leert nach jedem Schreiben den Datenträger-Cache, sodass eine abgeschlossene Synchronisierung einen Stromausfall übersteht.",
|
||||
"Installiert eine Überwachung in <code>/etc/cron.d/log2ram-auto-sync</code>, die alle 10 Minuten läuft. Überschreitet <code>/var/log</code> 85 % der RAM-Disk, rotiert sie die Logs, komprimiert die gerade rotierten und schreibt alles auf den Datenträger. Kein Log wird geleert.",
|
||||
"Hält das systemd-Journal mit einer Grenze von 1 GB auf dem Datenträger, in <code>/etc/systemd/journald.conf.d/proxmenux-log2ram.conf</code>. Auf einem Host mit Proxmox Backup Server kommt <code>/etc/logrotate.d/proxmox-backup-api</code> (20 MB × 3 Rotationen) für dessen API-Logs hinzu.",
|
||||
"Registriert sich in <code>installed_tools.json</code>, damit es über Optimierungen deinstallieren rückgängig gemacht werden kann. Ein Update von einer früheren Version behält Größe und Synchronisierungsintervall bei und verlegt das Journal beim nächsten Start auf den Datenträger."
|
||||
],
|
||||
"howUseLabel": "Wie zu verwenden:",
|
||||
"howUseBody": "Die automatisierte Variante installiert Log2RAM unbeaufsichtigt bei erkanntem SSD-/NVMe-Systemlaufwerk. Die anpassbare Variante fragt nach Größe, Intervall und Auto-Sync-Schutz. Die Abfrage nennt derzeit 90%, das erzeugte Skript nutzt jedoch 80% für Bereinigung und 92% für die oben beschriebene intensive Bereinigung.",
|
||||
"howUseBody": "Die automatisierte Variante installiert Log2RAM unbeaufsichtigt bei erkanntem SSD-/NVMe-Systemlaufwerk. Die anpassbare Variante fragt nach Größe, Synchronisierungsintervall und ob die Überwachung aktiviert werden soll. Die Änderungen werden beim nächsten Start wirksam.",
|
||||
"verifyLabel": "Überprüfen und Verwalten aus der Shell:",
|
||||
"verifyCode": "# Service state and configured timers\nsystemctl status log2ram\nsystemctl list-timers log2ram*\n\n# Current ramdisk usage — /var/log IS the tmpfs itself\ndf -h /var/log\n\n# Force a sync now (tmpfs → disk); does NOT shrink the tmpfs\nlog2ram write\n\n# Trigger the auto-sync guard on demand (vacuum + sync when usage is high)\n/usr/local/bin/log2ram-check.sh\n\n# Current config: SIZE, mail settings, path\ncat /etc/log2ram.conf\n\n# ProxMenux-specific cron jobs\ncat /etc/cron.d/log2ram /etc/cron.d/log2ram-auto-sync\n\n# Recent Log2RAM activity\njournalctl -u log2ram -n 50 --no-pager"
|
||||
"verifyCode": "# Service state and sync timer\nsystemctl status log2ram\nsystemctl list-timers log2ram-daily.timer\n\n# Ramdisk usage — /var/log IS the tmpfs itself\ndf -h /var/log\n\n# Folders kept on disk, and the journal size\nls -l /var/log | grep -- '->'\njournalctl --disk-usage\n\n# Write the ramdisk to disk now\nsystemctl reload log2ram\n\n# Current configuration\ncat /etc/log2ram.conf\nsystemctl cat log2ram\n\n# Recent Log2RAM activity\njournalctl -u log2ram -n 50 --no-pager"
|
||||
},
|
||||
"zram": {
|
||||
"title": "ZRAM-Swap-Profil aktivieren",
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM",
|
||||
"restores": "Stoppt und deaktiviert Dienst und Timer. Entfernt Cron-Jobs, systemd-Units, Programmdateien, Konfiguration und /var/log.hdd. Entfernt auch das apt-Paket, falls darüber installiert."
|
||||
"restores": "Deaktiviert Dienst und Timer und entfernt die ProxMenux-Konfiguration von Log2RAM. Beim nächsten Herunterfahren schreibt Log2RAM /var/log auf den Datenträger; beim nächsten Start kehren das Journal und die Task-Logs nach /var/log zurück und die Log2RAM-Dateien werden entfernt."
|
||||
},
|
||||
{
|
||||
"tool": "Automatisches ZFS-TRIM",
|
||||
|
||||
Reference in New Issue
Block a user