Cheat Sheet Proxmox
pvecm — Gestion du cluster#
| 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 |
pvesh — API REST en CLI#
| 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 | |
pvenode — Configuration d'un nœud#
| 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 | |
pvesm — Gestion du stockage#
| 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 |
pveum — Utilisateurs & sécurité#
| 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 | |
pve-firewall — Pare-feu#
| 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 |
ha-manager — Haute disponibilité#
| 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 |
Machines virtuelles#
| 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 |
vzdump / qmrestore / pct restore — Sauvegarde & restauration#
| 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 | |
zpool — Gestion des pools zfs#
| 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 |
zfs — Gestion des datasets#
| 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 | ssh node2 zfs receive backup/vm` |
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 | |
ceph — Gestion des ensembles CEPH#
| 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 | |