Kontrolowanie stanu maszyny wirtualnej Proxmox narzędziem qm
Aby kontrolować maszyny wirtualne Proxmox (VM) z wiersza poleceń, możesz użyć narzędzia wiersza poleceń qm. To narzędzie pozwala zarządzać różnymi aspektami maszyn wirtualnych Proxmox, takimi jak uruchamianie, zatrzymywanie, tworzenie, usuwanie i modyfikowanie maszyn wirtualnych. Oto kilka często używanych poleceń:
# lista dostepnych maszyn wirtualnych
qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
121 pbs running 2048 16.00 3115935
122 remote running 1024 16.00 2412203
123 nut running 1024 8.00 1996103
124 unifi running 2048 32.00 1996612
125 win11 running 8192 96.00 1997617
126 crc running 32768 256.00 2001487
127 icinga running 2048 8.00 2006172
128 omv running 1024 8.00 745620
129 nextcloud running 2048 16.00 2007167
130 docker running 4096 8.00 2014542
131 zoneminder running 8192 16.00 2016206
132 kibana running 8192 32.00 2017277
137 webserver running 4096 8.00 2019291
200 centos7 running 1024 16.00 2020023
# zatrzymanie i uchomienie maszyny wirtualnej
qm stop 122
qm start 122
qm shudtown 122
# ubicie procesu zawieszonej maszyny id=122, która nie chce się w żaden sposób wyłączyć
ps aux | grep "/usr/bin/kvm -id 122"| grep -v grep | awk '{print $2}'|xargs kill -9
# restart maszyny wirtualnej
qm reboot 122
# uśpienie i wybudzenie maszyny wirtualnej
qm suspend 122
qm resume 122
# usunięcie maszny wirtualnej
qm destroy 122
# sklonowanie maszny wirtualnej
qm clone <SOURCE_VMID> <NEW_VMID> --name <NEW_VM_NAME>
qm clone 122 222 --name remotenew
Instalacja i uruchomienie qm-tools
Agent gościa QEMU to demon przeznaczony do uruchamiania na maszynach wirtualnych. Pozwala hostowi hiperwizora na wykonywanie różnych operacji w gościu, takich jak uzyskać informacje od gościa, ustaw czas systemowy gościa, czytać/zapisywać pliki, synchronizować i zamrażać systemy plików, zawiesić gościa, ponownie skonfigurować lokalne zasoby gościa, ustawić hasło użytkownika.
# z konsoli maszyny wirtualnej sudo apt-get install qemu-guest-agent sudo systemctl start qemu-guest-agent # z konsoli serwera Proxmox, gdzie 122 to id maszyny wirtualnej qm agent 122 ping
Dla Windows VirtIO i qemu-guest-agent są dostepne na stronie Windows VirtIO Drivers – Proxmox VE pod linkiem https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Uruchomienie polecenia wewnątrz maszyny wirtualnej z poziomu konsoli serwera Proxmox
# uruchomienie polecenie df -h na maszynie o id = 122
qm guest exec 122 /usr/bin/df -- "-h"
{
"exitcode" : 0,
"exited" : 1,
"out-data" : "Filesystem Size Used Avail Use% Mounted on\ntmpfs 98M 1.2M 96M 2% /run\n/dev/sda2 16G 5.5G 9.4G 37% /\ntmpfs 486M 0 486M 0% /dev/shm\ntmpfs 5.0M 0 5.0M 0% /run/lock\ntmpfs 98M 4.0K 98M 1% /run/user/1000\n"
}
Przykładowy skrypt Bash do uruchamiania w pętli qm guest exec na wszystkich dostępnych maszynach wirtualnych Skrypt Bash – qm_get_osinfo.sh – IT Admin (vblog.ovh)
Utworzenie maszyny wirtualnej Proxmox narzędziem qm
# poniższe polecenie utworzy maszynę wirtualną o nazwie remote i id = 122 z systemem operacyjnym Debian 11 z łącznie 4 rdzeniami oraz 4 GB pamięci RAM qm create 122 --cdrom isostore-01:iso/debian-live-11.7.0-amd64-standard.iso \ --name remote --numa 0 --ostype l26 \ --cpu cputype=host --cores 2 --sockets 2 \ --memory 4096 --machine q35 --agent enabled=1 \ --net0 bridge=vmbr0,virtio \ --bootdisk virtio0 --virtio0 file=datastore-01:16,format=qcow2
Edycja ustawień maszyny wirtualnej Proxmox przy użyciu narzędzia qm
# wyświetlenie bieżącej konfiguracji maszyny wirtualnej qm config 122 agent: 1 boot: order=scsi0;ide2;net0 cores: 1 cpu: host description: Linux ide2: none,media=cdrom machine: q35 memory: 1024 meta: creation-qemu=6.1.0,ctime=1638101057 name: remote net0: virtio=C6:CD:DB:51:CB:6D,bridge=vmbr0,firewall=1 numa: 1 ostype: l26 scsi0: datastore-01:122/vm-122-disk-0.qcow2,cache=writeback,discard=on,iothread=1,size=16G scsihw: virtio-scsi-single smbios1: uuid=45f00035-0e57-416f-9c9a-21331e598486 sockets: 2 startup: order=1 tablet: 0 tags: ubuntu_22.04 vmgenid: aba62502-3d3b-4fb1-8f97-e96d89e76c4c # nowa nazwa qm set 122 --name newname # nowa ilość pamięci dla maszyny wirtualnej qm set 122 --memory 4096 # nowa ilość CPU dla maszyny wirtualnej qm set 122 --cores 2 --sockets 1 # nowy startup order dla maszyny wirtualnej qm set 122 --onboot 2 # nowy opis dla maszyny wirtualnej qm set 122 --description "Zdalny dostęp" # nowe tagi opisujące maszynę wirtualną qm set 122 --tags ubuntu_22.04
Backup maszyny wirtualnej Proxmox
Więcej informacji o narzędziu vzdump do backupu maszyny wirtualnych znajdziesz tutaj Proxmox VE – backup maszyn wirtualnych – IT Admin (vblog.ovh)
Sprawdzenie stanu subskrypcji Proxmox narzędziem pvesubscription
pvesubscription get message: There is no subscription key serverid: FD8F0331783F2BD628C934BE5014BB08 status: notfound url: https://www.proxmox.com/proxmox-ve/pricing
Sprawdzenie wydajności systemu na którym jest Proxmox narzędziem pveperf
pveperf CPU BOGOMIPS: 38399.04 REGEX/SECOND: 3811363 HD SIZE: 14.56 GB (/dev/nvme0n1p1) BUFFERED READS: 2724.41 MB/sec AVERAGE SEEK TIME: 0.04 ms FSYNCS/SECOND: 2403.41 DNS EXT: 40.59 ms DNS INT: 6.19 ms (netapps.local)
Sprawdzenie wersji pakietów Proxmox
pveversion -v proxmox-ve: 7.4-1 (running kernel: 6.2.11-2-pve) pve-manager: 7.4-3 (running version: 7.4-3/9002ab8a) pve-kernel-6.2: 7.4-3 pve-kernel-5.15: 7.4-3 pve-kernel-6.2.11-2-pve: 6.2.11-2 pve-kernel-5.15.107-2-pve: 5.15.107-2 ceph-fuse: 14.2.21-1 corosync: 3.1.7-pve1 criu: 3.15-1+pve-1 glusterfs-client: 9.2-1 ifupdown: residual config ifupdown2: 3.1.0-1+pmx4 ksmtuned: 4.20150326 libjs-extjs: 7.0.0-1 libknet1: 1.24-pve2 libproxmox-acme-perl: 1.4.4 libproxmox-backup-qemu0: 1.3.1-1 libproxmox-rs-perl: 0.2.1 libpve-access-control: 7.4-3 libpve-apiclient-perl: 3.2-1 libpve-common-perl: 7.4-1 libpve-guest-common-perl: 4.2-4 libpve-http-server-perl: 4.2-3 libpve-rs-perl: 0.7.6 libpve-storage-perl: 7.4-2 libspice-server1: 0.14.3-2.1 lvm2: 2.03.11-2.1 lxc-pve: 5.0.2-2 lxcfs: 5.0.3-pve1 novnc-pve: 1.4.0-1 proxmox-backup-client: 2.4.2-1 proxmox-backup-file-restore: 2.4.2-1 proxmox-kernel-helper: 7.4-1 proxmox-mail-forward: 0.1.1-1 proxmox-mini-journalreader: 1.3-1 proxmox-offline-mirror-helper: 0.5.1-1 proxmox-widget-toolkit: 3.7.0 pve-cluster: 7.3-3 pve-container: 4.4-3 pve-docs: 7.4-2 pve-edk2-firmware: 3.20230228-2 pve-firewall: 4.3-2 pve-firmware: 3.6-5 pve-ha-manager: 3.6.1 pve-i18n: 2.12-1 pve-qemu-kvm: 7.2.0-8 pve-xtermjs: 4.16.0-1 qemu-server: 7.4-3 smartmontools: 7.2-pve3 spiceterm: 3.2-2 swtpm: 0.8.0~bpo11+3 vncterm: 1.7-1 zfsutils-linux: 2.1.11-pve1
Podgląd zawartości okna Task konsoli GUI na konsoli serwera narzędziem pvesh
pvesh get /cluster/tasks --output-format json-pretty
[
{
"endtime" : 1685366397,
"id" : "199",
"node" : "pve",
"saved" : "1",
"starttime" : 1685366397,
"status" : "OK",
"type" : "qmdestroy",
"upid" : "UPID:pve:002738D3:04BE6449:6474A67D:qmdestroy:199:root@pam:",
"user" : "root@pam"
},
...
Inne przydatne polecenia w administracji Proxmox
# suma przydzielonej pamięci RAM do maszyn i kontenerów
grep -R memory /etc/pve/local | awk '{sum += $NF } END {print sum;}'
80384
# lista wszystkich maszyny i kontenerów z polami id typ nazwa
for i in $(cat /etc/pve/.vmlist | grep node | cut -d '"' -f2 | sort -n);do NAME=$(grep -R 'name:' /etc/pve/nodes/*/*/$i.conf | awk {'print $2'}); INFO=$(grep $i /etc/pve/.vmlist | grep node | tr -d '":,'| awk '{print $1"\t"$4"\t"$6 }'); printf "%s\t%s\n" "$INFO" "$NAME" ;done
121 pve qemu pbs
122 pve qemu remote
123 pve qemu nut
124 pve qemu unifi
125 pve qemu win11
126 pve qemu crc
127 pve qemu icinga
128 pve qemu omv
129 pve qemu nextcloud
130 pve qemu docker
131 pve qemu zoneminder
132 pve qemu kibana
135 pve lxc debianlxc
136 pve lxc certbot
137 pve qemu webserver
200 pve qemu centos7
Zarządzanie storage Proxmox z linii komend
# sprawdzanie dostępnych udziałów NFS na serwerze 192.168.10.28 pvesm nfsscan 192.168.10.28 /export 192.168.10.0/24,192.168.8.0/24 /export/backup_cfg 192.168.10.0/24,192.168.8.0/24 /export/backup_pbs 192.168.10.0/24,192.168.8.0/24 /export/backup_vmx 192.168.10.0/24,192.168.8.20 /export/docker_data 192.168.10.30 /export/iso_templates 192.168.10.0/24,192.168.8.0/24 /export/video_cameras 192.168.10.31 # przykładowe zamontowanie udziału NFS pvesm add nfs isostore-01 --path /mnt/pve/isostore-01 --server 192.168.10.28 --options vers=4,nolock,tcp --export /export/iso_templates --content iso,vztmpl pvesm add nfs backupstore-03 --path /mnt/pve/backupstore-03 --server 192.168.10.28 --options vers=4,nolock,tcp --export /export/backup_vmx --content backup # wyświetlenie zawartości wybranego STORAGE pvesm list isostore-01 Volid Format Type Size VMID isostore-01:iso/CentOS-7-x86_64-Minimal-2207-02.iso iso iso 1035993088 isostore-01:iso/CentOS-Stream-8-x86_64-20220506-boot.iso iso iso 898629632 isostore-01:iso/CentOS-Stream-9-latest-x86_64-dvd1.iso iso iso 8392802304 isostore-01:iso/debian-live-11.7.0-amd64-standard.iso iso iso 1246003200 isostore-01:iso/Fedora-Workstation-Live-x86_64-38-1.6.iso iso iso 2099451904 isostore-01:iso/HBCD_PE_x64.iso ... #usunięcie STORAGE pvesm remove isostore-01

