mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +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 (adapté aux SSD, automatique)",
|
||||
"what": "Réduit l’usure SSD/NVMe en déplaçant /var/log dans un disque RAM tmpfs synchronisé régulièrement vers le disque. Installation depuis le projet amont si le disque racine est SSD ou NVMe. Taille selon la RAM de l’hôte (128M / 256M / 512M), synchronisation périodique et protection automatique qui purge les anciens journaux à 80% et tronque les journaux très actifs à 92% avant écriture. Adapte les limites journald au disque RAM. Détails dans <link>Log2RAM</link>.",
|
||||
"what": "Réduit l'usure du SSD/NVMe en déplaçant /var/log vers un ramdisk tmpfs écrit sur le disque selon un calendrier. Installé depuis le projet officiel lorsque le disque système est un SSD ou un NVMe. Dimensionne le ramdisk selon la RAM de l'hôte (128M / 256M / 512M) et ajoute une surveillance qui fait tourner et écrit les journaux lorsque le ramdisk dépasse 85 %. Le journal et les journaux de tâches de Proxmox VE et de Proxmox Backup Server restent sur le disque. Tous les détails dans <link>Log2RAM</link>.",
|
||||
"category": "Stockage",
|
||||
"categorySlug": "storage"
|
||||
},
|
||||
@@ -109,7 +109,7 @@
|
||||
}
|
||||
],
|
||||
"hardwareTitle": "Valeurs par défaut adaptées au matériel",
|
||||
"hardwareBody": "Le script examine le matériel avant de configurer l’hôte. Par défaut, Log2RAM s’installe uniquement si le disque racine est SSD ou NVMe ; il demande confirmation sinon. La taille du disque RAM dépend de la RAM totale (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Quand Log2RAM est actif, les limites journald sont adaptées au disque RAM pour éviter de le remplir.",
|
||||
"hardwareBody": "Le script examine le matériel avant de configurer l’hôte. Par défaut, Log2RAM s’installe uniquement si le disque racine est SSD ou NVMe ; il demande confirmation sinon. La taille du disque RAM dépend de la RAM totale (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Lorsque Log2RAM est actif, le journal reste sur le disque avec sa propre limite.",
|
||||
"upgrade": {
|
||||
"heading": "Mettre à jour les listes de paquets et le système",
|
||||
"intro": "La première étape du parcours automatisé est la mise à niveau Proxmox. Pour un hôte en fonctionnement au sein de la même version majeure, Proxmox recommande :",
|
||||
|
||||
@@ -133,25 +133,25 @@
|
||||
},
|
||||
"log2ram": {
|
||||
"title": "Installer Log2RAM (SSD/NVMe réduction de l'usure)",
|
||||
"intro": "Log2RAM monte <code>/var/log</code> sur un disque RAM tmpfs et le synchronise régulièrement vers le disque. Mettre en mémoire les écritures journald fréquentes peut réduire l’usure SSD et les E/S. La synchronisation et un arrêt propre sauvegardent les journaux ; une coupure brutale peut perdre les entrées depuis la dernière synchronisation.",
|
||||
"intro": "Log2RAM monte <code>/var/log</code> sur un ramdisk tmpfs et l'écrit sur le disque selon un calendrier, de sorte que les journaux qui changent en permanence, comme le journal d'accès de pveproxy, sont écrits en RAM plutôt que sur le SSD système. Le journal et les journaux de tâches de Proxmox VE et de Proxmox Backup Server restent sur le disque. Un arrêt propre écrit le ramdisk sur le disque ; une coupure de courant brutale ne fait perdre que les journaux texte écrits depuis la dernière synchronisation.",
|
||||
"upstreamLabel": "Projet en amont:",
|
||||
"upstreamUrl": "https://github.com/azlux/log2ram",
|
||||
"upstreamLinkLabel": "azlux/log2ram sur GitHub",
|
||||
"doesLabel": "Que fait ProxMenux:",
|
||||
"doesItems": [
|
||||
"Détecte si le disque racine est SSD/NVMe en lisant <code>/sys/block/<dev>/queue/rotational</code>. Sur un disque rotatif, le flux automatisé demande d'abord avant d'installer.",
|
||||
"Clone le dépôt original (<code>azlux/log2ram</code>) dans <code>/tmp/log2ram</code> et modifie <code>install.sh</code> en remplaçant <code>rsync -aAXv</code> par <code>rsync -aXv --no-acls</code>. Cela évite l’erreur <em>set_acl: Operation not supported</em> avec code de sortie 23, déclenchée par le script original lors du déplacement de /var/log sur un système sans ACL. L’unité systemd <code>log2ram</code> est activée après installation.",
|
||||
"Installe Log2RAM 1.7.2 depuis le projet officiel, en vérifiant que le téléchargement correspond à cette version, sans modifier son code. Son e-mail d'erreur est désactivé avec <code>NOTIFICATION=false</code>, car Proxmox VE n'inclut pas de commande mail.",
|
||||
"Dimensionne le disque RAM selon la mémoire de l’hôte : <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>> 16 GB → 512M</code>. Écrit la valeur dans <code>SIZE=</code> de <code>/etc/log2ram.conf</code>.",
|
||||
"Planifie une synchronisation périodique du disque via <code>/etc/cron.d/log2ram</code> : toutes les 1h / 3h / 6h selon le même niveau RAM.",
|
||||
"Installe <code>/usr/local/bin/log2ram-check.sh</code>, lancé toutes les 10 minutes par <code>/etc/cron.d/log2ram-auto-sync</code>. Quand <code>/var/log</code> atteint 80% du disque RAM, il purge les anciens journaux journald. À 92%, il lance d’abord <code>logrotate -f /etc/logrotate.d/proxmox-backup-api</code> si le fichier existe : les journaux API PBS occupent souvent le plus d’espace sur un hôte PBS. Il tronque ensuite <code>pveproxy access/error</code> et <code>pveam.log</code> avant synchronisation. <code>log2ram write</code> seul copie tmpfs sur disque sans le réduire. Cette protection aide à éviter un arrêt de PVE avec <em>No space left on device</em> lorsque les journaux grossissent sans contrôle.",
|
||||
"Détecte le service <code>proxmox-backup-server</code> sur l’hôte. S’il est présent, crée <code>/etc/logrotate.d/proxmox-backup-api</code> (20 Mo × 3 rotations) et <code>/etc/cron.hourly/proxmox-backup-logrotate</code> pour limiter les journaux API PBS, souvent à l’origine de la croissance, même entre les synchronisations Log2RAM. Sans PBS, cette étape ne change rien.",
|
||||
"Ajuste les limites systemd-journald (<code>SystemMaxUse</code>, <code>RuntimeMaxUse</code>) pour qu'elles s'adaptent au disque virtuel afin qu'une seule rafale ne puisse pas le remplir.",
|
||||
"S’enregistre dans <code>installed_tools.json</code> pour pouvoir être annulé via Désinstaller les optimisations."
|
||||
"Conserve sur le disque le journal (<code>/var/log/journal</code>), les journaux de tâches de Proxmox VE (<code>/var/log/pve</code>) et, s'il est installé, ceux de Proxmox Backup Server (<code>/var/log/proxmox-backup</code>), dans <code>/var/hdd.journal</code>, <code>/var/hdd.pve</code> et <code>/var/hdd.proxmox-backup</code>. Chaque chemin habituel devient un lien vers son dossier sur le disque. Le déplacement a lieu au démarrage, avant que Log2RAM ne démarre.",
|
||||
"Écrit le ramdisk sur le disque avec le minuteur de Log2RAM toutes les 1 h / 3 h / 6 h selon le même palier de RAM, et vide le cache disque après chaque écriture, de sorte qu'une synchronisation terminée résiste à une coupure de courant.",
|
||||
"Installe une surveillance dans <code>/etc/cron.d/log2ram-auto-sync</code> exécutée toutes les 10 minutes. Lorsque <code>/var/log</code> dépasse 85 % du ramdisk, elle effectue la rotation des journaux, compresse ceux qui viennent d'être tournés et écrit le tout sur le disque. Aucun journal n'est vidé.",
|
||||
"Conserve le journal systemd sur le disque avec une limite de 1 Go, dans <code>/etc/systemd/journald.conf.d/proxmenux-log2ram.conf</code>. Sur un hôte exécutant Proxmox Backup Server, ajoute <code>/etc/logrotate.d/proxmox-backup-api</code> (rotation 20 Mo × 3) pour ses journaux d'API.",
|
||||
"S'enregistre dans <code>installed_tools.json</code> afin de pouvoir être annulé depuis Désinstaller les optimisations. Une mise à jour depuis une version antérieure conserve la taille et l'intervalle de synchronisation, et déplace le journal sur le disque au démarrage suivant."
|
||||
],
|
||||
"howUseLabel": "Comment utiliser:",
|
||||
"howUseBody": "Le parcours automatisé installe Log2RAM sans intervention si le disque racine est SSD/NVMe. Le parcours personnalisable demande taille, intervalle et activation de la protection. L’invite indique actuellement 90%, mais le script généré utilise les seuils de nettoyage à 80% et intensif à 92% décrits plus haut.",
|
||||
"howUseBody": "Dans le flux automatisé, Log2RAM s'installe sans intervention lorsqu'un disque système SSD/NVMe est détecté. Le flux personnalisable demande la taille, l'intervalle de synchronisation et s'il faut activer la surveillance. Les changements prennent effet au démarrage suivant.",
|
||||
"verifyLabel": "Vérifier et gérer à partir du 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": "Activer le profil d'échange ZRAM",
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM",
|
||||
"restores": "Arrête et désactive le service et le minuteur. Supprime tâches cron, unités systemd, binaires, configuration et /var/log.hdd. Désinstalle aussi le paquet apt si cette méthode a été utilisée."
|
||||
"restores": "Désactive le service et le minuteur et supprime la configuration ProxMenux de Log2RAM. À l'arrêt suivant, Log2RAM écrit /var/log sur le disque ; au démarrage suivant, le journal et les journaux de tâches reviennent dans /var/log et les fichiers de Log2RAM sont supprimés."
|
||||
},
|
||||
{
|
||||
"tool": "TRIM automatique ZFS",
|
||||
|
||||
Reference in New Issue
Block a user