==================================================================================== === Работа с qemu в cli: ==================================================================================== # == Запустить vm == qm start $VM_ID == Автозапуск для vm == qm set $VM_ID --autostart == Задать hostname для vm == qm guest exec $VM_ID hostname test-vm1 == Получить description vm == ID=$(qm list | grep redmine | awk '{print $1}') qm config $VM_ID | grep "name" == Получить ip vm == qm guest cmd $VM_ID network-get-interfaces | grep '"ip-address" :' | grep 192 | awk '{print $3}' | sed -s "s/\"//g" | sed -s "s/,//g" == Клонировать vm (с ресканом) == qm clone $ETHALON_ID $VM_ID --name "$VM_NAME" --description "$VM_NAME-description" --full --storage "$STORAGE_NAME" cd /mnt/pve2/var/lib/vz/images/$VM_ID rm /mnt/pve2/var/lib/vz/images/$SOME_ID.qcow2 scp /media/storage/images/$VM_NAME root@192.168.0.1:/mnt/pve2/var/lib/vz/images/$VM_ID qm rescan --vmid $VM_ID ==================================================================================== === Подключение к гипервизору через VirtManager требует сертификаты безопасности: ==================================================================================== == https://wiki.libvirt.org/page/TLSCreateServerCerts == # certtool --generate-self-signed --template certinfo --load-privkey certificate_authority_key.pem --outfile certificate_authority_certificate.pem certtool --generate-certificate --template certinfo --load-privkey host1_server_key.pem --load-ca-certificate /etc/pki/CA/cacert.pem --load-ca-privkey /etc/pki/libvirt/private/serverkey.pem --outfile host1_server_certificate.pem certtool --generate-certificate --template admin_desktop_client_template.info --load-privkey admin_desktop_client_key.pem --load-ca-certificate /etc/pki/CA/cacert.pem --load-ca-privkey /etc/pki/libvirt/private/serverkey.pem --outfile admin_desktop_client_certificate.pem ==================================================================================== === Клонировать VM: ==================================================================================== # virt-clone --original original-VM --name VM-clone --file /home/images/VM-clone.qcow2 ==================================================================================== === Узнать IP новой VM (не работает, естественно, до первого пинга): ==================================================================================== # virsh domiflist openaudit | sudo arp -e | grep 52:54:00:e5:77:3e virsh domiflist openaudit | sudo arp -e ==================================================================================== === Создать мост внутри KVM: ==================================================================================== # brctl addif br0 eth0 ifconfig br0 192.168.0.2/24 ip route add default via 192.168.0.1 dev br == br0 – новый bridge; == == 192.168.0.1 – IP шлюза; == == 192.168.0.2 – IP KVM == ==================================================================================== === Перезапускать libvirtd можно без ущерба работающим VM. === ==================================================================================== ==================================================================================== === Чтобы можно было подключаться к виртуалкам через virt-manager при подключении к гипервизору через qemu+tls, нужно добавить следующее (можно оставить прослушивание всех интерфейсов, если используются сертификаты для доступа с конкретных машин. После внесения изменений в qemu.conf работающие виртуальные машины нужно перезагрузить): ==================================================================================== # vi /etc/libvirt/qemu.conf vnc_listen = "some_ip" ==================================================================================== === Изменить размер RAM: ==================================================================================== # virsh setmem VMname --size 500mb --live ==================================================================================== === Просмотр Max memory: ==================================================================================== # virsh dominfo VmName | grep "Max memory" | awk '{print $3/1024 " " "Mb"}' ==================================================================================== === Просмотр Used memory: ==================================================================================== # virsh dominfo VmName | grep "Used memory" | awk '{print $3/1024 " " "Mb"}' ==================================================================================== === Просмотр количества выделенного для VM пространства: ==================================================================================== # virsh domstats VmName | grep "block.0.capacity" | sed 's/^.*\=//' | awk '{print $1/1073741824, "Gb"}' ==================================================================================== === Просмотр количества реально занимаемого VM пространства: ==================================================================================== # virsh domstats VmName | grep "block.0.physical" | sed 's/^.*\=//' | awk '{print $1/1073741824, "Gb"}' ==================================================================================== === Увеличить размер диска VM: ==================================================================================== # qemu-img create -f qcow2 -o preallocation=metadata newdisk.qcow2 15G virt-resize --expand /dev/sda2 olddisk newdisk.qcow2 ==================================================================================== === Сжать qcow2-файл, если имеется незанятое место в VM: ==================================================================================== # virt-sparsify -v vm_orig.qcow2 vm_compressed.qcow2 ==================================================================================== === Установить ОС из iso: ==================================================================================== # virt-install --connect qemu:///system --virt-type kvm --os-type linux --name test-vm --ram 2048 --disk path=/home/images/test-vm.qcow2,format=qcow2,size=30 --network bridge=br0 --vcpus 1 --graphics vnc --noautoconsole --autostart --cdrom /var/lib/libvirt/images/debian.iso ==================================================================================== === Установить ОС, стащив образ из интернета и подключить pty: ==================================================================================== # virt-install --connect qemu:///system --name test-vm --ram 1024 --disk path=/home/images/test-vm.qcow2,size=10 --vcpus 1 --os-type linux --network bridge=br0 --graphics none --console pty,target_type=serial --location 'http://ftp.jaist.ac.jp/pub/Linux/debian/dists/stretch/main/installer-amd64/' --extra-args 'console=ttyS0,115200n8 serial' ==================================================================================== === Установить ОС из pxe: ==================================================================================== # virt-install --connect=qemu://kvm-server1/system --network bridge=br0 --name test-vm --pxe --graphics vnc --ram=756 --vcpus 2 --os-type=linux --disk path=/home/images/test-vm.qcow2,size=8 ==================================================================================== === Склонировать существующую VM: ==================================================================================== # virt-clone --original $ORIGINAL_VM_NAME --name test-vm --file /home/images/test-vm.qcow2 && virt-customize --hostname test-vm -a /home/images/test-vm.qcow2 && virsh start test-vm