feat(post-install): rebuild Log2RAM with the journal and task logs kept on disk

This commit is contained in:
MacRimi
2026-10-27 19:48:26 +01:00
parent ac9b8c2705
commit 4cefc0484b
57 changed files with 992 additions and 1065 deletions
@@ -79,7 +79,7 @@
},
{
"tool": "Log2RAM (ottimizzato per SSD, automatico)",
"what": "Riduce l’usura SSD/NVMe spostando /var/log in un ramdisk tmpfs sincronizzato periodicamente sul disco. Installazione dal progetto upstream quando il disco root è SSD o NVMe. Dimensione in base alla RAM dell’host (128M / 256M / 512M), sincronizzazione periodica e protezione automatica che elimina vecchi journal all’80% e tronca i log molto attivi al 92% prima della scrittura. Adatta i limiti journald al ramdisk. Dettagli su <link>Log2RAM</link>.",
"what": "Riduce l'usura di SSD/NVMe spostando /var/log su un ramdisk tmpfs che viene scritto su disco a intervalli programmati. Viene installato dal progetto ufficiale quando il disco di sistema è SSD o NVMe. Dimensiona il ramdisk in base alla RAM dell'host (128M / 256M / 512M) e aggiunge un controllo che ruota e scrive i log quando il ramdisk supera l'85%. Il journal e i log delle attività di Proxmox VE e Proxmox Backup Server restano su disco. Tutti i dettagli in <link>Log2RAM</link>.",
"category": "Archiviazione",
"categorySlug": "storage"
},
@@ -109,7 +109,7 @@
}
],
"hardwareTitle": "Impostazioni predefinite in base all’hardware",
"hardwareBody": "Lo script legge l'hardware dell'host prima di applicare le impostazioni. Log2RAM è installato solo su dischi SSD/root NVMe per impostazione predefinita (richiede se il rilevamento indica diversamente). La dimensione del disco ram Log2RAM viene scelta dal totale RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). I limiti del journald vengono adattati alla dimensione del ramdisk quando Log2RAM è attivo, per evitare di riempirlo.",
"hardwareBody": "Lo script legge l'hardware dell'host prima di applicare le impostazioni. Log2RAM è installato solo su dischi SSD/root NVMe per impostazione predefinita (richiede se il rilevamento indica diversamente). La dimensione del disco ram Log2RAM viene scelta dal totale RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Con Log2RAM attivo, il journal resta su disco con un proprio limite.",
"upgrade": {
"heading": "Aggiorna gli elenchi dei pacchetti e il sistema",
"intro": "Il primo passo del pacchetto automatizzato è l'aggiornamento Proxmox. La guida di aggiornamento di Proxmox per un host in esecuzione (nella stessa versione principale) è quella di eseguire:",
@@ -133,25 +133,25 @@
},
"log2ram": {
"title": "Installare Log2RAM (SSD/NVMe riduzione dell'usura)",
"intro": "Log2RAM monta <code>/var/log</code> su un ramdisk tmpfs e lo sincronizza periodicamente sul disco. Accumulare in RAM le frequenti scritture journald può ridurre usura SSD e I/O. Sincronizzazione e arresto regolare salvano i log, ma una perdita improvvisa di alimentazione può perdere le voci dall’ultima sincronizzazione.",
"intro": "Log2RAM monta <code>/var/log</code> su un ramdisk tmpfs e lo scrive su disco a intervalli programmati, così i log che cambiano di continuo, come il log degli accessi di pveproxy, vengono scritti in RAM invece che sull'SSD di sistema. Il journal e i log delle attività di Proxmox VE e Proxmox Backup Server restano su disco. Uno spegnimento pulito scrive il ramdisk su disco; un'interruzione di corrente improvvisa fa perdere solo i log di testo scritti dopo l'ultima sincronizzazione.",
"upstreamLabel": "Progetto a monte:",
"upstreamUrl": "https://github.com/azlux/log2ram",
"upstreamLinkLabel": "azlux/log2ram su GitHub",
"doesLabel": "Cosa fa ProxMenux:",
"doesItems": [
"Rileva se il disco root è SSD/NVMe leggendo <code>/sys/block/&lt;dev&gt;/queue/rotational</code>. Su un disco rotazionale il flusso automatizzato chiede prima di installare.",
"Clona il repository originale (<code>azlux/log2ram</code>) in <code>/tmp/log2ram</code> e modifica <code>install.sh</code>, sostituendo <code>rsync -aAXv</code> con <code>rsync -aXv --no-acls</code>. Evita l’errore <em>set_acl: Operation not supported</em> con codice di uscita 23, che lo script originale genera spostando /var/log su filesystem senza ACL. L’unità systemd <code>log2ram</code> viene abilitata dopo l’installazione.",
"Installa Log2RAM 1.7.2 dal progetto ufficiale, verificando che il download sia quella versione, e lascia il suo codice invariato. L'email di errore viene disattivata con <code>NOTIFICATION=false</code>, poiché Proxmox VE non include un comando mail.",
"Dimensiona il ramdisk in base alla RAM dell’host: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>&gt; 16 GB → 512M</code>. Scrive il valore in <code>SIZE=</code> di <code>/etc/log2ram.conf</code>.",
"Pianifica una sincronizzazione periodica del disco tramite <code>/etc/cron.d/log2ram</code>: ogni 1h / 3h / 6h secondo lo stesso livello RAM.",
"Installa <code>/usr/local/bin/log2ram-check.sh</code>, eseguito ogni 10 minuti da <code>/etc/cron.d/log2ram-auto-sync</code>. Quando <code>/var/log</code> raggiunge l’80% del ramdisk, pulisce i vecchi journal. Al 92% esegue prima <code>logrotate -f /etc/logrotate.d/proxmox-backup-api</code> se il file esiste: i log API PBS sono spesso i maggiori consumatori di spazio su un host PBS. Poi tronca <code>pveproxy access/error</code> e <code>pveam.log</code> prima della sincronizzazione. <code>log2ram write</code> da solo copia tmpfs sul disco senza ridurlo. La protezione aiuta a evitare arresti di PVE con <em>No space left on device</em> per crescita incontrollata dei log.",
"Rileva il servizio <code>proxmox-backup-server</code> sull’host. Se presente, crea <code>/etc/logrotate.d/proxmox-backup-api</code> (20 MB × 3 rotazioni) e <code>/etc/cron.hourly/proxmox-backup-logrotate</code> per limitare i log API PBS, abituale fonte di crescita, anche tra le sincronizzazioni Log2RAM. Senza PBS non modifica nulla.",
"Regola i limiti systemd-journald (<code>SystemMaxUse</code>, <code>RuntimeMaxUse</code>) per adattarsi all'interno del ramdisk in modo che un singolo scoppio non possa riempirlo.",
"Si registra in <code>installed_tools.json</code> per consentire il ripristino da Disinstalla ottimizzazioni."
"Mantiene su disco il journal (<code>/var/log/journal</code>), i log delle attività di Proxmox VE (<code>/var/log/pve</code>) e, se installato, quelli di Proxmox Backup Server (<code>/var/log/proxmox-backup</code>), in <code>/var/hdd.journal</code>, <code>/var/hdd.pve</code> e <code>/var/hdd.proxmox-backup</code>. Ogni percorso abituale diventa un collegamento alla sua cartella su disco. Lo spostamento avviene all'avvio, prima che parta Log2RAM.",
"Scrive il ramdisk su disco con il timer di Log2RAM ogni 1h / 3h / 6h secondo la stessa fascia di RAM, e svuota la cache del disco dopo ogni scrittura, così una sincronizzazione completata sopravvive a un'interruzione di corrente.",
"Installa un controllo in <code>/etc/cron.d/log2ram-auto-sync</code> eseguito ogni 10 minuti. Quando <code>/var/log</code> supera l'85% del ramdisk, ruota i log, comprime quelli appena ruotati e scrive tutto su disco. Nessun log viene svuotato.",
"Mantiene il journal di systemd su disco con un limite di 1 GB, in <code>/etc/systemd/journald.conf.d/proxmenux-log2ram.conf</code>. Su un host con Proxmox Backup Server aggiunge <code>/etc/logrotate.d/proxmox-backup-api</code> (rotazione 20 MB × 3) per i suoi log delle API.",
"Si registra in <code>installed_tools.json</code> per poter essere annullato da Disinstalla ottimizzazioni. Un aggiornamento da una versione precedente mantiene la dimensione e l'intervallo di sincronizzazione e sposta il journal su disco al successivo avvio."
],
"howUseLabel": "Come usare:",
"howUseBody": "Il percorso automatizzato installa Log2RAM senza intervento se rileva un disco root SSD/NVMe. Quello personalizzabile chiede dimensione, intervallo e attivazione della protezione. Il messaggio indica 90%, ma lo script generato usa le soglie di pulizia all’80% e intensiva al 92% descritte sopra.",
"howUseBody": "Nel flusso automatico Log2RAM si installa senza intervento quando rileva un disco di sistema SSD/NVMe. Il flusso personalizzabile chiede la dimensione, l'intervallo di sincronizzazione e se attivare il controllo. Le modifiche hanno effetto al successivo avvio.",
"verifyLabel": "Verificare e gestire dalla 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": "Abilita il profilo di scambio ZRAM",
@@ -125,7 +125,7 @@
},
{
"tool": "Log2RAM",
"restores": "Ferma e disabilita servizio e timer. Elimina processi cron, unità systemd, binari, configurazione e /var/log.hdd. Rimuove anche il pacchetto apt se installato in quel modo."
"restores": "Disattiva il servizio e il timer e rimuove la configurazione di ProxMenux per Log2RAM. Al successivo spegnimento Log2RAM scrive /var/log su disco; al successivo avvio il journal e i log delle attività tornano in /var/log e i file di Log2RAM vengono rimossi."
},
{
"tool": "TRIM automatico ZFS",