| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
pvecm status | | Affiche le statut du cluster Corosync | Indispensable pour diagnostiquer un split-brain |
pvecm nodes | | Liste les nœuds membres du cluster | |
pvecm add <IP> | --nodeid, --votes | Ajoute un nœud au cluster | Le nœud cible doit être vierge de toute config cluster |
pvecm delnode <nom> | | Supprime un nœud du cluster | Ne pas exécuter sur le nœud à supprimer lui-même |
pvecm expected 1 | | Force le quorum à 1 nœud | ⚠️ Uniquement en cas de perte de nœuds, jamais en prod normale |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
pvesh get /nodes | | Liste les nœuds du cluster via l'API REST | Utile pour scripter sans passer par curl |
pvesh get /cluster/status | | Statut global du cluster | Vérifie quorum et santé des nœuds |
pvesh get /nodes/<node>/qemu | | Liste les VMs d'un nœud via API | |
pvesh get /nodes/<node>/lxc | | Liste les CTs d'un nœud via API | |
pvesh get /storage | | Liste les stockages configurés | |
pvesh create /nodes/<node>/qemu/<vmid>/status/start | | Démarre une VM via API | Toutes les actions GUI sont disponibles via pvesh |
pvesh delete /nodes/<node>/qemu/<vmid> | --purge | Supprime une VM via API | |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
pvenode config set | --wakeonlan, --description, --acme | Configure les paramètres du nœud local | |
pvenode config get | | Affiche la configuration du nœud | |
pvenode cert info | | Affiche le certificat TLS du nœud | |
pvenode acme cert order | | Commande/renouvelle un certificat ACME | Le domaine doit être résolvable et le port 80 accessible |
pvenode acme cert renew | | Renouvelle le certificat ACME existant | |
pvenode acme account list | | Liste les comptes ACME configurés | |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
pvesm status | | Liste les stockages et leur disponibilité | |
pvesm list <storage> | --vmid, --content | Liste le contenu d'un stockage | --content : images, rootdir, backup, iso, snippets |
pvesm add <type> <storage> | --path, --server, --export, --content | Ajoute un stockage | Types : dir, nfs, cifs, zfspool, lvm, rbd, pbs... |
pvesm remove <storage> | | Supprime un stockage de la config | Ne supprime pas les données |
pvesm scan zfs | | Scanne les pools ZFS disponibles | |
pvesm scan nfs <host> | | Scanne les exports NFS d'un hôte | |
pvesm scan iscsi <host> | | Scanne les targets iSCSI d'un hôte | |
pvesm alloc <storage> <vmid> <volname> <size> | | Alloue manuellement un volume | |
pvesm free <storage>:<volname> | | Libère un volume | ⚠️ Suppression définitive |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
pveum user list | | Liste les utilisateurs PVE | |
pveum user add <user@realm> | --password, --groups, --comment | Ajoute un utilisateur | Format obligatoire : user@pam ou user@pve |
pveum user modify <user@realm> | --password, --groups, --enable | Modifie un utilisateur | |
pveum user delete <user@realm> | | Supprime un utilisateur | |
pveum group add <groupe> | --comment | Crée un groupe | |
pveum group list | | Liste les groupes | |
pveum group delete <groupe> | | Supprime un groupe | |
pveum acl modify <path> | --roles, --users, --groups | Modifie les ACL sur un chemin | Path : /, /vms/<id>, /storage/<id>, /nodes/<node> |
pveum acl delete <path> | --roles, --users | Supprime une ACL | |
pveum role add <role> | --privs | Crée un rôle custom | |
pveum role list | | Liste les rôles disponibles | |
pveum role modify <role> | --privs | Modifie les privilèges d'un rôle | |
pveum realm list | | Liste les royaumes d'authentification | |
pveum realm add <realm> | --type, --server | Ajoute un royaume (LDAP, AD...) | Types : pam, pve, ldap, ad, openid |
pveum passwd <user@realm> | | Change le mot de passe d'un utilisateur | |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
pve-firewall start | | Active le pare-feu PVE sur le nœud | |
pve-firewall stop | | Désactive le pare-feu PVE | ⚠️ Toutes les règles sont supprimées immédiatement |
pve-firewall restart | | Redémarre le pare-feu | |
pve-firewall status | | Statut du pare-feu | |
pve-firewall compile | | Compile et vérifie les règles sans les appliquer | Très utile pour débugger avant activation |
pve-firewall localnet | | Affiche les réseaux locaux détectés | Utilisé pour les règles automatiques |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
ha-manager status | | Statut global du gestionnaire HA | |
ha-manager add <resource> | --group, --max_restart, --max_relocate | Ajoute une ressource à la HA | Format : vm:<vmid> ou ct:<ctid> |
ha-manager remove <resource> | | Retire une ressource de la HA | |
ha-manager set <resource> | --state | Change l'état désiré d'une ressource | États : started, stopped, enabled, disabled, ignored |
ha-manager config | | Affiche la config HA complète | |
ha-manager crm-command node-maintenance enable <node> | | Active le mode maintenance HA sur un nœud | Migre automatiquement les ressources HA |
ha-manager crm-command node-maintenance disable <node> | | Désactive le mode maintenance HA | Les ressources ne reviennent pas automatiquement |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
qm list | | Liste toutes les VMs avec leur statut | |
qm start <vmid> | | Démarre une VM | |
qm stop <vmid> | --skiplock | Arrêt brutal d'une VM | Préférer shutdown pour un arrêt propre |
qm shutdown <vmid> | --timeout <sec> | Arrêt gracieux via signal ACPI | Nécessite guest agent ou ACPI fonctionnel |
qm reset <vmid> | | Reset brutal d'une VM | Risque de corruption FS |
qm reboot <vmid> | | Redémarre proprement une VM | Passe par l'OS invité |
qm suspend <vmid> | --todisk | Suspend une VM | --todisk sauvegarde l'état RAM sur disque |
qm resume <vmid> | | Reprend une VM suspendue | |
qm status <vmid> | --verbose | Affiche le statut d'une VM | |
qm config <vmid> | | Affiche la configuration complète d'une VM | Fichier /etc/pve/qemu-server/<vmid>.conf |
qm set <vmid> | --memory, --cores, --net0, --onboot | Modifie la configuration d'une VM | Certains paramètres nécessitent un arrêt préalable |
qm create <vmid> | --name, --memory, --cores, --net0, --cdrom | Crée une VM | L'ID doit être unique dans le cluster |
qm destroy <vmid> | --purge | Supprime une VM et ses disques | --purge supprime aussi sauvegardes et replications |
qm clone <vmid> <newid> | --name, --full, --target | Clone une VM | Sans --full : clone lié, dépendant du template source |
qm template <vmid> | | Convertit une VM en template | ⚠️ Opération irréversible |
qm migrate <vmid> <node> | --online, --with-local-disks | Migre une VM vers un autre nœud | --online requiert stockage partagé |
qm disk move <vmid> | --disk, --storage, --delete | Déplace un disque vers un autre stockage | --delete supprime la source après déplacement |
qm disk resize <vmid> | --disk, --size | Agrandit un disque | +10G pour ajouter, 50G absolu. Pas de réduction |
qm disk import <vmid> <fichier> <storage> | --format | Importe un disque depuis une image | Formats : raw, qcow2, vmdk |
qm disk unlink <vmid> | --idlist, --force | Détache et supprime un disque de la config | |
qm snapshot <vmid> <snapname> | --vmstate, --description | Crée un snapshot | --vmstate inclut la RAM, ralentit la création |
qm listsnapshot <vmid> | | Liste les snapshots d'une VM | |
qm rollback <vmid> <snapname> | | Restaure un snapshot | VM doit être arrêtée sauf snapshot avec vmstate |
qm delsnapshot <vmid> <snapname> | | Supprime un snapshot | |
qm guest exec <vmid> | --sync, -- | Exécute une commande dans la VM | Nécessite qemu-guest-agent installé et actif |
qm guest passwd <vmid> <user> | | Change le mot de passe d'un user dans la VM | Nécessite qemu-guest-agent |
qm agent <vmid> <commande> | network-get-interfaces, get-osinfo, ping | Interagit avec le guest agent | |
qm monitor <vmid> | | Ouvre la console monitor QEMU | Commandes QEMU bas niveau |
qm rescan | --vmid | Rescanne les disques d'une VM | Utile après ajout de stockage à chaud |
qm importovf <vmid> <fichier.ovf> <storage> | | Importe une VM depuis un fichier OVF/OVA | Pratique pour migration depuis VMware |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
vzdump <vmid> | --storage, --mode, --compress, --mailto, --node | Sauvegarde une VM ou CT | Modes : snapshot, suspend, stop. Snapshot = le moins impactant |
vzdump --all | --exclude, --storage, --mode | Sauvegarde toutes les VMs/CTs du nœud | |
vzdump --vmid <id1,id2> | --storage, --mode | Sauvegarde une liste de VMs/CTs | IDs séparés par des virgules |
qmrestore <fichier> <vmid> | --storage, --unique | Restaure une sauvegarde VM | --unique génère de nouveaux MAC/UUID |
pct restore <ctid> <fichier> | --storage, --hostname | Restaure une sauvegarde CT | |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
zpool status | -v | Statut détaillé de tous les pools ZFS | READ/WRITE/CKSUM > 0 = problème matériel à investiguer |
zpool status <pool> | -v | Statut d'un pool spécifique | |
zpool list | -v, -H | Liste les pools avec taille et occupation | -H pour sortie parsable par script |
zpool iostat | <pool> <interval> | Statistiques I/O en temps réel | Ex : zpool iostat tank 2 |
zpool scrub <pool> | | Lance un scrub (vérification intégrité complète) | À planifier mensuellement minimum en prod |
zpool scrub -s <pool> | | Stoppe un scrub en cours | |
zpool create <pool> | mirror, raidz, raidz2, -o ashift=12 | Crée un pool ZFS | ashift=12 obligatoire pour disques 4K/SSD |
zpool add <pool> mirror <dev1> <dev2> | | Ajoute un vdev miroir à un pool existant | Agrandit le pool, opération irréversible |
zpool replace <pool> <old> <new> | | Remplace un disque défaillant | Resilver automatique après remplacement |
zpool offline <pool> <device> | | Met un disque offline (maintenance) | Le pool continue en mode dégradé si redondance suffisante |
zpool online <pool> <device> | | Remet un disque online | |
zpool import | | Liste les pools importables | Utile après déplacement de disques |
zpool import <pool> | -f | Importe un pool | -f pour forcer si le pool était sur un autre hôte |
zpool export <pool> | | Exporte proprement un pool | ⚠️ Toujours exporter avant de déplacer des disques |
zpool destroy <pool> | | Détruit un pool | ⚠️ Irréversible, toutes les données sont perdues |
zpool history <pool> | | Historique des commandes ZFS sur le pool | Très utile pour auditer ou débugger |
zpool upgrade <pool> | | Met à jour la version du pool | ⚠️ Irréversible, vérifier compatibilité avant |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
zfs list | -t all, -r <pool> | Liste les datasets, volumes et snapshots | -t snapshot pour ne voir que les snapshots |
zfs create <pool/ds> | -o compression=lz4 | Crée un dataset | |
zfs destroy <pool/ds> | -r, -d | Supprime un dataset ou snapshot | -d pour différer si des clones existent |
zfs snapshot <pool/ds@snapname> | -r | Crée un snapshot | -r pour snapshot récursif |
zfs rollback <pool/ds@snapname> | -r | Restaure un snapshot | Détruit les snapshots plus récents sauf avec -r |
zfs clone <pool/ds@snap> <pool/newds> | | Crée un dataset depuis un snapshot | Le snapshot ne peut plus être supprimé tant que le clone existe |
zfs send <pool/ds@snap> | -i <snap>(incrémental) | Exporte un snapshot en flux binaire | Combiner avec zfs receive pour répliquer |
zfs receive <pool/ds> | -F | Reçoit un flux zfs send | Ex : `zfs send tank/vm@s1 |
zfs get all <pool/ds> | | Affiche toutes les propriétés d'un dataset | |
zfs set compression=lz4 <pool/ds> | lz4, zstd, off | Active/change la compression | lz4 recommandé pour ratio perf/compression |
zfs set atime=off <pool/ds> | | Désactive la mise à jour des temps d'accès | Gain de perfs pour workloads VM |
zfs set quota=<size> <pool/ds> | | Pose un quota sur un dataset | Ex : quota=500G |
zfs set reservation=<size> <pool/ds> | | Réserve de l'espace garanti | Évite qu'un dataset affame les autres |
zfs get compressratio <pool/ds> | | Affiche le ratio de compression effectif | |
zfs diff <pool/ds@snap1> <pool/ds@snap2> | | Compare deux snapshots | Très utile pour auditer les changements entre sauvegardes |
zfs rename <pool/ds> <pool/newname> | | Renomme un dataset | |
zfs mount -a | | Monte tous les datasets ZFS | Utile après un reboot partiel |
zfs umount <pool/ds> | -f | Démonte un dataset | |
| Commande | Arguments principaux | Description | Points d'attention / Remarques |
|---|---|---|---|
ceph status | | Statut global du cluster Ceph | HEALTH_OK = nominal. HEALTH_WARN/ERR = investiguer immédiatement |
ceph health detail | | Détail des warnings/erreurs | Premier réflexe en cas de HEALTH_WARN |
ceph -w | | Surveillance en temps réel des événements | Équivalent d'un tail -f sur le cluster |
ceph osd status | | Statut de tous les OSDs | Vérifie les OSDs up/down et leur poids |
ceph osd tree | | Arbre CRUSH (rack, host, osd) | Visualise la distribution et la tolérance aux pannes |
ceph osd df | | Occupation disque par OSD | ⚠️ OSD > 85% = critique |
ceph df | | Occupation globale des pools | |
ceph df detail | | Détail par pool (objets, quota, ratio) | |
ceph mon stat | | Statut des monitors | Quorum minimum : (n/2)+1 monitors actifs |
ceph mon dump | | Dump complet de la config des monitors | |
ceph pg stat | | Statut des Placement Groups | PGs en active+clean = nominal |
ceph pg dump | | Dump de tous les PGs | Verbeux, préférer pg stat au quotidien |
ceph osd pool ls detail | | Liste les pools avec leurs paramètres | |
ceph osd pool create <pool> <pg_num> | --pg_num, --pgp_num | Crée un pool Ceph | Utiliser le calculateur pg_num officiel |
ceph osd pool set <pool> size <n> | | Définit le facteur de réplication | size 3 = 3 copies. min_size 2 = min pour écrire |
ceph osd pool delete <pool> <pool> --yes-i-really-really-mean-it | | Supprime un pool | ⚠️ Double saisie du nom obligatoire, irréversible |
ceph osd out <osd.id> | | Marque un OSD comme "out" | Les données se redistribuent automatiquement |
ceph osd in <osd.id> | | Remet un OSD dans le cluster | |
ceph osd down <osd.id> | | Force un OSD à down | |
ceph osd crush reweight <osd.id> <weight> | | Ajuste le poids CRUSH d'un OSD | 0 pour vider un OSD progressivement avant retrait |
ceph osd reweight-by-utilization | | Rééquilibre automatiquement les poids CRUSH | Utile quand les OSDs sont déséquilibrés |
ceph osd set noout | | Empêche les OSDs de passer "out" automatiquement | ⚠️ À activer AVANT toute maintenance d'un nœud Ceph |
ceph osd unset noout | | Désactive le flag noout | À désactiver APRÈS la maintenance |
ceph osd set norebalance | | Bloque le rebalancing des données | Combiné avec noout pour les maintenances lourdes |
ceph osd unset norebalance | | Réactive le rebalancing | |
ceph osd set nobackfill | | Bloque le backfill des PGs | Réduit la charge I/O pendant une maintenance |
ceph osd unset nobackfill | | Réactive le backfill | |
ceph tell osd.* injectargs '--osd-max-backfills 1' | | Limite les backfills simultanés | Réduit l'impact sur les I/O de production |
ceph auth list | | Liste les clés d'authentification CephX | |
ceph auth get client.<name> | | Affiche la clé d'un client | |
ceph auth add client.<name> | --cap mon, --cap osd | Crée un utilisateur CephX | |
ceph auth del client.<name> | | Supprime un utilisateur CephX | |
This note is shared publicly by cedric