Référence Pour: administrateurs

Configuration

Fichiers, répertoires et clés de controller.toml pour la capacité, les tâches, la mémoire et le stockage du contrôleur.

Emplacements

ÉlémentEmplacement
Binaires/usr/bin/kyvernon-controller, kyvernon-agent, kyvernon-vmm, kyvernon
Configuration/etc/kyvernon/controller.toml, agent.toml, join-token, admin-password, controller-ca.pem
Squelettes/usr/share/kyvernon/controller.toml.example, agent.toml.example
État/var/lib/kyvernon/controller, /var/lib/kyvernon/agent, images sous /var/lib/kyvernon/images
Journauxjournalctl -u kyvernon-controller, journalctl -u kyvernon-agent
Pages de manuelman kyvernon-controller, man kyvernon-agent, man kyvernon-vmm, man kyvernon

Capacité

Paramètres de capacité dans controller.toml (section [vm_ops] ; les valeurs par défaut conviennent à la plupart des installations) :

CléValeur par défautSignification
max_vcpus_per_vm0Nombre maximal de processeurs virtuels d'une machine virtuelle. 0 signifie les processeurs logiques de son hôte.
host_memory_reserve_mib2048Mémoire gardée pour l'hôte lui-même. Une machine virtuelle ne peut pas dépasser la mémoire de son hôte moins cette valeur.
memory_overcommit_ratio1.0La mise sous tension est refusée lorsque la mémoire des machines virtuelles en marche d'un hôte dépasserait sa mémoire (après la réserve) multipliée par cette valeur. 1.0 signifie pas de surallocation.
max_thin_disk_gib0Plus grand disque à allocation dynamique. 0 signifie la capacité de son datastore. Les disques à allocation statique doivent toujours tenir dans l'espace libre.

Tâches

Paramètres des tâches dans controller.toml (section [tasks] ; les valeurs par défaut conviennent à la plupart des installations) :

CléValeur par défautSignification
workers8Tâches qui travaillent en même temps dans le contrôleur.
waiting_tasks256Tâches qui peuvent être en cours en plus de workers parce qu'elles ne font qu'attendre : l'arrêt d'un invité, la copie d'un disque ou la migration d'une machine virtuelle par un hôte, une autre tâche sur la même machine virtuelle. Pendant leur attente, elles ne bloquent aucune autre tâche. Avec 0, une tâche en attente garde son processus de travail, et huit arrêts lents bloquent toutes les autres tâches.
queue_capacity1024Tâches qui peuvent attendre de démarrer. Une requête au-delà est refusée avec RESOURCE_EXHAUSTED ; l'appelant réessaie.
sweep_interval1mFréquence à laquelle on cherche les tâches que plus personne n'exécute. 0s désactive la vérification périodique.
orphan_timeout15mUne tâche en file qui n'a pas pu démarrer pendant cette durée échoue.
max_run_time1dUne tâche qui s'exécute plus longtemps est annulée et échoue. 0s signifie aucune limite.
scrub_secretstrueLorsque le contrôleur devient leader, les tâches terminées dont les paramètres enregistrés contiennent encore des données utilisateur ou des mots de passe de l'invité (enregistrements antérieurs à leur masquage) sont réécrites sans eux. Le journal indique combien.

Au plus workers + waiting_tasks tâches sont en cours à la fois ; la suivante attend dans la file.

Sauvegarde

Paramètres de l'API de sauvegarde dans controller.toml (section [backup] ; voir Sauvegarder une machine virtuelle et Restaurer une machine virtuelle) :

CléValeur par défautSignification
state_dirbackup sous le répertoire d'étatEmplacement où sont conservés les sessions et leurs identifiants de modification.
remote_exportsfalseServir les exports de disques à d'autres machines en TCP avec TLS 1.3, au lieu de les servir sur l'hôte seulement.
agent_timeout10mDurée pendant laquelle le contrôleur attend un hôte lors d'un appel de sauvegarde.
verify_schedulenon définiVérification nocturne par restauration : une heure du jour en UTC (02:30) ou un intervalle (6h). Non défini : aucune tâche.
verify_repositorynon définiRépertoire des sauvegardes stockées que la vérification restaure.
verify_networknon définiLe réseau de quarantaine, par nom ou identifiant.
verify_timeout300sDurée accordée à une vérification.
verify_destroytrueDétruire la machine virtuelle restaurée après son verdict.
verify_poolvideDatastore pour les disques restaurés. Vide : le premier utilisable.
controller_targetcontroller-backups à côté de data_dirDossier des archives de l'état du contrôleur, par exemple /var/lib/kyvernon/controller-backups. Voir Sauvegarder le contrôleur.
controller_schedulenon définiMoment où le contrôleur archive son état : une heure du jour en UTC (02:30) ou un intervalle (12h). Non défini : uniquement à la demande.
controller_retention7Archives de l'état du contrôleur conservées.

Le dépôt et les paramètres de vérification peuvent aussi être modifiés dans la console, et les paramètres de sauvegarde de la console s'appliquent sur chaque contrôleur en une dizaine de secondes. Une valeur qui n'y a jamais été modifiée est lue dans les clés ci-dessus.

Mémoire et stockage

Mémoire et stockage du contrôleur (les valeurs par défaut conviennent à la plupart des installations ; le service refuse de démarrer avec une valeur hors de la plage indiquée) :

CléValeur par défautSignification
[node] change_feed_max_bytes67108864 (64 Mio)Mémoire pour l'historique des changements à partir duquel les clients de l'API se mettent à jour. Un client trop en retard liste à nouveau. 0 : pas de limite en octets ; sinon au moins 65536.
[node] snapshot_log_bytes33554432 (32 Mio)Le contrôleur écrit un instantané de son magasin lorsque le journal depuis le dernier dépasse cette valeur (ou la taille du dernier instantané, si elle est plus grande), et tous les 5 000 changements. Borne la taille de inventory.redb. 0 : tous les 5 000 changements seulement ; sinon au moins 1048576.
[node] store_cache_bytes67108864 (64 Mio)Cache de pages de inventory.redb, mémoire du processus du contrôleur. Au moins 4194304.
[node] history_on_disktrueGarder les tâches, les événements et les enregistrements d'audit dans inventory.redb, avec seulement un index en mémoire. false : les garder en mémoire et en ligne dans l'instantané, comme auparavant (voir la remarque de mise à niveau).
[node] history_flush_bytes16777216 (16 Mio)Un instantané est aussi écrit lorsque tant de texte d'historique a changé depuis le dernier ; cette valeur borne l'historique tenu en mémoire. 0 : désactivé ; sinon au moins 1048576.
[node] keep_pre_history_copytrueCopier le magasin vers inventory.redb.before-history-on-disk avant le démarrage qui y déplace l'historique (une seule fois). Supprimez la copie lorsque le résultat vous convient.
[retention] history_max_bytes4294967296 (4 Gio)Plus grande quantité de texte JSON de tâches et d'événements gardée dans le magasin. Au-delà, les événements les plus anciens et les tâches terminées sont supprimés en premier, avant leur limite d'âge (30 jours pour les tâches, 90 pour les événements) ou de nombre. Les tâches en cours et les enregistrements d'audit ne sont pas supprimés par cette limite. 0 : pas de limite en octets ; sinon au moins 1048576.
[retention] audit_warn_bytes2147483648 (2 Gio)Au-delà de cette quantité de texte d'enregistrements d'audit, un avertissement est journalisé et un AuditHistoryLargeEvent est émis une fois par franchissement (une alarme peut s'y déclencher). Les enregistrements d'audit ne sont jamais supprimés selon la taille ; ils partent par audit_age et audit_max. La jauge est kyvernon_history_text_bytes{kind="audit"}. 0 : désactivé.
[metrics] cache_bytes67108864 (64 Mio)Cache de pages de metrics.redb, mémoire du processus du contrôleur. Au moins 4194304.
[metrics] deleted_entity_retention"7d"Durée de conservation des graphiques de performance d'une machine virtuelle supprimée (ou d'un hôte ou datastore retiré) avant leur suppression. De "0s" à "366d". Les rapports de consommation ne sont pas concernés (ledger_retention_days).

Version 0.1. Dernière modification : 2026-11-14