Архив метки: 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.





2020-08-24T07:00:00
KVM

Конвертация дисков 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




2019-03-29T10:32:40
KVM

Linux KVM QCOW2, конвертирование образа гостевой системы IMG -> QCOW2

По-умолчанию, образ в формате RAW (IMG). Из всех перечисленных в man qemu-img типов дисков наиболее гибким и современным является QCOW2. Он поддерживает снапшоты, шифрование и сжатие. Его необходимо создавать до того, как создать новую гостевую систему.

qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Согласно тому же man qemu-img, предварительное размещение метаданных (-o preallocation=metadata) делает диск изначально немного больше, но обеспечивает лучшую производительность в те моменты, когда образу нужно расти. Кроме типа образа впоследствии можно будет выбрать способ его подключения — IDE, SCSI или Virtio Disk.
Конвертирование:

qemu-img convert -f raw -O qcow2 image.img image.qcow2
Потом выставить права и owner-а на файл образа и скопировать в папку с образами. В virtual-manager останавливаем гостевую систему, удаляем старый диск и добавляем новый.

Автор: Viktor