L’ambiente virtuale Proxmox (VE) può essere gestito con un’interfaccia grafica intuitiva in un browser web. Tuttavia, in scenari specifici, è meglio utilizzare l’interfaccia a riga di comando (CLI). La CLI offre vantaggi come una configurazione più dettagliata, elaborazione in batch, scripting e automazione.
Ci sono comandi Linux standard 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 le 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 bridged 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 del sistema operativo
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 di 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 sicuro, 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 a un altro nodo
qm migrate <vmid> <targetnode>
Questo comando migra una VM dal 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 usare il comando:
qm migrate 103 node2
Prendere uno snapshot di una VM
qm snapshot <vmid> <snapshotname>
Il comando crea uno snapshot della VM, catturando il suo stato attuale, inclusi memoria, disco e stato 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 aggiornamenti software.
Ripristinare lo stato di una VM da uno snapshot
qm rollback <vmid> <snapshotname>
Questo comando ripristina una VM a uno snapshot precedente, ripristinando il suo stato al punto in cui è stato preso lo snapshot.
Ad esempio, se l’aggiornamento software all’interno di una VM non ha avuto successo e ha fallito, possiamo ripristinare lo stato della VM con il comando:
qm rollback 103 "before_upgrade"
Qualsiasi modifica apportata dalla cattura dell’istantanea è scartata (annullata).
Clonazione di una macchina virtuale
qm clone <vmid> <newid> [--name <newname>] [--full]
Il comando qm clone
clona una VM esistente per crearne una nuova 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.
Ridimensionamento del 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 CLI di Proxmox aumenta la dimensione del disco scsi0 sulla VM con ID 103 di 10GB.
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 di Proxmox offre opzioni intuitive per configurare le regole del firewall e consente agli amministratori di controllare il traffico di rete verso e da 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 nell’intero 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.
Controllare lo stato
Verifica dello stato del servizio firewall di Proxmox VE:
pve-firewall status
L’output mostra se il firewall è in esecuzione o meno sul nodo attuale.
Avviare il firewall
Avviando il servizio firewall sul nodo Proxmox attuale:
pve-firewall start
Ricarica del firewall
Ricaricando il servizio firewall e applicando le modifiche alla configurazione del firewall senza la necessità di fermare e avviare il servizio firewall.
pve-firewall reload
Accettare il traffico SSH
Creazione di 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 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.
Negare 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 comando pvesm
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 vari compiti relativi allo storage, come creare directory, aggiungere dispositivi di storage e gestire i tipi di contenuto.
Sintassi:
pvesm <comando> [opzioni]
Elenca storage
pvesm list <storage>
Dove <storage> è il nome del pool di storage (datastore) da elencare.
Controllare lo stato di tutti o specifici pool di storage
pvesm status
L’output mostra lo stato del pool di archiviazione, comprese informazioni sul fatto che sia 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 l’ID univoco 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 nuova archiviazione, l’archiviazione già esistente viene aggiunta alla configurazione di Proxmox per renderla 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 archiviazione esistente
pvesm set <storage-id> --options
Esempio:
Modificare il pool local-storage01 per consentire di archiviare immagini VM, file ISO e file di backup:
pvesm set local-storage01 --content images,iso,backup
Allocare un nuovo volume su un pool di archiviazione specificato per una VM o un container
pvesm alloc <storage-id> <vmid> <size>
Esempio:
Il comando per allocare un volume da 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 diversi utenti per gestire Proxmox VE. Questo può essere fatto con comandi 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 definisce chi può avere accesso e chi è autorizzato ad agire sulle diverse parti dell’infrastruttura di Proxmox. Gli amministratori possono assegnare autorizzazioni per accedere a oggetti come macchine virtuali, archiviazione, 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.
––comment <comment> è un commento o descrizione facoltativa per l’utente.
––groups <group> è il gruppo (o 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 di nome user2 al gruppo admin con una descrizione e impostando la password per questo utente.
Eliminare un utente
Per eliminare un utente, utilizzare il comando pveum
con la stessa logica per l’aggiunta di un utente, ad esempio:
pveum userdel user3@pve
Questo comando viene utilizzato per eliminare user3 su un host Proxmox.
Creare 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 “Gruppo del Team di Supporto”.
Eliminare un gruppo
Similmente all’eliminazione di un utente, è possibile eliminare un gruppo. Ad esempio, per eliminare un gruppo guests, è possibile utilizzare il comando:
pveum groupdel ospiti
Aggiunta di ruoli
I ruoli vengono utilizzati per definire un insieme di autorizzazioni per gli utenti e i gruppi a cui viene assegnato questo ruolo.
Sintassi:
pveum roleadd <nomeruolo> --privs <autorizzazioni>
Dove:
<nomeruolo> è il nome del ruolo da creare.
––privs <autorizzazioni> è un elenco separato da virgole di autorizzazioni da assegnare al ruolo (ad esempio, VM.PowerMgmt,VM.Config.Disk).
Esempio:
pveum roleadd gestorevm --privs VM.PowerMgmt,VM.Config.CDROM
Questo comando crea un ruolo chiamato gestorevm con autorizzazioni per gestire le impostazioni di accensione della 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 autorizzazioni).
Sintassi:
pveum rolemod <nomeruolo> --privs <autorizzazioni>
Esempio:
pveum rolemod gestorevm --privs +VM.Config.Network
Questo comando aggiunge l’autorizzazione VM.Config.Network al ruolo gestorevm.
Modifica dell’ACL
Gli amministratori di Proxmox possono modificare le Liste di Controllo degli Accessi (ACL) assegnando ruoli a utenti o gruppi su oggetti specifici di Proxmox.
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.
––groups <groupname> è il gruppo a cui viene 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 nel ruolo vmmanager. Il comando aclremove
viene utilizzato per rimuovere le ACL dagli oggetti di conseguenza.
Gestione del reame di autenticazione
Un reame di autenticazione definisce come gli utenti si autenticano con il sistema (ad esempio, utilizzando PAM, LDAP o Active Directory). È possibile gestire i reami di autenticazione con il comando realm
in Proxmox VE.
Sintassi:
pveum realm <command> [options]
Dove il comando può essere:
list per elencare tutti i reami disponibili
add per aggiungere un nuovo reame
modify per modificare un reame esistente
rimuovere per rimuovere un reame esistente
Ad esempio, per elencare tutti i reami 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 <comando> <userid> [opzioni]
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 vedere più 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 a riga di comando consente di eseguire quasi tutte le azioni che possono essere effettuate 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, reti e altri elementi dell’infrastruttura virtuale di Proxmox.
Sintassi:
pvesh <comando> [opzioni]
Elenco delle risorse o dei punti finali dell’API
Questo comando è simile al comando ls in Linux, ma elenca i percorsi o le risorse API disponibili nell’ambiente Proxmox VE.
pvesh ls /path
Esempio:
pvesh ls /cluster/resources
Questo comando elenca tutte le risorse nel cluster Proxmox, comprese VM, contenitori e storage.
Recupero 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 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. 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 ti consente di creare una nuova risorsa, come ad esempio una nuova VM o un volume di archiviazione.
Sintassi:
pvesh create /percorso --chiave valore [--chiave valore ...]
Ad esempio, puoi creare una nuova VM con parametri specifici con il comando:
pvesh create /nodi/pve-node1/qemu --vmid 106 --nome nuovo-nome-vm --memoria 2048 --core 2
Questo comando crea una nuova VM con ID 106 sul nodo pve-node1, con il nome nuovo-nome-vm, 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 /percorso
Ad esempio, per avviare la VM con ID 101 sul nodo pve-node1, è possibile eseguire il comando:
pvesh start /nodi/pve-node1/qemu/101
Arresto della VM
A differenza del comando stop, il comando shutdown spegne una VM o un contenitore in modo corretto:
pvesh shutdown /percorso
Ad esempio, per spegnere una VM con ID 101 su un host Proxmox, il cui nome è pve-node1, utilizzare il comando:
pvesh shutdown /nodi/pve-node1/qemu/101
Avvio di tutte le VM
Per avviare o arrestare tutte le VM su un nodo o sull’intero cluster, è possibile utilizzare il comando corrispondente:
pvesh startall /nodi/<nomenodo>
pvesh stopall /nodi/<nomenodo>
6. pvecm
Il comando pvecm
è uno strumento per la gestione dei cluster Proxmox che viene 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, storage condiviso, ecc.
Sintassi:
pvecm <comando> [opzioni]
Per vedere tutti i comandi supportati da pvecm
, 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
Eliminazione di 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 visualizzarne lo stato, comprese le 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, comprese 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 . Potresti aver bisogno di utilizzare questo comando quando alcuni nodi del cluster sono temporaneamente offline per evitare interruzioni. Il quorum è utilizzato per evitare situazioni di split-brain quando diversi nodi del cluster hanno informazioni conflittuali sullo stato del cluster.
pvecm expected <number>
7. hamanager
Il comando hamanager
è utilizzato per gestire la funzionalità di Alta Disponibilità (HA) per le macchine virtuali dopo aver creato un cluster Proxmox. Questo strumento da riga di comando consente di configurare l’Alta Disponibilità per le VM critiche e impostare come riavviarle in un cluster se il nodo su cui stanno funzionando fallisce. Lo strumento hamanager nella CLI di Proxmox interagisce con il Proxmox High Availability Manager.
Sintassi:
ha-manager <command> [options]
Visualizzare lo stato
Per visualizzare lo stato attuale delle risorse HA puoi utilizzare il comando:
ha-manager status
L’output visualizza informazioni su quali VM o CT sono configurati per HA, il loro stato attuale (avviato, fermo), incluso 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 <groupname> --max-restarts <n> --max-migrate-tries <n>
Dove:
<vmid> è l’ID della VM o CT che desideri aggiungere a HA.
––group <groupname> è il gruppo HA a cui la risorsa deve 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 fallimento:
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
Una volta eseguito il comando, la VM non sarà più gestita come una risorsa altamente disponibile.
Migrazione della VM
Puoi 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 a 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 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 contenitore che desideri eseguire il backup.
––mode <mode> definisce la modalità di backup. Ci sono tre modalità di backup supportate:
- snapshot – prende un’istantanea live di una macchina virtuale o container Proxmox. Questa modalità è utilizzata per impostazione predefinita e consente di eseguire un backup quando una VM o un container è in esecuzione.
- suspend – questa modalità viene utilizzata per sospendere la VM o il container prima del backup, il che consente di garantire che i dati siano coerenti. Un breve downtime causato da questa modalità è uno svantaggio.
- stop – ferma la macchina virtuale o il container prima di eseguire il backup. Questo approccio consente di preservare la coerenza dei dati di backup, ma richiede un downtime più lungo.
––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 il target 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.
––rimuovere <mode> rimuove automaticamente i file di backup secondo il modo specificato. I modi includono:
- vecchio – rimuove i backup vecchi quando ne vengono creati di nuovi.
- errore – rimuove solo i backup falliti.
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 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 crittografato con compressione gzip potrebbe richiedere più tempo, ma si finisce con 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.
Rimuovere i backup vecchi
vzdump 101 --storage nfs-backup --maxfiles 5 --remove old
Questo è un backup automatico con la rimozione dei vecchi backup. Esegue il backup della VM 101, memorizza il backup nello storage nfs-backup e mantiene 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 container utilizzando la modalità di backup snapshot. I backup vengono salvati in una condivisione NFS chiamata nfs-backup. La larghezza di banda è limitata a 20480 Kbytes al secondo (20 MBps) per prevenire sovraccarichi di 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 da 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 si desidera ripristinare. Questo file è tipicamente generato dal comando vzdump
e memorizzato in una directory o su un dispositivo di archiviazione 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 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. È possibile 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, unico ID VM per una VM ripristinata. Considera l’utilizzo di questa opzione per ripristinare un backup creando una nuova VM senza sovrascrivere altre VM esistenti.
––storage <storage> specifica la posizione di archiviazione di destinazione per le immagini del disco virtuale della VM ripristinata. Se questa opzione non viene specificata, la VM verrà ripristinata nella sua posizione di archiviazione originale o in quella predefinita.
––pool <pool> ti consente di assegnare la VM ripristinata a un pool di risorse specifico nell’ambiente virtuale di Proxmox. I pool di risorse sono utilizzati per raggruppare le macchine virtuali per una gestione più semplice.
––hostname <name> imposta l’hostname della VM ripristinata. Questa opzione è utile se desideri impostare un hostname diverso per la VM ripristinata rispetto all’hostname originale.
––name <name> imposta un nome personalizzato per la VM ripristinata (un nome visualizzato nell’interfaccia utente di Proxmox), diverso dal nome originale della VM che è stato eseguito il backup.
Ripristino 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 una VM con ID 101 esiste già, verrà sovrascritta.
Recupera il backup su una nuova VM
Ripristinendo il 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 nello storage local-lvm.
Recupera e cambia hostname e nome della VM
Ripristinando il backup e cambiando 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 su una nuova VM con ID 103, rinominando la VM in MyRestoredVM e impostando 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 <archive-name> <path> --repository <repository> [options]
Dove:
<archive-name> è il nome che vuoi dare all’archivio di backup.
<path> definisce il percorso della directory o del file che desideri salvare.
––repository <repository> è il repository di destinazione sul server di backup Proxmox, tipicamente nella forma utente@pbs:datastore
Esempio:
proxmox-backup-client backup etc.pxar /etc --repository root@[email protected]:datastore1
Questo comando salva la directory /etc nel datastore1 sul server di backup Proxmox situato a 10.10.10.101. Il backup è memorizzato con il nome di archivio etc.pxar.
Sintassi di base del comando di ripristino
Il comando di ripristino per gli strumenti a riga di comando proxmox-backup-client
viene utilizzato per ripristinare i dati da un server di backup Proxmox al sistema locale.
proxmox-backup-client restore <archive-name> <path> --repository <repository> [options]
Dove:
<archive-name> è il nome dell’archivio che desideri ripristinare.
<path> è il percorso in cui i dati dovrebbero essere ripristinati.
––repository <repository> è il repository in cui il backup è memorizzato.
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 insieme potente di strumenti per gestire l’ambiente virtuale Proxmox, inclusi storage, macchine virtuali, cluster, backup delle VM, ecc. Se desideri implementare una strategia di backup delle VM completa, installa NAKIVO Backup & Replication e utilizza la funzionalità di backup senza agente per le VM di Proxmox VE.
Source:
https://www.nakivo.com/blog/top-10-proxmox-cli-commands/