L’ambiente virtuale Proxmox (VE) può essere gestito con un’interfaccia grafica user-friendly in un browser web. Tuttavia, in scenari specifici, è meglio utilizzare l’interfaccia della riga di comando (CLI). La CLI offre vantaggi come configurazioni più dettagliate, elaborazione in batch, scripting e automazione.
Esistono comandi standard di Linux e comandi specifici di Proxmox per gestire gli ambienti virtuali Proxmox. Questo post del blog copre i 10 principali comandi specifici di Proxmox 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 macchine virtuali (VM) in un ambiente virtuale Proxmox (Proxmox VE). Le macchine virtuali su Proxmox sono basate su QEMU/KVM, e il comando qm interagisce con esse. Puoi creare, modificare, configurare, avviare, fermare e migrare le VM con questo comando.
La sintassi generale del comando è:
qm [opzioni] <comando> [argomenti]
Elencare le macchine virtuali
Puoi vedere lo stato e l’ID della VM. Potresti aver bisogno dell’ID per gestire questa VM nella CLI di Proxmox.
qm list
Creare una nuova macchina virtuale
Sintassi generale:
qm create <vmid> [opzioni]
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 chiamata “DebianVM” con 2GB di RAM, 1 socket, 2 core e un’interfaccia di rete Virtio collegata a vmbr0. Il tipo di OS è Linux (indicato da l26).
Collegare un disco a una VM
qm set 105 --scsi0 local-lvm:32G
Collega un disco da 32GB alla VM utilizzando l’interfaccia SCSI.
Collegare un CD-ROM per l’installazione dell’OS
qm set 105 --ide2 local:iso/debian-10.7.0-amd64-netinst.iso,media=cdrom
Questo comando collega un’ISO di Debian all’unità CD-ROM IDE della VM per l’installazione di un sistema operativo guest o per altri scopi.
Configurare l’ordine di avvio
qm set 105 --boot order=ide2;scsi0
Il comando utilizzato in questo esempio configura la VM per avviarsi prima dal CD-ROM (IDE2), poi dal disco (SCSI0).
Avviare una macchina virtuale
Sintassi:
qm start <vmid>
Esempio:
qm start 103
Avviando la VM con ID 103
Fermare una VM
qm stop <vmid>
Questo comando ferma immediatamente una VM in esecuzione. Questo modo di fermare una VM è lo stesso che staccare la spina di alimentazione su una macchina fisica.
qm stop 103
Fermando la VM con ID 103.
Spegnere una VM in Proxmox CLI
qm shutdown <vmid>
Questo comando spegne una VM in modo ordinato, consentendo al sistema operativo guest di chiudere i file e terminare i processi correttamente.
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 l’ID 103 a node2, possiamo utilizzare il comando:
qm migrate 103 node2
Creazione di uno snapshot di una VM
qm snapshot <vmid> <snapshotname>
Il comando crea uno snapshot della VM, catturando il suo stato attuale, inclusi memoria, stato del disco e dei dispositivi.
qm snapshot 103 "before_upgrade"
Questo comando prende uno snapshot della VM con ID 103 e lo chiama “before_upgrade“. Utilizzare il comando per prendere uno snapshot è utile prima di eseguire operazioni rischiose, come gli aggiornamenti software.
Ripristinare lo stato di una VM da uno snapshot
qm rollback <vmid> <snapshotname>
Questo comando ripristina una VM a uno snapshot precedente, riportando il suo stato al momento in cui è stato preso lo snapshot.
Ad esempio, se l’aggiornamento software all’interno di una VM non è riuscito e ha fallito, possiamo ripristinare lo stato della VM con il comando:
qm rollback 103 "before_upgrade"
Eventuali modifiche apportate da quando è stata scattata la snapshot vengono scartate (annullate).
Clonare una macchina virtuale
qm clone <vmid> <newid> [--name <newname>] [--full]
Il comando qm clone
clona una VM esistente per creare una nuova VM con un ID diverso. Puoi 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, chiamandola “DebianClone“. L’opzione ––full crea un clone completo, copiando tutti i dati.
Ridimensionare il disco di una macchina virtuale
qm resize <vmid> <disk> <size>
Il comando qm resize
viene utilizzato per ridimensionare un disco virtuale collegato a una VM, espandendolo o riducendolo. Assicurati che il sistema operativo guest possa gestire la modifica.
qm resize 103 scsi0 +10G
Questo comando della CLI di Proxmox aumenta la dimensione del disco scsi0 sulla VM con ID 103 di 10GB.
2. pve-firewall
Il comando pve-firewall
è utilizzato per gestire le impostazioni del firewall nell’ambiente virtuale Proxmox, inclusi i cluster Proxmox. Questo comando CLI di Proxmox fornisce opzioni user-friendly per configurare le regole del firewall e consente agli amministratori di controllare il traffico di rete verso e dai nodi Proxmox, macchine virtuali e contenitori. Il firewall di Proxmox si integra strettamente con l’interfaccia di gestione di Proxmox e rende la gestione del firewall in tutto l’ambiente Proxmox più conveniente. Lo strumento pve-firewall è sviluppato appositamente per Proxmox VE e utilizza un’astrazione di alto livello per gestire le regole del firewall rispetto all’approccio più dettagliato e manuale utilizzato in iptables.
Sintassi:
pve-firewall <command> [options]
Esegui il comando pve-firewall
per vedere l’uso principale del comando.
Controlla lo stato
Controllo dello stato del servizio firewall di Proxmox VE:
pve-firewall status
L’output mostra se il firewall è in esecuzione o meno sul nodo corrente.
Avvia il firewall
Avviando il servizio firewall sul nodo Proxmox corrente:
pve-firewall start
Ricarica il firewall
Ricaricando il servizio firewall e applicando le modifiche alla configurazione del firewall senza la necessità di fermare e riavviare il servizio firewall.
pve-firewall reload
Accetta il traffico SSH
Creando una regola del 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 <oggetto> crea un nuovo oggetto firewall, come una regola, un gruppo di sicurezza o un insieme di indirizzi IP.
Elimina regola
Per eliminare la regola, usa il comando:
pve-firewall delete rule <rule-id>
Visualizza log
Visualizza il log del firewall, che mostra il traffico e le corrispondenze delle regole:
pve-firewall log
L’output mostra le voci più recenti del log del firewall.
Nega il traffico HTTP
Per creare una regola del firewall che nega qualsiasi traffico HTTP, usa il comando:
pve-firewall create rule -action drop -macro http
3. pvesm
Il pvesm
comando nella CLI di Proxmox è l’utilità da riga di comando utilizzata per gestire la configurazione dello storage in Proxmox VE. Con questo strumento da riga di comando, puoi creare, eliminare, modificare e gestire i pool di storage. Inoltre, puoi eseguire varie operazioni relative allo storage, come la creazione di directory, l’aggiunta di dispositivi di storage e la gestione dei tipi di contenuto.
Sintassi:
pvesm <comando> [opzioni]
Elenca lo storage
pvesm list <storage>
Dove <storage> è il nome del pool di storage (datastore) da elencare.
Controllo dello stato di tutti o di specifici pool di storage
pvesm status
L’output visualizza lo stato del pool di archiviazione, inclusa l’informazione se è attivo o inattivo, il tipo di archiviazione e l’uso attuale.
Creare 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 o ID unico per il pool di archiviazione.
––options definisce le opzioni aggiuntive specifiche per il tipo di archiviazione.
Esempio:
Creare un nuovo pool di archiviazione basato su directory chiamato new-datastore1 situato in /mnt/storage-name, che può memorizzare immagini VM e file ISO:
pvesm create dir new-datastore1 --path /mnt/storage-name --content images,iso
Aggiungere un backend di archiviazione esistente a Proxmox VE
Il principio di questo comando è simile al comando pvesm create
, ma invece di creare un nuovo storage, lo storage già esistente viene aggiunto alla configurazione di Proxmox per renderlo disponibile.
Esempio:
Aggiungere 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
Modificare la configurazione di un pool di storage esistente
pvesm set <storage-id> --options
Esempio:
Modificare il pool local-storage01 per consentirgli di memorizzare immagini VM, file ISO e file di backup:
pvesm set local-storage01 --content images,iso,backup
Assegnare un nuovo volume a un pool di storage specificato per una VM o un container
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
L’ambiente virtuale Proxmox consente di creare più utenti per gestire Proxmox VE. Questo può essere fatto con i comandi della CLI di Proxmox utilizzando il comando pveum
(gestione utenti). Gli amministratori di Proxmox possono gestire utenti e gruppi e configurare controlli di accesso e autorizzazioni. Questo, a sua volta, definisce chi può avere accesso e chi è autorizzato a intraprendere azioni sulle diverse parti dell’infrastruttura Proxmox. Gli amministratori possono assegnare autorizzazioni per accedere a oggetti, come macchine virtuali, storage, nodi del cluster, ecc.
Sintassi:
pveum <command> [options]
Aggiungere il nuovo utente a Proxmox VE
pveum useradd <userid> --password <password> --comment <comment> --groups <group>
Dove:
––password <password> è la password per il nuovo utente.
––commento <comment> è un commento o descrizione opzionale per l’utente.
––gruppi <group> è il gruppo (o i gruppi) a cui l’utente deve appartenere.
Esempio:
pveum useradd user2@pve --password UserSecretPassword111 --comment "user2 – gruppo admin" --groups admin
Questo comando viene utilizzato per aggiungere un utente il cui nome è user2 al gruppo admin con una descrizione e impostare la password per questo utente.
Eliminazione di un utente
Per eliminare un utente, utilizza il comando pveum
con la stessa logica di aggiunta di 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, utilizza il comando groupadd
.
Sintassi:
pveum groupadd <groupname> --comment <comment>
Esempio:
pveum groupadd support --comment "Gruppo Supporto"
Questo comando crea un nuovo gruppo chiamato support con la descrizione “Gruppo Supporto“.
Eliminazione di un gruppo
Simile all’eliminazione di un utente, puoi eliminare un gruppo. Ad esempio, per eliminare un gruppo guests, puoi utilizzare il comando:
pveum groupdel ospiti
Aggiunta di ruoli
I ruoli vengono utilizzati per definire un insieme di autorizzazioni per utenti e gruppi a cui questo ruolo è assegnato.
Sintassi:
pveum roleadd <nomeruolo> --privs <privilegi>
Dove:
<nomeruolo> è il nome del ruolo da creare.
––privs <privilegi> è un elenco di privilegi separati da virgole 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 chiamato vmmanager con autorizzazioni per gestire le impostazioni di alimentazione delle VM e configurare i CD-ROM.
Modifica di un ruolo esistente
Gli amministratori possono modificare ruoli e autorizzazioni esistenti con il comando rolemod
(aggiungere o rimuovere privilegi).
Sintassi:
pveum rolemod <nomeruolo> --privs <privilegi>
Esempio:
pveum rolemod vmmanager --privs +VM.Config.Network
Questo comando aggiunge il privilegio VM.Config.Network al ruolo vmmanager.
Modifica ACL
Gli amministratori di Proxmox possono modificare le Liste di Controllo degli Accessi (ACL) assegnando ruoli a utenti o gruppi su specifici oggetti Proxmox.
Sintassi:
pveum aclmod <path> --ruoli <nomeruolo> --utenti <userid> --gruppi <nomegruppo>
Dove:
<path> è il percorso dell’oggetto su cui impostare l’ACL (ad esempio, /vms/100 per una VM specifica o / per l’intero cluster).
––ruoli <nomeruolo> è il ruolo da assegnare.
––utenti <userid> è l’utente a cui viene assegnato il ruolo.
––gruppi <nomegruppo> è il gruppo a cui viene assegnato il ruolo.
Esempio:
pveum aclmod /vms/104 --ruoli vmmanager --utenti user4@pve
Questo comando assegna il ruolo vmmanager a user4@pve sulla VM 104, consentendo all’utente (user4) di gestire quella specifica VM secondo i privilegi del ruolo vmmanager. Il comando aclremove
è utilizzato per rimuovere le ACL dagli oggetti di conseguenza.
Gestione dei domini di autenticazione
Un dominio di autenticazione definisce come gli utenti si autenticano con il sistema (ad esempio, utilizzando PAM, LDAP o Active Directory). Puoi gestire i domini di autenticazione con il comando realm
in Proxmox VE.
Sintassi:
pveum realm <comando> [opzioni]
Dove il comando può essere:
list per elencare tutti i domini disponibili
add per aggiungere un nuovo dominio
modify per modificare un dominio esistente
rimuovi per rimuovere un dominio esistente
Ad esempio, per elencare tutti i domini di autenticazione configurati in Proxmox VE, usa il comando:
pveum realm list
Gestire gli utenti esistenti
Puoi elencare, modificare ed eliminare gli utenti esistenti con questo comando utente.
Sintassi:
pveum user <comando> <userid> [opzioni]
I comandi possono essere:
elenca per elencare tutti gli utenti
modifica per modificare i dettagli dell’utente, come cambiare una password o aggiornare il commento
elimina per eliminare un utente
Ad esempio, per elencare tutti gli utenti su un host Proxmox, usa il comando:
pveum user list
Per vedere ulteriori comandi e opzioni disponibili, esegui 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 qualsiasi azione che può essere eseguita 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, puoi gestire macchine virtuali, archiviazione, rete e altri elementi dell’infrastruttura virtuale Proxmox.
Sintassi:
pvesh <comando> [opzioni]
Elencare risorse o 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, comprese le VM, i contenitori e lo storage.
Recupero delle informazioni
Il comando get recupera informazioni da un endpoint API specifico. Questo comando viene utilizzato per interrogare una risorsa per dettagli.
pvesh get /path
Dove path è il percorso API da cui si desidera recuperare informazioni.
Ad esempio, per recuperare le informazioni sullo stato del nodo pve-node1, come il carico della CPU, l’uso 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. Questo è equivalente 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, come una nuova VM o un volume di archiviazione.
Sintassi:
pvesh create /path --key value [--key value ...]
Ad esempio, puoi 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
C’è 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, puoi eseguire il comando:
pvesh start /nodes/pve-node1/qemu/101
Arresto delle VM
A differenza del comando stop, il comando shutdown arresta una VM o un contenitore in modo controllato:
pvesh shutdown /path
Ad esempio, per arrestare una VM con ID 101 su un host Proxmox, il cui nome è pve-node1, utilizza il comando:
pvesh shutdown /nodes/pve-node1/qemu/101
Avvio di tutte le VM
Per avviare o fermare tutte le VM su un nodo o nell’intero cluster, puoi 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 utilizzato per gestire e configurare un cluster Proxmox. Puoi utilizzare questo strumento per creare un cluster, così come per unirti e gestire i nodi all’interno di un cluster Proxmox. Un cluster è gestito come un’unica entità con funzionalità di configurazione, come Alta Disponibilità, migrazione live delle VM, archiviazione condivisa, ecc.
Sintassi:
pvecm <comando> [opzioni]
Per vedere tutti i comandi pvecm
supportati, esegui questo comando:
man pvecm
Creazione di un cluster
Per creare un nuovo cluster Proxmox VE, puoi utilizzare il comando create . Dovresti eseguire questo comando sul primo nodo (nodo master) che formerà il cluster.
pvecm create <nome-cluster>
Esempio:
Il comando qui sotto crea un cluster chiamato cluster01. Questo nodo (dove eseguiamo il comando) diventa il nodo master del cluster.
pvecm create cluster01
Aggiungere un nodo a un cluster
Utilizza 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 <ip-nodo-master>
Esempio:
Aggiungendo l’attuale host Proxmox a un cluster controllato da un nodo master con l’indirizzo IP 192.168.101.121:
pvecm add 192.168.101.121
Cancellare un nodo da un cluster
Il comando delnode viene utilizzato nella CLI di Proxmox per rimuovere un nodo dal cluster.
Sintassi:
pvecm delnode <nodename>
Esempio:
Il comando per rimuovere il nodo chiamato pve-node2 dal cluster è:
pvecm delnode pve-node2
Elencare tutti i nodi di un cluster
Il comando per elencare tutti i nodi del cluster e visualizzare il loro stato, inclusi i nomi dei nodi e gli indirizzi IP, è:
pvecm nodes
Impostare il nuovo nodo master
Puoi impostare un altro nodo del cluster come master in un cluster Proxmox:
pvecm setmaster <nodename>
Dove <nodename> è il nome del nodo che desideri designare come master.
Visualizzare lo stato del cluster
Puoi visualizzare lo stato di un cluster Proxmox, incluse informazioni sul quorum, il numero di nodi e i loro ruoli.
pvecm status
Impostare il numero previsto di nodi
Puoi controllare 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 in conflitto sullo stato del cluster.
pvecm expected <number>
7. hamanager
Il comando hamanager
viene utilizzato per gestire la funzione di Alta Disponibilità (HA) per le macchine virtuali dopo aver creato un cluster Proxmox. Questa utility da linea di comando consente di configurare l’Alta Disponibilità per le VM critiche e stabilire come riavviarle in un cluster se il nodo su cui stanno funzionando fallisce. Lo strumento hamanager nella CLI di Proxmox interagisce con il Gestore di Alta Disponibilità di Proxmox.
Sintassi:
ha-manager <comando> [opzioni]
Visualizzazione dello stato
Per visualizzare lo stato attuale delle risorse HA puoi usare il comando:
ha-manager status
L’output visualizza informazioni su quali VM o CT sono configurati per HA, il loro stato attuale (avviato, fermo), inclusi lo stato HA e lo stato di failover, e su quale nodo stanno funzionando.
Abilitare HA per una VM
Sintassi:
ha-manager add <vmid> --group <nomegruppo> --max-restarts <n> --max-migrate-tries <n>
Dove:
<vmid> è l’ID della VM o CT che desideri aggiungere all’HA.
––group <nomegruppo> è il gruppo HA al quale la risorsa dovrebbe essere aggiunta (opzionale).
––max-restarts <n> è il numero massimo di tentativi di riavvio se la risorsa fallisce.
––max-migrate-tries <n> è il numero massimo di tentativi di migrazione su un altro nodo se la risorsa non può essere riavviata.
Esempio:
Aggiunta di una VM con ID 105 al manager 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
Disabilitare lo stato HA di una VM
Utilizzare il comando remove per disabilitare lo stato di alta disponibilità di una macchina virtuale e rimuovere la VM dal manager HA.
ha-manager remove <vmid>
Ad esempio, per disabilitare lo stato HA per la VM con ID 105, eseguire il comando:
ha-manager remove 105
Dopo aver eseguito il comando, la VM non sarà più gestita come una risorsa altamente disponibile.
Migrazione della VM
È possibile migrare manualmente una VM altamente disponibile su un altro nodo nel 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 di Proxmox. Questo comando supporta il backup di VM e container. 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 container che si desidera eseguire il backup.
––mode <mode> definisce la modalità di backup. Ci sono tre modalità di backup supportate:
- snapshot – prende uno snapshot live di una macchina virtuale 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, il che consente di garantire che i dati siano coerenti. Il breve downtime causato da questa modalità è uno svantaggio.
- stop – ferma la macchina virtuale o il contenitore prima di eseguire il backup. Questo approccio consente di preservare la coerenza dei dati di backup, ma richiede un downtime più esteso.
––compress <type> viene utilizzato per specificare il metodo di compressione. Ci sono tre opzioni di compressione supportate:
- lzo – compressione leggera e veloce per il backup Proxmox (utilizzata per impostazione predefinita).
- gzip – questo è un metodo di compressione più efficiente ma richiede più tempo per comprimere i dati (compressione più lenta).
- zstd – Questo tipo di compressione utilizza un algoritmo di compressione moderno che offre alti rapporti di compressione con prestazioni ottimali.
––storage <storage> specifica l’obiettivo di archiviazione per il file di backup. Questo può essere una directory locale, una condivisione NFS o un pool di archiviazione Proxmox.
––maxfiles <n> limita il numero di file di backup da mantenere. I backup più vecchi vengono eliminati automaticamente se viene raggiunto il limite.
––rimuovi <mode> rimuove automaticamente i file di backup secondo la modalità specificata. Le modalità includono:
- vecchio – rimuove i backup vecchi quando ne vengono creati di nuovi.
- errore – 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
Salva 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 nello storage chiamato locale. Lo storage locale potrebbe essere una directory locale su un host Proxmox o un pool di storage.
- Viene utilizzata la compressione gzip. Creare un backup cifrato con compressione gzip può richiedere più tempo, ma alla fine si ottiene un file di backup più piccolo.
- Vengono mantenuti solo i 3 backup più recenti, mentre quelli più vecchi vengono eliminati automaticamente.
Omettere i file di log
vzdump 102 --exclude-path /var/log
Esegue il backup della VM 102 ma esclude la /var/log directory, riducendo la dimensione del backup omettendo i file di log.
Rimuovi i backup vecchi
vzdump 101 --storage nfs-backup --maxfiles 5 --remove old
Questo è un backup automatico con la rimozione dei backup più vecchi. Esegue il backup della VM 101, memorizza il backup nello storage nfs-backup e conserva solo i 5 backup più recenti, eliminando automaticamente eventuali backup più vecchi.
Backup in modalità snapshot
vzdump --all --mode snapshot --storage nfs-backup --bwlimit 20480 --remove old --maxfiles 7
Creazione di backup (come un backup notturno) di tutte le VM e i container utilizzando la modalità di backup snapshot. I backup sono salvati su una condivisione NFS chiamata nfs-backup. La larghezza di banda è limitata a 20480 Kbytes al secondo (20 MBps) per prevenire il sovraccarico della rete. Vengono mantenuti solo gli ultimi 7 backup, e i backup più vecchi vengono rimossi automaticamente.
9. qmrestore
Il comando qmrestore
viene utilizzato per ripristinare macchine virtuali dai backup creati utilizzando 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 [opzioni] <filebackup> <vmid>
Dove:
<filebackup> è il percorso del file di backup che desideri ripristinare. Questo file è tipicamente generato dal comando vzdump
e memorizzato in una directory o su un dispositivo di storage di rete.
<vmid> è l’ID della VM che desideri ripristinare. Se l’ID della VM esiste già, la VM esistente verrà sovrascritta a meno che non vengano utilizzate opzioni specifiche per prevenire ciò.
Opzioni del comando:
––force viene utilizzato per sovrascrivere una VM esistente con lo stesso ID, e non viene posta alcuna domanda di conferma. Puoi utilizzare questa opzione per ripristinare una VM quando non ti dispiace perdere lo stato attuale della macchina virtuale con lo stesso ID.
––unique viene utilizzato per generare un nuovo ID VM unico per una VM ripristinata. Considera di utilizzare questa opzione per ripristinare un backup creando una nuova VM senza sovrascrivere alcuna VM esistente.
––storage <storage> specifica la posizione di archiviazione target per le immagini del disco virtuale della VM ripristinata. Se questa opzione non è specificata, la VM verrà ripristinata nel suo storage originale o nello storage predefinito.
––pool <pool> ti consente di assegnare la VM ripristinata a un pool di risorse specifico nell’ambiente virtuale Proxmox. I pool di risorse vengono utilizzati per raggruppare le macchine virtuali per una gestione più semplice.
––hostname <name> imposta il nome host della VM ripristinata. Questa opzione è utile se desideri impostare un nome host diverso per la VM ripristinata rispetto al nome host originale.
––name <name> imposta un nome personalizzato per la VM ripristinata (un nome che viene visualizzato nell’interfaccia utente di Proxmox), diverso dal nome originale della VM che è stata eseguita il backup.
Ripristina VM all’ID originale
Ripristinare 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 nella VM con ID 101. Se una VM con ID 101 esiste già, verrà sovrascritta.
Ripristina il backup in una nuova VM
Ripristinare il backup in 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 in una nuova VM con ID 102, memorizzando le sue immagini disco nello storage local-lvm.
Ripristina e cambia hostname e nome della VM
Ripristinare il backup e cambiare l’hostname 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 in una nuova VM con ID 103, rinomina la VM in MyRestoredVM e imposta il suo hostname su 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 macchine virtuali, 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 <nome-archivio> <percorso> --repository <repository> [opzioni]
Dove:
<nome-archivio> è il nome che vuoi dare all’archivio di backup.
<percorso> definisce il percorso della directory o del file che desideri eseguire il backup.
––repository <repository> è il repository di destinazione sul Proxmox Backup Server, tipicamente nella forma di user@pbs:datastore
Esempio:
proxmox-backup-client backup etc.pxar /etc --repository root@[email protected]:datastore1
Questo comando esegue il backup della directory /etc nel datastore1 sul Proxmox Backup Server situato a 10.10.10.101. Il backup è memorizzato come un archivio chiamato etc.pxar.
La sintassi di base del comando di ripristino
Il comando di ripristino per gli strumenti da riga di comando proxmox-backup-client
viene utilizzato per ripristinare i dati da un Proxmox Backup Server al sistema locale.
proxmox-backup-client restore <nome-archivio> <percorso> --repository <repository> [opzioni]
Dove:
<nome-archivio> è il nome dell’archivio che desideri ripristinare.
<percorso> è il percorso in cui i dati devono essere ripristinati.
––repository <repository> è il repository dove è memorizzato il backup.
Esempio:
proxmox-backup-client restore etc.pxar /restore/etc --repository root@[email protected]: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 gestire l’ambiente virtuale Proxmox, inclusi storage, macchine virtuali, cluster, backup delle VM, ecc. Se desideri implementare una strategia di backup completa per le VM, installa NAKIVO Backup & Replication e utilizza la capacità di backup senza agente per le VM di Proxmox VE.
Source:
https://www.nakivo.com/blog/top-10-proxmox-cli-commands-every-admin-should-know/