
подборка по виртуализации и облакам
ознакомиться
oVirt
https://resources.ovirt.org/pub/
https://www.ovirt.org/node/
https://ovirt.org/documentation/install-guide/chap-Installing_oVirt.html
http://www.tadviser.ru/index.php/Продукт:Red_Hat_Virtualization_(RHV)
oVirt
https://ivirt-it.ru/ovirt-tutorial/
Установка и настройка виртуального дата-центра oVirt на хост с CentOS 7.1
Установка и базовая настройка oVirt 3.6 на CentOS 7 x64
Развёртывание и настройка oVirt 4.0. Часть 1. Создание кластера виртуализации в конфигурации Hosted Engine
Развёртывание и настройка oVirt 4.0. Часть 12. Резервное копирование виртуальных машин
https://github.com/wefixit-AT/oVirtBackup
Proxmox
Proxmox. Полное руководство. 3е изд.
Proxmox. Полное руководство. 2е изд.
Книга рецептов Proxmox
Полная виртуализация. Базовая коммерческая редакция: Proxmox-freeNAS-Zentyal-pfSense
Мой первый опыт использования Proxmox VE
Установка Proxmox в Debian на raid 1
------------------------------------------------------------------------
https://www.youtube.com/watch?v=Z1kdfNF_gSw
https://www.youtube.com/watch?v=_PjdHkUscPM
https://www.youtube.com/watch?v=mXtvzsiDVrw
------------------------------------------------------------------------
https://ayufan.eu/projects/proxmox-ve-differential-backups/
https://www.proxmox.com/en/training/video-tutorials/item/what-s-new-in-proxmox-ve-5-3
Proxmox, Ceph, ZFS, pfsense (большая подборка)
Кластеризация в Proxmox VE
Как из домашнего ПК средствами виртуализации сохранить игровую систему
Миграция физических и виртуальных машин hyper-v на Proxmox
https://xcp-ng.org/
https://github.com/xcp-ng
https://updates.xcp-ng.org/isos/
https://www.virt-tools.org/
https://cockpit-project.org/running.html
https://wiki.debian.org/ru/KVM
https://www.altlinux.org/KVM
https://wiki.archlinux.org/title/QEMU
https://wiki.gentoo.org/wiki/QEMU/Linux_guest
https://github.com/google/crosvm
Книга рецептов виртуализации KVM
Глава 6. Виртуальные машины KVM
Перестаем бояться виртуализации при помощи KVM
Qemu-KVM: работа в Debian
Howto Qemu-kvm Debian 8
QEMU/KVM и установка Windows
https://help.ubuntu.com/community/KVM/Networking
QEMU/KVM и установка Windows
Работа с виртуальными машинами KVM. Подготовка хост-машины
Установка виртуальной машины Qemu-KVM на домашний ПК с Linux
как запустить виртуальную машину riscv64 под QEMU
Управление виртуализацией на основе libvirt
Установка и настройка Windows Hyper-V Server 2016
Клонирование виртуального контролера домена в Windows Server 2012
OEM-активация Windows Vista/7/8/8.1 под гипервизором QEMU
MacOS Monterey на Linux — быстро и просто?
https://github.com/kholia/OSX-KVM
Используем KVM для создания виртуальных машин на сервере
Настройка сети Ubuntu Linux для работы с системой виртуализации KVM/QEMU
Bridged Host-VM Network
How to configure bridged network in virt-manager (CentOS / RHEL 7)
https://www.tecmint.com/create-network-bridge-in-ubuntu/
Bridged Networking with Virtual Machine Manager
Создаем изолированную сеть для виртуальных машин KVM
Работа с KVM в Debian или Ubuntu из командной строки
Как установить KVM в Fedora 39/38/37/36/35/34
Create and Configure Bridge Networking For KVM in Linux
Создание и использование сетевого моста в Arch Linux|Manjaro
Шпаргалка по командам Virsh для управления гостевыми виртуальными машинами KVM
Увеличение диска в файле виртуальной машине на KVM с ext4
Как открыть диски виртуальных машин и скачивать и закачивать на них файлы (РЕШЕНО)
Работаем с образами дисков KVM с помощью NBD
Как монтировать образы QCOW как блочные устройства Linux
Блочные устройства QEMU
https://qemu-project.gitlab.io/qemu/system/images.html
QEMU KVM - Настройка узла виртуализации на базе libvirt
Виртуализация KVM с помощью libvirt/virsh и Open vSwitch
Управление виртуальными машинами с помощью virsh
------------------------------------------------------------------------
https://looking-glass.hostfission.com/
Подключение и отключение USB устройств к виртуальной машине KVM
Разворачиваем виртуалку с Windows с пробросом виртуальной видеокарты с помощью QEMU и Intel GVT-g
PCI passthrough via OVMF (проброс произвольной видеокарты)
Patch Qemu and Fix VM Audio
Why does the audio from VM crackle?
------------------------------------------------------------------------
Сжать файлы диска Qcow2
QEMU, KVM и обрезка
Better Utilization of Storage Features from KVM Guest via virtio-scsi
Отменить (TRIM) с помощью виртуальных машин KVM
Откажитесь от (TRIM) с помощью виртуальных машин KVM... в 2020 году! (актуальный с qemu > 4.0)
Активация discard (TRIM) на Linux для SSD
------------------------------------------------------------------------
Автоматизация системных тестов на базе QEMU (Часть 1/2)
Spicy
https://www.spice-space.org/
Виртуализация QEMU/KVM в Astra Linux
Выводим в Интернет публичную виртуальную машину QEMU без сетевой карты и пробуем майнить
https://github.com/flexvdi
apt install spice-client-gtk
Проверить статус ВМ:
virsh -c qemu:///system list --all
Проверить параметры подключения к ВМ
virsh -c qemu:///system domdisplay vm1
Подключиться к виртуальному монитору ВМ
spicy -h 127.0.0.1 -p 5900
проблемы звука
QEMU_ALSA_DAC_BUFFER_SIZE=2048 Для разных карт разный размер буфера. поэксперементируйте и выберите оптимальный.
https://www.opennet.ru/openforum/vsluhforumID3/120480.html#52
чтобы не было треска, при выводе в конфигурации звука 5.1, работает такой вариант:
-device usb-audio,audiodev=usb,multi=on
-audiodev pa,id=usb,server=/run/user/1000/pulse/native,out.mixing-engine=off,out.buffer-length=4608000,timer-period=2000,out.voices=2
И нет, если просто скопипастить, 80% что сразу не заработает. Т.к. надо подогнать как минимум out.buffer-length, и timer-period под свой случай. И UID пользователя может быть не 1000.
Подробности тут: https://qemu.weilnetz.de/doc/qemu-doc.html#Standard-options
И тут: https://wiki.archlinux.org/index.php/PulseAudio_(Русский)/Troubleshooting_(Русский)#Глюки,_пропуски_или_потрескивания (Откуда брать про буфер подробности - обратить внимание на device.buffering.buffer_size из вывода pactl.)
pactl list sinks
device.buffering.buffer_size
Этими же параметрами и не только usb а и старый hda-micro тоже приводится в чувство, но там такой здоровый буфер как в этой строчке не нужен - т.к. только стерео.
http://itman.in/kvm-hypervisor/
------------------------------------------------------------------------
KVM & BRCTL in Linux – bringing VLANs to the guests
Bridging VLAN Trunk to the Guest
CentOS virtual networking, virbr and vlan tagging
VLAN tagging on Linux for KVM
Создание VLAN на KVM-I
Networking KVM for CloudStack – a 2018 revisit for CentOS7 and Ubuntu 18.04
Transparent VLAN Tagging with libvirt and Open vSwitch
------------------------------------------------------------------------
uzverss первый запуск OpenWRT на QEMU
Запуск приложения в отдельных виртуальных машинах с помощью AppVM
https://github.com/jollheef/appvm
http://manpages.ubuntu.com/manpages/bionic/man1/virt-p2v.1.html
P2V конвертация физического контроллера домена на базе Windows Server 2012 R2 в виртуальную машину Hyper-V Generation 2
Как преобразовать физический сервер в виртуальную машину Virtuozzo
Хост KVM в паре строчек кода
Реализации машины в qemu
/etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.
/etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.
Управление виртуальными машинами KVM из консоли
# virsh list – показать список запущенных ВМ
# virsh list --all – показать список всех машин (в том числе выключенных)
# virsh shutdown
# virsh start
# virsh suspend
# virsh resume
# virsh reboot
# virsh destroy
# virsh undefine
# virsh vcpuinfo
# virsh domid
# virsh domuuid
# virsh dominfo
# virsh domstate
# virsh dumpxml
рецепты
Особенности при установки qemu в Debian 11
https://propk.ru/virt-manager-debian-10/
apt -y install qemu libvirt-daemon bridge-utils virtinst libvirt-daemon-system
apt -y install libguestfs-tools libosinfo-bin qemu-system virt-manager
виртуальная сеть не активна ‘default’.
sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-destroy default
https://dondub.com/2023/01/zapusk-kvm-na-debian-11/
virsh net-autostart default
установка aarch64 на virt-manager x86_64
Установка необходимых компонентов
Для эмуляции другой архитектуры на x86_64 вам потребуются пакеты эмулятора QEMU для ARM и прошивка UEFI (EDK2):
Ubuntu/Debian:
sudo apt install qemu-system-arm qemu-efi-aarch64 qemu-utils virt-manager
Федора:
sudo dnf install qemu-system-aarch64 edk2-aarch64 virt-manager
Arch Linux:
sudo pacman -S qemu-emulators-full edk2-armvirt virt-manager
Настройка виртуальной машины в virt-manager
Архитектура: aarch64
Тип машины: virt
CPU: Выберите cortex-a57 или max
На последнем шаге перед установкой установите галочку «Проверить конфигурацию перед установкой»
Другие типы машин (почему их НЕ надо выбирать):
sbsa-ref: Это эмуляция серверного железа (Server Base System Architecture). Она требует специфических прошивок объемом ровно 256 МБ и гораздо сложнее в настройке для обычного пользователя.
raspi3b / virt2 / и т.д.: Это эмуляция конкретных плат (например, Raspberry Pi). Они имеют жесткие ограничения по объему оперативной памяти (например, 1 ГБ для Pi3) и часто требуют передачи специфического dtb (Device Tree Blob) файла при загрузке
Важные настройки для типа virt:
Чтобы Alpine Linux успешно загрузился с ISO:
CPU: Выберите cortex-a57 или max. Использование host невозможно, так как архитектуры хоста и гостя различаются.
Видео: Установите virtio (или ramfb). Стандартное VGA для virt машин часто не инициализируется корректно.
CD-ROM: Убедитесь, что ISO подключен через шину USB или SCSI. Шина IDE на машинах типа virt не поддерживается.
Для стандартного образа Alpine Linux (и большинства других дистрибутивов) в 2025 году лучше всего подходит:
/usr/share/AAVMF/AAVMF_CODE.fd (если есть в списке) или /usr/share/AAVMF/AAVMF_CODE.no_secboot.fd
AAVMF_CODE.no_secboot.fd: Это самый безопасный вариант для Alpine. В нем отключена проверка Secure Boot. Alpine Linux "из коробки" может иметь проблемы с загрузкой, если включена строгая проверка подписей Secure Boot, так как не всегда использует подписанный загрузчик shim.
AAVMF_CODE.ms.fd: Содержит ключи Microsoft. Используется в основном для запуска Windows on ARM или дистрибутивов с полной поддержкой Secure Boot (Ubuntu, Fedora). Для Alpine это может создать лишние препятствия.
AAVMF_CODE.secboot.fd: Включает механизм Secure Boot, но без предустановленных ключей (или со специфическими).
Если ISO всё равно не загружается:
Если после выбора прошивки вы видите пустой экран или консоль UEFI (Shell), проверьте два момента в настройках virt-manager:
Тип шины диска и CD-ROM: Для ARM64 (aarch64) крайне рекомендуется использовать шину VirtIO для диска и SCSI или USB для CD-ROM. Шина IDE на ARM часто не поддерживается.
Видеокарта: Установите модель Virtio (с поддержкой 3D или без) или Ramfb. Стандартные VGA/Cirrus, привычные для x86, на aarch64 часто не выводят изображение.
Ошибка («Display output is not active») на архитектуре aarch64 чаще всего возникает из-за того, что эмулируемая машина virt не имеет стандартного видеовыхода, как у обычного ПК, и UEFI не знает, куда выводить изображение.
Для исправления в 2025 году выполните следующие шаги в настройках виртуальной машины:
1. Сменить видеодрайвер
В разделе Video (Видео):
Измените модель на virtioили ramfb.
Важно: Не используйте VGA, Cirrus или QXL — они плохо работают с архитектурой ARM в QEMU. ramfb является наиболее надежным вариантом для этапа загрузки UEFI.
2. Проверьте тип Графического дисплея
В разделе Display Spice (или Display VNC):
Убедитесь, что выбран Listen type: Address (или None).
Если используете Spice, попробуйте переключить на VNC, так как он иногда стабильнее инициализирует «картинку» при программной эмуляции (TCG).
3. Добавьте последовательную консоль (Serial Console)
На ARM-системах вывод часто идет не в графику, а в последовательный порт.
Нажмите Add Hardware (Добавить оборудование) -> Serial.
Совет: pty .
После запуска машины, если графическое окно пустое, перейдите в меню virt-manager: View (Вид) -> Consoles (Консоли) -> Serial 1.
Alpine Linux часто выводит лог загрузки именно туда.
4. Настройка Шины ввода (Input)
Тип машины virt не поддерживает PS/2 мышь и клавиатуру.
Удалите старые устройства ввода.
Добавьте USB Keyboard и USB Mouse (или EvTouch USB Graphics Tablet). Без этого вы не сможете управлять меню загрузки.
5. Принудительный выбор устройства загрузки
Если экран активен (черный), но ничего не происходит:
Сразу после запуска быстро нажимайте ESC (может потребоваться несколько попыток из-за медленной эмуляции).
Вы попадете в меню UEFI.
Выберите Boot Manager.
Найдите пункт UEFI QEMU CD-ROM и нажмите Enter.
Почему это происходит: Эмуляция aarch64 на x86 идет через TCG (программный транслятор), она крайне медленная. Иногда отрисовка первого кадра UEFI занимает до 30-60 секунд. Подождите немного после запуска.
оптимизация диска VM
qemu-img info debian10.qcow2
virt-df -h debian10.qcow2
virt-sparsify debian10.qcow2 debian10-new.qcow2
сброс пароля
sudo virt-edit -d название_виртуалки /etc/shadow
sudo virt-sysprep --root-password password:123456 -a guest.img
Fedora 37 Cloud Base Images
sudo virt-sysprep -a
Перенос из KVM в VMware
qemu-img convert -f qcow2 centos7.qcow2 -O vmdk centos7.vmdk
Увеличиваем размер образа. В случае использования KVM/QEMU:
qemu-img resize vm.qcow2 +5GB
В случае использования VirtualBox, потребуется дополнительный шаг с
промежуточным преобразованием VDI в qcow2 или raw-формат:
qemu-img convert -f vdi -O qcow2 vm.vdi vm.qcow2
qemu-img resize vm.qcow2 +5G
qemu-img convert -f qcow2 -O vdi vm.qcow2 vm.vdi
чтобы выделить видеопамять больше 16 мегабайт
qemu -device VGA,vgamem_mb=128, а в virt-manager подправить xml файл.
флаги ядра
https://wiki.gentoo.org/wiki/QEMU
минимальный
CONFIG_BLOCK=y
CONFIG_BLK_DEV=y
CONFIG_DEVTMPFS=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_BLK=y
Как очистить устаревшие записи virsh net-dhcp-leases default
cat /var/lib/libvirt/dnsmasq/default.leases
sudo cat /var/lib/libvirt/dnsmasq/virbr0.status | jq
1. Останови сеть:
virsh net-destroy default
2. Удали virbr0.status:
sudo rm /var/lib/libvirt/dnsmasq/default.leases
или
sudo rm /var/lib/libvirt/dnsmasq/virbr0.status
3. Перезапусти сеть:
virsh net-start default
Теперь снова проверь:
virsh net-dhcp-leases default
просмотр всех ip адресов на всех интерфейсах у всех виртуалок
на каждой виртуалке
sudo apt install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
sudo systemctl status qemu-guest-agent
на хосте
get_ip_address_vm.sh
https://hackware.ru/?p=14459
sudo apt install libguestfs-tools
virt-cat -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' '/ПАПКА/ФАЙЛ'
virt-filesystems -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА'
virt-ls — показывает список файлов
virt-ls -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' '/ПАПКА'
virt-edit — редактирует файл
virt-copy-in — копирует файлы и директории в виртуальную машину
virt-copy-out — копирует файлы и директории из виртуальной машины
guestmount — монтирует файловую систему гостевой машины в основную
guestunmount — размонтирует гостевую файловую систему
guestmount -a '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' -i --ro /ТОЧКА/МОНТИРОВАНИЯ
Настройте последовательную консоль в гостевой ОС Ubuntu
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service
теперь можно подключиться
virsh console ваша_виртуалка
пустой virsh list
virsh -c qemu:///system list
export VIRSH_DEFAULT_CONNECT_URI=qemu:///system
virtio-win
https://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
https://launchpad.net/kvm-guest-drivers-windows/+download (староваты)
https://fedorapeople.org/groups/virt/virtio-win/deprecated-isos/latest/
https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html
https://github.com/UPC/ravada
https://www.altlinux.org/VDI/Ravada
ошибки
virt-manager
Ошибка создания пула: Не удалось определить пул: XML error: name Downloads/iso/ cannot contain '/'
virsh pool-define-as storage dir --target $HOME
https://www.reddit.com/r/archlinux/comments/tuajgs/im_having_an_error_when_trying_to_launch_create_a/
https://github.com/virt-manager/virt-manager/issues/398
XML error: The PCI controller with index='0' must be model='pci-root' for this machine type, but model='pcie-root' was found instead'
Going to "Edit", "Preferences", and checking "Enable XML editing".
Going to "Overview", "XML", and scrolling down to the "<devices>" section.
Replacing the `<controller type="pci" index="0" model="pcie-root"/>` entry with `<controller type="pci" index="0" model="pci-root"/>`.
Deleting all of the other pcie controller entries below that.
If you have an entry like `<controller type="usb" index="0" model="qemu-xhci" ports="15">` and you need USB support then you'll probably (I haven't verified this) have to replace it with something like `<controller type="usb" model="ich9-uhci1" ports="15"/>`.
для этого типа машины контроллер PCI с индексом 0 должен принадлежать к модели "pci-root" но обнаружена запись model="pcie-root"
в свойствах гипервизора меняем Набор микросхем на Q35 или i440FX
если надо UEFI, то при создании "Выберите операционную систему для установки" нужно выбрать "Generic or unknown OS. Usage is not recommended."
qemu efi does not see sda only hda and vda
после установки, например под aarch64, на "Дисковое устройство" sata (sda), при загрузке нет диска в UEFI shell, чтобы он появился (и появилась возможность загрузится), необходимо удалить диск из VM, а затем добавить его как "Дисковое устройство" VirtIO (vda)
https://access.redhat.com/discussions/3158461
возможно нет драйверов virtio-scsi virtio_scsi.ko ваша система, не сможет использовать тип интерфейса virtio-scsi, и ваши дисковые устройства, будут представлены как /dev/vda, vdb, vdc
/dev/sda — это первый обнаруженный диск типа IDE/SATA/SCSI. В данном случае эмулируется (полная виртуализация) гипервизором.
/dev/vda — первый обнаруженный паравиртуализированный драйвер диска. Это быстрее, чем эмулируемые устройства sdX, если оба относятся к одному и тому же диску, поскольку в его работе меньше накладных расходов по сравнению с эмулируемым диском.