Kernel Virtual Module — ПО, позволяющее создавать виртуальную среду на уровне ядра Linux, т.е. использовать виртуальные машины внутри основной хост-системы. Единственное требование — железо должно поддерживать виртуализацию (например — Intel VT). Для начала обновим репозитории. Читать
Архив метки: KVM
Как использовать Vagrant с Libvirt в Linux
В этом руководстве мы рассмотрим, как использовать Vagrant с Libvirt в Linux. Vagrant — это программное обеспечение с открытым исходным кодом, написанное на Ruby, чтобы помочь вам создавать и поддерживать портативные виртуальные среды разработки программного обеспечения, например для VirtualBox, Hyper-V, контейнеров Docker, VMware, Libvirt и AWS. Vagrant упрощает создание, остановку и уничтожение виртуальных машин.
Самым популярным вариантом использования на локальных машинах является использование провайдера VirtualBox. Если вы являетесь пользователем KVM и QEMU, эта статья для вас. KVM, как известно, имеет лучшую производительность и меньшее использование ресурсов по сравнению с Virtualbox. Читать
Перенос виртуальной машины VirtualBox в KVM
Сегодня рассмотрим пример переноса виртуальной машины с VirtualBox в KVM виртуализацию. Возможно, у вас есть несколько важных гостевых машин на VirtualBox. Вместо создания новых гостей KVM с такой же конфигурацией, вы можете легко перенести существующие виртуалки Virtualbox на KVM, как описано в это мануале.
Перенос виртуальных машин Virtualbox на виртуальные машины KVM на Linux
Отключите все виртуальные машины, размещенные на KVM и VirtualBox.
Далее необходимо зайти на VirtualBox и посмотреть какой диск использовался для хранения нашей виртуальной машины. Если динамический, то надо сделать его копию в статический vdi (я использую этот формат). Это можно сделать либо в графической морде VirtualBox, либо в командной строке:
VBoxManage clonehd dynamic.vdi static.vdi --format VDI --variant Fixed
Формат образа диска по умолчанию у виртуальной машины Virtualbox — VDI.
Мы можем найти список образов виртуальных дисков и их расположение с помощью команды:
vboxmanage list hdds
или,
VBoxManage list hdds
Пример вывода:
UUID: 8345103c-5113-8399-4517-681002110040 Parent UUID: base State: created Type: normal (base) Location: /home/user/VirtualBox VMs/ubnsrv20.04/ubnsrv 20.04.vdi Storage format: VDI Capacity: 10240 MBytes Encryption: disabled
Как видно из вывода у меня она виртуальная машина Virtualbox, расположенная по пути /home/user/VirtualBox VMs/ubnsrv_20.04/ubnsrv_20.04.vdi.
Теперь можно пойти двумя путями. Первый путь актуален для Windows виртуальных машин. Второй в большей степени для Linux:
Готовим систему Windows к переносу.
Выше я описывал как преобразовать диск из динамического в статический, назовем его static.vdi. Примонтируем его вместо динамического и удаляем VirtualBox Guest Tools.
Для успешной работы Windows необходимо иметь в наличии драйвера VirtIO для KVM. Скачиваем нужные с офф. сайта вот ссылка.
Рекомендуется сначала установить драйверы в гостевой системе, а уже после этого подключать или изменять устройства с целью использования паравиртуализированных драйверов. Для блочных устройств, на которых расположены корневые файловые системы или другие блочные устройства, необходимые для загрузки гостя, потребуется установить драйверы, прежде чем приступить к изменению настроек устройства.
Готовим систему Linux к переносу.
Преобразуем образа ubnsrv 20.04.vdi в формат необработанного диска с помощью команды «vboxmanage»:
vboxmanage clonehd --format RAW "/home/user/VirtualBox VMs/ubnsrv_20.04/ubnsrv_20.04.vdi" ubnsrv_20.04.raw
Пример вывода:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: 8345103c-5113-8399-4517-681002110040
Т.к. образ RAW является необработанным форматом диска (не сжатым), то он занимает много свободного пространства на вашем HDD/SSD.
Давайте преобразуем формат образа RAW в формат диска KVM qcow2 со сжитием , с помощью команды qemu-img:
qemu-img convert -f raw ubnsrv_20.04.raw -O qcow2 ubnsrv_20.04.qcow2
Можете попробовать преобразовать формат VDI сразу в формат qcow2
qemu-img convert -f vdi ubnsrv_20.04.vdi -O qcow2 ubnsrv_20.04.qcow2
Мы конвертировали нашу виртуальную машину из формата VDI, т.е. образа диска Virtualbox в формат образа KVM – qcow2.
Теперь вы можете импортировать образ диска на существующий компьютер KVM или создать новый экземпляр с этим вновь преобразованным образом диска KVM из командной строки или с помощью любых графических приложений управления KVM, таких как Virt-manager или веб-консоль Cockpit.
Конвертация дисков qcow2 -> lvm в KVM (Proxmox)
Занимался на днях переносом виртуальных машин с обычного kvm гипервизора на proxmox. На исходном гипервизоре диски виртуальных машин были в формате qcow2. Я решил заодно сконвертировать диски из qcow2 в lvm и написать заметку об этом, чтобы не забыть.
Установка и настройка KVM на Ubuntu Server
Сегодня в статье установим и настроим KVM сервер на операционной системе Ubuntu Server 20.04 LTS.
KVM (kernel-based virtual machine) – это программное обеспечения для Linux, использующее аппаратные средства x86-64-совместимых процессоров для работы с технологией виртуализации Intel VT или AMD SVM.
Подготовка к установки KVM на Ubuntu Server
Для начала давайте проверим поддерживается ли виртуализация Intel VT или AMD-V нашим процессором, для этого установим небольшую утилиту:
sudo apt install cpu-checker
Далее набираем команду:
kvm-ok
Если вывод будет такой как ниже, то виртуализация поддерживается вашим процессором:
INFO : /dev/kvm exists KVM acceleration can be used
Ещё один способ проверить поддерживается ли технология вашим CPU это посмотреть его флаги:
egrep -c "svm|vmx" /proc/cpuinfo
Если вывод не пустой, значит поддерживается, и можно переходить к установке KVM .
Установка KVM на Ubuntu Server
Для того чтобы установить KVM из терминала набираем следующую команду:
sudo apt install qemu-kvm virtinst libvirt-clients libvirt-daemon-system
Для более ранних ОС:
sudo apt install qemu-kvm libvirt-bin virtinst
Следующим шагом при реализации kvm виртуализации будет настройка сетевого моста на вашем сервере. Как это сделать я писал в этой статье.
Да чуть не забыл, управление виртуальными машинами из консоли производится при помощи утилиты virsh. Так что для начала можно посмотреть man или help данной утилиты:
man virsh
virsh -h
Давайте рассмотрим некоторые полезные команды необходимые для управления нашими будущими гостевыми ОС.
Смотрим список доступных сетей:
sudo virsh net-list
Просмотр информации о конкретной сети (с именем default):
sudo virsh net-info default
Если уже был сконфигурирован сетевой мост то доступные интерфейсы можно посмотреть так:
sudo virsh iface-list
Смотрим список доступных оптимизаций для гостевых ОС:
sudo virt-install --os-variant list
У меня данная команда не заработала. Если вы столкнулись с такой же проблемой, то для просмотра доступных гостевых ОС проделываем следующее.
Устанавливаем необходимую утилиту:
sudo apt install libosinfo-bin
Теперь набираем команду:
osinfo-query os
Вывод будет примерно такой:

Ну вот, когда мы знаем всю интересующую нас информацию можно приступать к установке виртуальной машины.
Установка виртуальной машины Ubuntu 16.04 на KVM
В качестве гостевой системы установим Ubuntu 16.04 с GUI. Также для меня пути по умолчанию не годятся:
/var/lib/libvirt/boot/— ISO-образы для установки гостевых систем;-
/var/lib/libvirt/images/— образы жестких дисков гостевых систем; -
/var/log/libvirt/— тут следует искать все логи; /etc/libvirt/— каталог с файлами конфигурации.
Поэтому создаём директорию /home/kvm, а в ней две директории для ISO образов и образов наших гостевых ОС.
sudo mkdir -p /home/kvm/{iso,vhdd}
Качаем ISO-образ системы
в директорию /home/kvm/iso созданную ранее:
sudo wget -P /home/kvm/iso https://obu4alka.ru/wp-content/Install/Install_OS/ubuntu-16.04.5-desktop-amd64.iso
После завершения скачивания создадим нашу виртуальную машину на дистрибутиве Ubuntu Desktop 16.04 с 2 CPU, 2 Гб RAM и 20 Гб места на диске, подключенную к сети br0.:
sudo virt-install
--virt-type=kvm
--name ubuntu-desktop
--ram=2048
--vcpus=2
--os-variant=ubuntu16.04
--autostart
--cdrom=/home/kvm/iso/ubuntu-16.04.5-desktop-amd64.iso
--network=bridge:br0,model=virtio
--graphics vnc,listen=0.0.0.0,password=qwerty
--disk path=/home/kvm/vhdd/ubuntu16.04.img,size=20
Теперь давайте разберемся что же мы тут написали:
--name – имя виртуальной машины
--ram – количество выделенной памяти.
--vcpus – количество ядер выделенных профессоров
--os-variant – оптимизация под конкретную гостевую ОС.
--autostart – автоматический запуск гостевой ОС.
--cdrom – расположение iso образа устанавливаемой ОС.
--network – к какой сети будет подключена наша виртуальная машина,model=virtio – модель сетевого адаптера.
--graphics – способ подключения к нашей гостевой ОС (в данном случае vnc), listen=0.0.0.0,password=qwerty – на каких IP интерфейсах принимать соединения и с каким паролем).
--disk path – расположение образа виртуального hdd (диска), size=20 – размер диска 20 Гбайт.
Основные команды virsh
Давайте теперь рассмотрим основные команды для работы с KVM.
Получение списка всех гостевых ОС:
sudo virsh list --all
Получение информации о конкретной гостевой ОС:
sudo virsh dominfo ubuntu-desktop
Запустить гостевую ОС:
sudo virsh start ubuntu-desktop
Остановить гостевую ОС:
sudo virsh shutdown ubuntu-desktop
Приостановить гостевую ОС:
sudo virsh suspend ubuntu-desktop
Возобновить работу гостевой ОС:
sudo virsh resume ubuntu-desktop
Выключить гостевую ОС:
sudo virsh destroy ubuntu-desktop
Перезагрузить гостевую ОС:
sudo virsh reboot ubuntu-desktop
Сбросить гостевую ОС:
sudo virsh reset ubuntu-desktop
Склонировать гостевую ОС:
sudo virt-clone -o ubuntu-desktop -n ubuntu-desktop-clone
--file /home/kvm/vhdd/ubuntu-desktop-clone.img
Включить/выключить автозапуск:
sudo virsh autostart ubuntu-desktop
sudo virsh autostart
--disable ubuntu-desktop
Запуск virsh в диалоговом режиме (все команды в диалоговом режиме — как описано выше):
sudo virsh
Установка Windows 7 на kvm с помощью virt-install
sudo virt-install
--name WIN-7
--autostart
--network=bridge:br0
--ram 2048
--disk path=/home/kvm/vhdd/wIN-7.img,size=30
--cdrom /home/Install/Install_OS/Windows 7 Ultimate.iso
--graphics vnc,listen=0.0.0.0,password=qwerty
Обратите внимание на Слэш в имени пути к iso-образу. Оборотный Слэш ставится если у вас в названии файла есть пробелы.
На сервере вводим:
virsh vncdisplay WIN-7
команда покажет, на каком порту работает VNC для машины WIN-7. У меня было:
:1
:1 значит, что нужно к 5900 прибавить 1 — 5900 + 1 = 5901.
Установка Virt-Manager
Для более комфортной работы с виртуальными машинами можно установить virt-maneger и с него производить установку и настройку всех виртуальных машин.
Для того чтобы установить virt-manager нам понадобится:
Сервер с графическим интерфейсом (Ubuntu Desktop)
ПК с графическим интерфейсом (Ubuntu Desktop | Linux Mint)
Я же буду использовать свой ПК с операционной системой Linux Mint 19. И так для установки пакета virt-manager в терминале набираем:
sudo apt install virt-manager
[endtxt]
RSS
KVM / Создание снимков виртуальных машин
Qemu-KVM поддерживает создание снимков виртуальных машин. От суперпользователя заходим в virsh и выполняем следующую команду:
virsh # snapshot-create-as name
name — это имя виртуальной машины.
После того, как снимок виртуальной машины будет сделан, резервные копии файлов конфигураций будут лежать в директории /var/lib/libvirt/qemu/snapshot/.
Просмотреть снимки можно следующей командой:
virsh # snapshot-list name
Name Creation Time State
— 2340593244 2015-06-18 17:34:04 +0200 running
2340594479 2015-06-18 17:54:39 +0200 running
Восстановить из snapshot можно так:
virsh # snapshot-revert name 2340593244
Удалить не нужный снимок можно так:
virsh # snapshot-delete name 2340593244
Автор: AugustuS Karro