I 10 comandi CLI Proxmox che ogni amministratore dovrebbe conoscere
L’ambiente virtuale (VE) Proxmox può essere gestito tramite un’interfaccia grafica intuitiva in un browser web. Tuttavia, in scenari specifici, è preferibile utilizzare l’interfaccia a riga di comando (CLI). La CLI offre vantaggi quali una configurazione più dettagliata, l’elaborazione in batch, lo scripting e l’automazione.
Esistono comandi Linux standard e comandi specifici Proxmox per gestire gli ambienti virtuali Proxmox. Questo post del blog tratta i 10 comandi specifici di Proxmox più importanti con esempi per un’amministrazione efficace.
1. qm
Il comando qm è uno dei principali comandi CLI di Proxmox, e qm è l’abbreviazione di QEMU Manager. Viene utilizzato per gestire le VM in un ambiente virtuale Proxmox (Proxmox VE). Le VM su Proxmox sono basate su QEMU/KVM e il comando qm interagisce con esse. Con questo comando è possibile creare, modificare, configurare, avviare, arrestare e migrare le VM.
La sintassi generale del comando è:
qm [options] <command> [arguments]
Elenca le VM
È possibile visualizzare lo stato e l’ID della VM. L’ID potrebbe essere necessario per la gestione di questa VM nella CLI di Proxmox.
qm list

Creazione di una nuova VM
Sintassi generale:
qm create <vmid> [options]
Esempio:
qm create 103 --name "DebianVM" --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --ostype l26
Il seguente comando CLI di Proxmox crea una VM con ID 103 denominata “ DebianVM ” con 2 GB di RAM, 1 socket, 2 core e un’interfaccia di rete Virtio collegata a vmbr0 . Il tipo di sistema operativo è Linux (indicato da l26 ).
Collegamento di un disco a una VM
qm set 105 --scsi0 local-lvm:32G
Collega un disco da 32 GB alla VM utilizzando l’interfaccia SCSI.
Collegamento di un CD-ROM per l’installazione del sistema operativo
qm set 105 --ide2 local:iso/debian-10.7.0-amd64-netinst.iso,media=cdrom
Questo comando collega un ISO Debian all’unità CD-ROM IDE della VM per l’installazione di un sistema operativo guest o per altri scopi.
Configurazione dell’ordine di avvio
qm set 105 --boot order=ide2;scsi0
Il comando utilizzato in questo esempio configura la VM in modo che si avvii prima dal CD-ROM (IDE2), poi dal disco (SCSI0).
Avvio di una VM
Sintassi:
qm start <vmid>
Esempio:
qm start 103
Avvio della VM con ID 103
Arresto di una VM
qm stop <vmid>
Questo comando arresta immediatamente una VM in esecuzione. Questo modo di arrestare una VM è simile a quello di staccare la spina di alimentazione di una macchina fisica.
qm stop 103
Arresto della VM con ID 103.
Spegnimento di una VM nella CLI di Proxmox
qm shutdown <vmid>
Questo comando spegne una VM in modo corretto, consentendo al sistema operativo guest di chiudere i file e terminare i processi in modo appropriato.
qm shutdown 101
Invio di un segnale di spegnimento alla VM con ID 101. 
Migrazione di una VM su un altro nodo
qm migrate <vmid> <targetnode>
Questo comando migra una VM dal suo nodo attuale a un altro nodo all’interno dello stesso cluster Proxmox.
Ad esempio, per migrare una VM con ID 103 a node2 , possiamo utilizzare il comando:
qm migrate 103 node2
Acquisizione di uno snapshot di una VM
qm snapshot <vmid> <snapshotname>
Il comando crea uno snapshot della VM, acquisendone lo stato attuale, inclusi lo stato della memoria, del disco e dei dispositivi.
qm snapshot 103 "before_upgrade"
Questo comando acquisisce uno snapshot della VM con ID 103 e lo denomina “ before_upgrade “. L’utilizzo del comando per acquisire un snapshot è utile prima di eseguire operazioni rischiose, come gli upgrade software.
Ripristino dello stato di una VM da un snapshot
qm rollback <vmid> <snapshotname>
Questo comando riporta una VM a un snapshot precedente, ripristinando il suo stato al momento in cui è stato acquisito il snapshot.
Ad esempio, se l’upgrade software all’interno di una VM non è andato a buon fine e ha avuto esito negativo, è possibile ripristinare lo stato della VM con il comando:
qm rollback 103 "before_upgrade"
Qualsiasi modifica apportata dopo l’acquisizione del snapshot viene eliminata (annullata).
Clonazione di una VM
qm clone <vmid> <newid> [--name <newname>] [--full]
Il comando qm clone clona una VM esistente per creare una nuova VM con un ID diverso. È possibile scegliere di clonare l’intero disco (clonazione completa) o solo lo storage collegato.
qm clone 103 104 --name "DebianClone" --full
Questo comando clona la VM con ID 103 in una nuova VM con ID 104 , denominandola “ DebianClone “. L’opzione –– full crea un clone completo, copiando tutti i dati.
Ridimensionamento del disco di una VM
qm resize <vmid> <disk> <size>
Il comando qm resize viene utilizzato per ridimensionare un disco virtuale collegato a una VM, espandendolo o riducendolo. Assicurarsi che il sistema operativo guest sia in grado di gestire la modifica.
qm resize 103 scsi0 +10G
Questo comando CLI Proxmox aumenta di 10 GB la dimensione del disco scsi0 sulla VM con ID 103.
2. pve-firewall
Il comando pve-firewall viene utilizzato per gestire le impostazioni del firewall nell’ambiente virtuale Proxmox, inclusi i cluster Proxmox. Questo comando CLI Proxmox fornisce opzioni intuitive per la configurazione delle regole del firewall e consente agli amministratori di controllare il traffico di rete da e verso i nodi Proxmox, le VM e i contenitori. Il firewall Proxmox si integra perfettamente con l’interfaccia di gestione Proxmox e rende più comoda la gestione del firewall nell’intero ambiente Proxmox. Lo strumento pve-firewall è stato sviluppato appositamente per Proxmox VE e utilizza un’astrazione di alto livello per gestire le regole del firewall rispetto all’approccio più granulare e manuale utilizzato in iptables . Sintassi:
pve-firewall <command> [options]
Eseguire il comando pve-firewall per visualizzare l’utilizzo principale del comando.

Verifica dello stato
Verifica dello stato del servizio firewall Proxmox VE:
pve-firewall status
L’output mostra se il firewall è in esecuzione o meno sul nodo corrente.
Avviare il firewall
Avvio del servizio firewall sul nodo Proxmox corrente:
pve-firewall start
Ricaricare il firewall
Ricaricamento del servizio firewall e applicazione delle modifiche alla configurazione del firewall senza la necessità di arrestare e avviare il servizio firewall.
pve-firewall reload
Accetta traffico SSH
Creazione di una regola firewall che accetta il traffico SSH:
pve-firewall create rule -action accept -macro ssh
Questo comando crea una regola per consentire l’accesso SSH all’ambiente Proxmox.
Dove: create < object > crea un nuovo oggetto firewall, come una regola, un gruppo di sicurezza o un set IP.
Eliminare una regola
Per eliminare la regola, utilizzare il comando:
pve-firewall delete rule <rule-id>
Visualizzare il log
Visualizzare il log del firewall, che mostra il traffico e le corrispondenze delle regole:
pve-firewall log
L’output visualizza le voci più recenti del log del firewall.
Negare il traffico HTTP
Per creare una regola firewall che neghi qualsiasi traffico HTTP, utilizzare il comando:
pve-firewall create rule -action drop -macro http
3. pvesm
Il comando pvesm nella CLI di Proxmox è l’utilità della riga di comando utilizzata per gestire la configurazione dello storage in Proxmox VE. Con questo strumento da riga di comando è possibile creare, eliminare, modificare e gestire i pool di archiviazione. Inoltre, è possibile eseguire varie attività relative all’archiviazione, come la creazione di directory, l’aggiunta di dispositivi di storage e la gestione dei tipi di contenuto.
Sintassi:
pvesm <command> [options]
Elenco archiviazione
pvesm list <storage>
Dove < storage > è il nome del pool di archiviazione (archivio dati) da elencare.

Verifica dello stato di tutti i pool di archiviazione o di quelli specifici
pvesm status
L’output visualizza lo stato del pool di archiviazione, comprese le informazioni relative al suo stato attivo o inattivo, al tipo di archiviazione e all’utilizzo corrente.

Creazione di un nuovo pool di archiviazione
pvesm create <type> <storage-id> --options
Dove:
< type > è il tipo di backend di archiviazione da creare (ad esempio, dir, lvm, nfs, zfs).
< storage-id > è il nome univoco o l’ID del pool di archiviazione.
–– opzioni definisce le opzioni aggiuntive specifiche per il tipo di storage.
Esempio:
Creazione di un nuovo pool di storage basato su directory denominato new-datastore1 situato in /mnt/storage-name , in grado di archiviare immagini VM e file ISO: pvesm create dir new-datastore1 --path /mnt/storage-name --content images,iso
Aggiunta di un backend di storage esistente a Proxmox VE
Il principio di questo comando è simile al comando pvesm create , ma invece di creare una nuova archiviazione, quella già esistente viene aggiunta alla configurazione Proxmox per renderla disponibile.
Esempio:
Aggiunta di una condivisione NFS esistente situata su 192.168.101.100 in /export/data a Proxmox VE con il nome test-nfs-storage :
pvesm add nfs test-nfs-storage --server 192.168.101.100 --export /export/data --path /mnt/pve/test-nfs-storage --content images,iso
Modifica della configurazione di un pool di archiviazione esistente
pvesm set <storage-id> --options
Esempio:
Modifica del pool local-storage01 per consentirgli di archiviare immagini VM, file ISO e file di backup:
pvesm set local-storage01 --content images,iso,backup
Allocazione di un nuovo volume su un pool di storage specificato per una VM o un contenitore
pvesm alloc <storage-id> <vmid> <size>
Esempio:
Il comando per allocare un volume di 10 GB sul pool local-storage-name per la VM 100:
pvesm alloc local-storage-name 100 10G
4. pveum
Proxmox Virtual Environment consente di creare più utenti per la gestione di Proxmox VE. Ciò può essere fatto con i comandi CLI di Proxmox utilizzando il comando pveum (gestione utenti). Gli amministratori Proxmox possono gestire utenti e gruppi e configurare controlli di accesso e autorizzazioni. Questo, a sua volta, definisce chi può avere accesso ed è autorizzato ad agire sulle diverse parti dell’infrastruttura Proxmox. Gli amministratori possono assegnare autorizzazioni per accedere a oggetti, come VM, storage, nodi di cluster, ecc.
Sintassi:
pveum <command> [options]
Aggiunta del nuovo utente a Proxmox VE
pveum useradd <userid> --password <password> --comment <comment> --groups <group>
Dove:
–– password < password > è la password per il nuovo utente.
–– comment < comment > è un commento o una descrizione facoltativa per l’utente.
–– groups < group > è il gruppo (o i gruppi) a cui l’utente dovrebbe appartenere.
Esempio:
pveum useradd user2@pve --password UserSecretPassword111 --comment "user2 – admin group" --groups admin
Questo comando viene utilizzato per aggiungere un utente il cui nome è user2 al gruppo AMMINISTRAZIONE con una descrizione e impostando la password per questo utente.
Eliminazione di un utente
Per eliminare un utente, utilizzare il comando pveum con la stessa logica utilizzata per aggiungere un utente, ad esempio:
pveum userdel user3@pve
Questo comando viene utilizzato per eliminare user3 su un host Proxmox.
Creazione di un gruppo
Per creare un nuovo gruppo nella CLI di Proxmox, utilizzare il comando groupadd .
Sintassi:
pveum groupadd <groupname> --comment <comment>
Esempio:
pveum groupadd support --comment "Support Team Group"
Questo comando crea un nuovo gruppo chiamato support con la descrizione “ Team di supporto Group “.
Eliminazione di un gruppo
Analogamente all’eliminazione di un utente, è possibile eliminare un gruppo. Ad esempio, per eliminare un gruppo guests è possibile utilizzare il comando:
pveum groupdel guests
Aggiunta di ruoli
I ruoli vengono utilizzati per definire una serie di autorizzazioni per gli utenti e i gruppi a cui è assegnato tale ruolo.
Sintassi:
pveum roleadd <rolename> --privs <privileges>
Dove:
< rolename > è il nome del ruolo da creare.
–– privs < privileges > è un elenco separato da virgole dei privilegi da assegnare al ruolo (ad esempio, VM.PowerMgmt,VM.Config.Disk).
Esempio:
pveum roleadd vmmanager --privs VM.PowerMgmt,VM.Config.CDROM
Questo comando crea un ruolo denominato vmmanager con le autorizzazioni per gestire le impostazioni di alimentazione delle VM e configurare i CD-ROM.
Modifica di un ruolo esistente
Gli amministratori possono modificare i ruoli e le autorizzazioni esistenti con il comando rolemod (aggiungere o rimuovere privilegi).
Sintassi:
pveum rolemod <rolename> --privs <privileges>
Esempio:
pveum rolemod vmmanager --privs +VM.Config.Network
Questo comando aggiunge il privilegio VM.Config.Network al ruolo vmmanager .
Modifica ACL
Gli amministratori Proxmox possono modificare gli elenchi di controllo degli accessi (ACL) assegnando ruoli a utenti o gruppi su oggetti Proxmox specifici.
Sintassi:
pveum aclmod <path> --roles <rolename> --users <userid> --groups <groupname>
Dove:
< path > è il percorso dell’oggetto su cui impostare l’ACL (ad esempio, /vms/100 per una VM specifica o / per l’intero cluster).
–– roles < rolename > è il ruolo da assegnare.
–– users < userid > è l’utente a cui viene assegnato il ruolo.
–– gruppi < gruppo nome > è il gruppo a cui è assegnato il ruolo.
Esempio:
pveum aclmod /vms/104 --roles vmmanager --users user4@pve
Questo comando assegna il ruolo vmmanager a user4@pve sulla VM 104 , consentendo all’utente ( user4 ) di gestire quella specifica VM in base ai privilegi del ruolo vmmanager. Il comando aclremove viene utilizzato per rimuovere gli ACL dagli oggetti di conseguenza.
Gestione del dominio di autenticazione
Un dominio di autenticazione definisce il modo in cui gli utenti si autenticano nel sistema (ad esempio, utilizzando PAM, LDAP o Active Directory). È possibile gestire i domini di autenticazione con il comando realm in Proxmox VE.
Sintassi:
pveum realm <command> [options]
Dove il comando può essere: elenco per elencare tutti i realm disponibili
aggiungere per aggiungere un nuovo realm
modificare per modificare un realm esistente
rimuovere per rimuovere un realm esistente
Ad esempio, per elencare tutti i realm di autenticazione configurati in Proxmox VE, utilizzare il comando:
pveum realm list

Gestione degli utenti esistenti
È possibile elencare, modificare ed eliminare gli utenti esistenti con questo comando utente.
Sintassi:
pveum user <command> <userid> [options]
I comandi possono essere:
list per elencare tutti gli utenti
modify per modificare i dettagli dell’utente, come cambiare una password o aggiornare il commento
delete per eliminare un utente
Ad esempio, per elencare tutti gli utenti su un host Proxmox, utilizzare il comando:
pveum user list
Per visualizzare altri comandi e opzioni disponibili, eseguire il comando pveum help nella CLI di Proxmox.
5. pvesh
Utilizzando il comando pvesh , gli amministratori possono interagire con l’API REST di Proxmox. Questo strumento da riga di comando consente di eseguire quasi tutte le azioni che possono essere eseguite tramite l’interfaccia web di Proxmox direttamente dalla CLI di Proxmox. Il comando pvesh funge da shell per l’API REST di Proxmox VE, consentendo di effettuare chiamate API utilizzando comandi direttamente dalla riga di comando. Con questo comando è possibile gestire macchine virtuali, storage, rete e altri elementi dell’infrastruttura virtuale Proxmox.
Sintassi:
pvesh <command> [options]
Elenco delle risorse o degli endpoint API
Questo comando è simile al comando ls in Linux, ma elenca i percorsi API o le risorse disponibili nell’ambiente Proxmox VE.
pvesh ls /path
Esempio:
pvesh ls /cluster/resources
Questo comando elenca tutte le risorse nel cluster Proxmox, incluse VM, contenitori e storage.
Recupero delle informazioni
Il comando get recupera le informazioni da un endpoint API specifico. Questo comando viene utilizzato per interrogare una risorsa per ottenere dettagli.
pvesh get /path
Dove path è il percorso API da cui si desidera recuperare le informazioni.
Ad esempio, per recuperare le informazioni di stato per il nodo pve-node1 , come il carico della CPU, l’utilizzo della memoria e il tempo di attività, è possibile utilizzare il comando:
pvesh get /nodes/pve-node1/status

Modifica della configurazione
Il comando set viene utilizzato per modificare o aggiornare la configurazione di una risorsa. Ciò equivale a effettuare una richiesta POST o PUT nell’API REST.
Sintassi:
pvesh set /path --key value [--key value ...]
–– key value è la coppia chiave-valore delle impostazioni che si desidera modificare.
Esempio: pvesh set /nodes/pve-node1/qemu/100/config --name new-vm-name
Questo comando cambia il nome della VM 100 sul nodo pve-node1 in new-vm-name .
Creazione di una risorsa
Il comando create consente di creare una nuova risorsa, ad esempio una nuova VM o un volume di storage.
Sintassi:
pvesh create /path --key value [--key value ...]
Ad esempio, è possibile creare una nuova VM con parametri specifici utilizzando il comando:
pvesh create /nodes/pve-node1/qemu --vmid 106 --name new-vm-name --memory 2048 --cores 2
Questo comando crea una nuova VM con ID 106 sul nodo pve-node1 , con il nome new-vm-name , 2 GB di RAM e 2 core CPU.
Avvio delle VM
Esiste un comando per avviare una VM o un contenitore con pvesh :
pvesh start /path
Ad esempio, per avviare la VM con ID 101 sul nodo pve-node1 , è possibile eseguire il comando:
pvesh start /nodes/pve-node1/qemu/101
Spegnimento della VM
A differenza del comando stop, il comando shutdown spegne una VM o un contenitore in modo corretto:
pvesh shutdown /path
Ad esempio, per spegnere una VM con ID 101 su un host Proxmox, il cui nome è pve-node1 , utilizzare il comando:
pvesh shutdown /nodes/pve-node1/qemu/101
Avvio di tutte le VM
Per avviare o arrestare tutte le VM su un nodo o nell’intero cluster, è possibile utilizzare il comando corrispondente:
pvesh startall /nodes/<nodename>
pvesh stopall /nodes/<nodename>
6. pvecm
Il comando pvecm è uno strumento per la gestione dei cluster Proxmox che viene utilizzato per gestire e configurare un cluster Proxmox. È possibile utilizzare questo strumento per creare un cluster, nonché per unire e gestire i nodi all’interno di un cluster Proxmox. Un cluster viene gestito come una singola entità con funzioni di configurazione quali alta disponibilità, migrazione live delle VM, storage condiviso, ecc.
Sintassi:
pvecm <command> [options]
Per visualizzare tutti i comandi pvecm supportati, eseguire questo comando:
man pvecm
Creazione di un cluster
Per creare un nuovo cluster Proxmox VE, è possibile utilizzare il comando create . È necessario eseguire questo comando sul primo nodo (nodo master) che formerà il cluster.
pvecm create <clustername>
Esempio:
Il comando riportato di seguito crea un cluster denominato cluster01 . Questo nodo (su cui viene eseguito il comando) diventa il nodo master del cluster.
pvecm create cluster01
Aggiunta di un nodo a un cluster
Utilizzare il comando addnode per aggiungere nuovi nodi a un cluster Proxmox esistente. Esegui questo comando su un nodo che desideri aggiungere al cluster.
pvecm add <master-node-ip>
Esempio:
Aggiunta dell’host Proxmox corrente a un cluster controllato da un nodo master con indirizzo IP 192.168.101.121 :
pvecm add 192.168.101.121
Eliminazione di un nodo da un cluster
Il comando delnode viene utilizzato nella CLI Proxmox per rimuovere un nodo dal cluster.
Sintassi:
pvecm delnode <nodename>
Esempio: Il comando per rimuovere il nodo denominato pve-node2 dal cluster è:
pvecm delnode pve-node2
Elenco di tutti i nodi di un cluster
Il comando per elencare tutti i nodi del cluster e visualizzarne lo stato, compresi i nomi dei nodi e gli indirizzi IP, è:
pvecm nodes
Impostazione del nuovo nodo master
È possibile impostare un altro nodo del cluster come master in un cluster Proxmox:
pvecm setmaster <nodename>
Dove < nodename > è il nome del nodo che si desidera designare come master.
Visualizzazione dello stato del cluster
È possibile visualizzare lo stato di un cluster Proxmox, comprese le informazioni sul quorum, il numero di nodi e i loro ruoli.
pvecm status
Impostazione del numero previsto di nodi
È possibile verificare quanti nodi sono previsti per raggiungere il quorum nel cluster con il comando expected . Potrebbe essere necessario utilizzare questo comando quando alcuni nodi del cluster sono temporaneamente offline per evitare interruzioni. Il quorum viene utilizzato per evitare situazioni di split-brain quando diversi nodi del cluster hanno informazioni contrastanti sullo stato del cluster.
pvecm expected <number>
7. hamanager
Il comando hamanager viene utilizzato per gestire la funzione di alta disponibilità (HA) per le VM dopo aver creato un cluster Proxmox. Questa utility da riga di comando consente di configurare l’alta disponibilità per le VM critiche e di impostare come riavviarle in un cluster se il nodo su cui sono in esecuzione si guasta. Lo strumento hamanager nella CLI Proxmox interagisce con Proxmox High Availability Manager.
Sintassi:
ha-manager <command> [options]
Visualizzazione dello stato
Per visualizzare lo stato attuale delle risorse HA è possibile utilizzare il comando:
ha-manager status
L’output mostra informazioni su quali VM o CT sono configurate per l’HA, il loro stato attuale (avviato, arrestato), compreso lo stato HA e lo stato di failover, e su quale nodo sono in esecuzione.
Abilitazione dell’HA per una VM
Sintassi:
ha-manager add <vmid> --group <groupname> --max-restarts <n> --max-migrate-tries <n>
Dove:
< vmid > è l’ID della VM o del CT che si desidera aggiungere all’HA.
–– group < groupname > è il gruppo HA a cui deve essere aggiunta la risorsa (opzionale).
–– max-restarts < n > è il numero massimo di tentativi di riavvio se la risorsa non funziona.
–– max-migrate-tries < n > è il numero massimo di tentativi di migrazione verso un altro nodo se la risorsa non può essere riavviata.
Esempio: Aggiunta di una VM con ID 105 al gestore HA con un massimo di 3 tentativi di riavvio e 1 tentativo di migrazione in caso di errore:
ha-manager add 105 --max-restarts 3 --max-migrate-tries 1
Disabilitazione dello stato HA di una VM
Utilizzare il comando remove per disabilitare lo stato di alta disponibilità di una VM e rimuovere la VM dal gestore HA.
ha-manager remove <vmid>
Ad esempio, per disabilitare lo stato HA della VM con ID 105 , eseguire il comando:
ha-manager remove 105
Dopo aver eseguito il comando, la VM non sarà più gestita come risorsa ad alta disponibilità.
Migrazione della VM
È possibile migrare manualmente una VM ad alta disponibilità su un altro nodo del cluster con il comando migrate :
ha-manager migrate <vmid> <targetnode>
Ad esempio, per migrare una VM con ID 106 su un nodo chiamato pve-node2 , eseguire il comando:
ha-manager migrate 106 pve-node2
8. vzdump
Il comando vzdump viene utilizzato per creare backup in Proxmox VE con strumenti nativi Proxmox. Questo comando supporta il backup di VM e contenitori. I backup possono essere salvati in formato . vma , . tgz o . lzo .
Sintassi:
vzdump [options] <vmid> [<vmid2> ...]
Dove:
vmid è l’ID di una VM o di un contenitore di cui si desidera eseguire il backup.
–– mode < mode > definisce la modalità di backup. Sono supportate tre modalità di backup:
- snapshot – acquisisce un’istantanea live di una VM o di un contenitore Proxmox. Questa modalità è utilizzata per impostazione predefinita e consente di eseguire un backup quando una VM o un contenitore è in esecuzione.
- suspend – questa modalità viene utilizzata per sospendere la VM o il contenitore prima del backup, consentendo di garantire la coerenza dei dati. Lo svantaggio di questa modalità è il breve periodo di inattività che comporta.
- stop – arresta la VM o il contenitore prima di eseguire il backup. Questo approccio consente di preservare la coerenza dei dati di backup, ma richiede un periodo di inattività più lungo.
–– compress < type > viene utilizzato per specificare il metodo di compressione. Sono disponibili tre opzioni di compressione supportate:
- lzo – compressione leggera e veloce per il backup Proxmox (utilizzata di default).
- gzip – si tratta di un metodo di compressione più efficiente, ma richiede più tempo per comprimere i dati (compressione più lenta).
- zstd – Questo tipo di compressione utilizza un moderno algoritmo di compressione che offre elevati rapporti di compressione con prestazioni ottimali.
–– storage < storage > specifica la destinazione di archiviazione per il file di backup. Può essere una directory locale, una condivisione NFS o un pool di archiviazione Proxmox.
–– maxfiles < n > limita il numero di file di backup da conservare. I backup più vecchi vengono eliminati automaticamente al raggiungimento del limite.
–– remove < mode > rimuove automaticamente i file di backup in base alla modalità specificata. Le modalità includono:
- old – rimuove i backup vecchi quando ne vengono creati di nuovi.
- fail – rimuove solo i backup non riusciti.
Eseguire il backup di più VM
Eseguire il backup delle VM con gli ID 101, 102 e 103 in sequenza:
vzdump 101 102 103
Salvare il backup con compressione
vzdump 101 --storage local --compress gzip --maxfiles 3
Il comando vzdump con queste opzioni esegue le seguenti azioni:
- Salva il backup della VM 101 nell’archivio denominato local. L’archivio locale può essere una directory locale su un host Proxmox o un pool di storage.
- Viene utilizzata la compressione gzip . La creazione di un backup crittografato con la compressione gzip può richiedere più tempo, ma il file di backup risultante sarà più piccolo.
- Vengono conservati solo i 3 backup più recenti, mentre quelli più vecchi vengono eliminati automaticamente.
Ometti i file di log
vzdump 102 --exclude-path /var/log
Esegue il backup della VM 102 ma esclude la directory /var/log , riducendo la dimensione del backup grazie all’omissione dei file di log.
Rimuovi i backup precedenti
vzdump 101 --storage nfs-backup --maxfiles 5 --remove old
Si tratta di un backup automatico con rimozione dei backup precedenti. Esegue il backup della VM 101 , archivia il backup in nfs-backup storage e conserva solo i 5 backup più recenti, eliminando automaticamente quelli più vecchi.
Backup in modalità snapshot
vzdump --all --mode snapshot --storage nfs-backup --bwlimit 20480 --remove old --maxfiles 7
Creazione di backup (ad esempio backup notturni) di tutte le VM e i contenitori utilizzando la modalità di backup snapshot. I backup vengono salvati in una condivisione NFS denominata nfs-backup . La larghezza di banda è limitata a 20480 Kbyte al secondo (20 MBps) per evitare il sovraccarico della rete. Vengono conservati solo gli ultimi 7 backup, mentre quelli più vecchi vengono automaticamente rimossi.
9. qmrestore
Il comando qmrestore viene utilizzato per ripristinare le VM dai backup creati con il comando vzdump nell’ambiente virtuale Proxmox. Questi comandi vzdump e qmrestore sono strumenti nativi di Proxmox per il backup e il ripristino delle VM. Un backup può essere ripristinato su una VM nuova o esistente.
Sintassi:
qmrestore [options] <backupfile> <vmid>
Dove:
< backupfile > è il percorso del file di backup che si desidera ripristinare. Questo file viene in genere generato dal comando vzdump e memorizzato in una directory o su un dispositivo di storage di rete.
< vmid > è l’ID della VM che si desidera ripristinare. Se l’ID della VM esiste già, la VM esistente verrà sovrascritta, a meno che non vengano utilizzate opzioni specifiche per impedirlo.
Opzioni di comando:
–– force viene utilizzato per sovrascrivere una VM esistente con lo stesso ID e non viene visualizzata alcuna domanda di conferma. È possibile utilizzare questa opzione per ripristinare una VM quando non si ha alcun problema a perdere lo stato corrente della VM con lo stesso ID.
–– unique viene utilizzato per generare un nuovo ID VM univoco per una VM ripristinata. Si consiglia di utilizzare questa opzione per ripristinare un backup creando una nuova VM senza sovrascrivere le VM esistenti.
–– storage < storage > specifica la posizione di storage di destinazione per le immagini del disco virtuale della VM ripristinata. Se questa opzione non è specificata, la VM verrà ripristinata nella sua posizione di storage originale o in quella predefinita.
–– pool < pool > consente di assegnare la VM ripristinata a un pool di risorse specifico nell’ambiente virtuale Proxmox. I pool di risorse vengono utilizzati per creare gruppi di VM e facilitare la gestione.
–– hostname < name > imposta il nome host della VM ripristinata. Questa opzione è utile se si desidera impostare un nome host diverso da quello originale per la VM ripristinata.
–– name < name > imposta un nome personalizzato per la VM ripristinata (un nome che viene visualizzato nell’interfaccia utente Proxmox), diverso dal nome originale della VM di cui è stato eseguito il backup.
Ripristina VM all’ID originale
Ripristino di una VM al suo ID originale:
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 101
Questo comando ripristina il file di backup vzdump-qemu-101-2023_08_27-00_00_00.vma alla VM con ID 101 . Se esiste già una VM con ID 101 , questa verrà sovrascritta.
Ripristina il backup su una nuova VM
Ripristino del backup su una nuova VM:
qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 102 --storage local-lvm
Questo comando ripristina il backup su una nuova VM con ID 102 , memorizzando le immagini del disco su local-lvm storage.
Ripristina e modifica il nome host e il nome della VM
Ripristina il backup e modifica il nome host e il nome:
qmrestore /mnt/pve/nfs-backup/dump/vzdump-qemu-101-2023_08_27-00_00_00.vma 103 --hostname restored-vm --name "MyRestoredVM"
Ripristina il backup su una nuova VM con ID 103 , rinomina la VM in MyRestoredVM e imposta il nome host in restored-vm .
10. proxmox-backup-client
Il comando proxmox-backup-client è un’utilità da riga di comando utilizzata in combinazione con Proxmox Backup Server, una soluzione di backup nativa di Proxmox, utilizzata per operazioni di backup e ripristino. Questo strumento consente agli amministratori di proteggere VM, contenitori e altri tipi di dati. Lo strumento proxmox-backup-client interagisce con un Proxmox Backup Server (PBS) per gestire i backup
Sintassi:
proxmox-backup-client <command> [options]
La sintassi di base del comando di backup
proxmox-backup-client backup <archive-name> <path> --repository <repository> [options]
Dove:
< archive-name > è il nome che si desidera assegnare all’archivio di backup.
< path > definisce il percorso della directory o del file di cui si desidera eseguire il backup.
–– repository < repository > è il repository di destinazione sul Proxmox Backup Server, tipicamente nella forma user@pbs:datastore
Esempio:
proxmox-backup-client backup etc.pxar /etc --repository root@pbs@10.10.10.101:datastore1
Questo comando esegue il backup della directory / etc sul datastore1 del Proxmox Backup Server situato all’indirizzo 10.10.10.101 . Il backup viene memorizzato come archivio denominato etc.pxar .
La sintassi di base del comando di ripristino
Il comando di ripristino per gli strumenti della riga di comando proxmox-backup-client viene utilizzato per ripristinare i dati da un Proxmox Backup Server al sistema locale.
proxmox-backup-client restore <archive-name> <path> --repository <repository> [options]
Dove:
< nome-archivio > è il nome dell’archivio che si desidera ripristinare.
< percorso > è il percorso in cui devono essere ripristinati i dati.
–– repository < repository > è il repository in cui è archiviato il backup.
Esempio:
proxmox-backup-client restore etc.pxar /restore/etc --repository root@pbs@10.10.10.101:datastore1
Questo comando ripristina l’archivio etc.pxar da datastore1 sul Proxmox Backup Server all’indirizzo 10.10.10.101 nella directory locale / restore / etc .
Conclusione
I comandi CLI di Proxmox sono un potente set di strumenti per la gestione dell’ambiente virtuale Proxmox, inclusi storage, VM, cluster, backup VM, ecc. Se desiderate implementare una strategia di backup VM completa, installate NAKIVO Backup & Replication e utilizzate la funzionalità di backup senza agente per le VM Proxmox VE.