Установка kvm centos 7

Обновлено: 04.07.2024

Для доступа к виртуальным машинам, которые предлагаются через KVM, вы используете libvirtd. Libvirtd - это процесс, который находится между уровнем виртуализации и приложением, которое администратор использует для доступа к виртуальным машинам.

Параметры управления виртуальной машиной настраиваются через файл /etc/libvirt/libvirtd.conf.

Если у вас возникают проблемы с доступом к виртуальным машинам, libvirtd является основным подозреваемым, и вы должны по крайней мере убедиться, что он работает, с помощью команды systemctl status -l libvirtd.

Несколько служебных программ могут быть использованы поверх libvirtd. Диспетчер виртуальных машин (предлагается через двоичный файл virt-manager) - это широко используемый графический интерфейс пользователя (GUI) для управления KVM. Кроме того, команда virsh доступна в качестве интерфейса командной строки для управления виртуальными машинами KVM.

Установка пакетов KVM

Наиболее удобный способ сделать это - использовать yum groupinstall "Virtualization Host". Эта команда устанавливает все необходимое для настройки среды хоста виртуализации. Выполните команду сейчас.

Еще одним важным фактором является доступность хранилища. Когда вы устанавливаете виртуальную машину, она должна создать виртуальный диск. Этот виртуальный диск по умолчанию хранится в файле образа в каталоге /var/lib/libvirt/images. Убедитесь, что у вас достаточно свободного дискового пространства в разделе, где вы хотите установить виртуальные машины, прежде чем начинать установку.

После установки необходимых пакетов программного обеспечения вы можете перейти к созданию виртуальных машин и управлению ими.

1. Войдите под рутом. Введите lsmod | grep kvm. Этой командой вы ищете модуль kvm и kvm_intel (kvm_amd, если вы используете платформу AMD). Если эти модули в данный момент не загружены, введите modprobe -r kvm для их загрузки.

2. Введите systemctl status libvirtd. Эта команда проверяет, запущена ли служба libvirtd. Если это так, то всё отлично. Если нет, введите systemctl start libvirtd, чтобы запустить службу.

3. Введите df -h, чтобы проверить объем доступного дискового пространства.

Немного о KVM Host Networking

После установки KVM на сервере сеть также существенно меняется. На хосте создан виртуальный мост virbr0. Этот виртуальный мост работает как встроенный коммутатор и используется для подключения одного или нескольких физических сетевых интерфейсов хоста к различным виртуальным машинам.

Во время связи по сети виртуальная машина отправляет пакеты через свой внутренний (виртуальный) сетевой интерфейс, который обычно имеет имя eth0. На уровне гипервизора (хоста, где установлен KVM) эта сеть представлена интерфейсом vnet. Первая виртуальная машина, которая запускается, получает интерфейс vnet0, вторая машина, которая запускается, получает vnet1 и так далее.

Эти интерфейсы vnet в свою очередь подключаются к виртуальному мосту. Сам виртуальный мост подключен к физическому сетевому интерфейсу вашего хоста. Чтобы получить обзор конфигурации виртуальной сети, вы можете использовать команду brctl show. Эта команда показывает имя моста, уникальный идентификатор, который был назначен мосту, индикатор, который показывает, был ли включен протокол STP (Spanning Tree Protocol), и все интерфейсы, которые подключены к мосту.

Обратите внимание, что в CentOS 7 есть два разных способа управления сетевыми мостами. При установке CentOS в качестве хоста KVM автоматически создается мостовой интерфейс с именем virbr0. Кроме того, вы можете настроить мост вручную, используя утилиты мостового соединения, которые доступны в утилитах NetworkManager nmtui и nmcli. Чтобы упростить настройку конфигурации виртуальной сети, рекомендуется установить мост при настройке сервера в качестве хоста KVM.

Создание моста (br0)

Чтобы NIC на хосте работал в режиме моста, нужно установить пакет bridge-utils:
Первым делом узнаем название физического интерфейса. В моём случае это em4:
Затем открываем файл физического интерфейса:
Удаляем всё содержимое и вписываем туда:
Теперь создаем интерфейс br0:
Вписываем туда это содержимое:
Вместо моей адресации впишите ту, которая была на физическом интерфейсе, в моей случае это em4.

Перезапускаем сеть:
Перезапускаем libvirtd:
Теперь появился сетевой интерфейс br0 и он работает в режиме моста. Соответственно ему теперь назначена IP-адресация, которая была на em4:
С настройкой моста закончили, теперь установим дополнительные пакеты для работы с KVM, если вы хотите управлять виртуальными машинами из Windows.

Установка дополнительных пакетов

Установим virt-manager и дополнительные пакеты, благодаря которым можно управлять виртуальными машинами в графической среде прямо из ssh-сессии:
Далее:

И наконец произведем окончательную настройку выше скачанных программ.

Настройка дополнительных параметров SSH на хосте KVM

Открываем файл конфигурации sshd:
Найдите строки ниже и приведите их в этот вид:
Перезапустите sshd:

Настройка PuTTy и VcXsrv


Запускаем PuTTy, вводим IP-адрес хоста KVM и имя сессии. После этого слева раскрываем SSH, выбираем X11 и ставим галочку напротив "Enable X11 forwarding" как на скриншоте ниже:

И наконец настроим VcXsrv


После установки жмём и запускаем "Пуск - VcXsrv - VcXsrv.exe", после чего в трее появится значок "X"

Последовательность запуска virt-manager следующая:

  1. Сначала запускаете VcXsrv
  2. Затем запускаете PuTTy и подключаетесь к хосту по SSH
  3. После входа в консоль просто введите virt-manager & (вместе со знаком &, чтобы увидеть, запущен ли до этого процесс virt-manager) и откроется окно Virtual Machine Manager

Установка и управление виртуальными машинами

1. Введите virt-manager &, чтобы запустить диспетчер виртуальных машин (Virtual Machine Manager).

2. В диспетчере виртуальных машин нажмите Create a New Virtual Machine. Откроется окно шага 1 из 5 мастера создания новой виртуальной машины.



3. На шаге 2 из 5 мастера необходимо указать источник, где находится установочный диск, а также версию операционной системы и операционной системы, которые вы хотите установить.



4. Далее необходимо указать объем оперативной памяти, которую вы хотите выделить для виртуальной машины, а также количество ядер ЦП. Конечно, вам нужно иметь как минимум ресурсы, которые вы выделяете на хост-машине. Для минимальной установки используйте 512 МБ ОЗУ и 1 ЦП.



5. Теперь введите свойства виртуального диска, который вы хотите создать. Для базовой установки рекомендуется минимум 2 ГБ.



6. На данный момент вы ввели все свойства, которые будут использоваться для виртуальной машины.
Теперь вы можете нажать Finish, чтобы записать настройки виртуальной машины на диск и начать процедуру установки.

В этой процедуре вы определили настройки виртуального оборудования, которые будет использовать ваша виртуальная машина. Теперь можно начать установку.

Сами настройки виртуальной машины были записаны в файл конфигурации XML, который хранится в каталоге /etc/libvirt/qemu.

Поскольку настройки виртуального оборудования легко доступны в файле конфигурации, у вас может возникнуть желание изменить их также из файла. Это не то, что вы должны делать. Чтобы изменить настройки виртуального оборудования, вы можете использовать свойства виртуальной машины в диспетчере виртуальных машин или использовать команду virsh edit <vmname>. Это связано с тем, что доступ к настройкам виртуальной машины упрощен через libvirtd, потому что после того как вы внесли изменения, происходит проверка синтаксиса и если он будет неправильный, то вы не сможете сохранить конфигурацию, а прямой доступ к конфигурации может испортить вашу виртуальную машину.

Использование виртуальных машин KVM

  • SSH
  • Через диспетчер виртуальных машин (команда virt-manager &)
  • Через GNOME Boxes
  • Использование virt-viewer
  • Через сторонние утилиты.



Утилита virt-viewer похожа на Virtual Machine Manager. Он был разработан для предоставления пользователям доступа к виртуальной машине без предоставления возможности изменения настроек виртуальной машины.

Утилита GNOME Boxes является дополнением к интерфейсу GNOME 3, который используется на серверах, на которых установлен графический интерфейс. Он был разработан как утилита для конечных пользователей, которая упрощает использование и доступ к виртуальным машинам.

Доступ к виртуальным машинам из консоли хоста

1. Войдите в виртуальную машину и убедитесь, что у вас есть права root.

2. Введите grubby --update-kernel=ALL --args="console=ttyS0". Использование команды grubby позволяет изменить конфигурацию загрузчика GRUB2 без необходимости просматривать файлы конфигурации GRUB2.
В качестве альтернативы вы можете отредактировать файл /etc/default/grub и добавить аргумент console=ttyS0 в строку, которая указывает используемые аргументы ядра. Если вы изменяете файл grub.conf, используйте grub2-mkconfig -o /boot/grub2/grub.cfg, чтобы записать изменения в основной файл конфигурации загрузчика.

3. Перезагрузите виртуальную машину, используя команду reboot.

Управление свойствами виртуальной машины в графической среде

Как администратору, вам иногда придется менять свойства виртуальной машины. Самый простой способ сделать это - через диспетчер виртуальных машин. Для доступа к свойствам в диспетчере виртуальных машин сначала необходимо открыть виртуальную машину. ВМ не должна быть запущена. Открыв его, щелкните значок, который выглядит как лампа, чтобы открыть интерфейс, показанный на скриншоте.

  • Чтобы добавить новое оборудование, нажмите кнопку Add Hardware в левой нижней части окна. Это открывает интерфейс, из которого вы можете выбрать аппаратное устройство для добавления, а также его дополнительные свойства.
  • Выберите параметр Performance, чтобы отобразить графики производительности использования виртуальных машин.
  • Выберите параметр Memory, чтобы увеличить или уменьшить размер памяти, выделенной для виртуальной машины.
  • Нажмите Boot Options, чтобы включить автозапуск. Это запустит виртуальную машину при загрузке хоста.
  • Также в интерфейсе параметров загрузки вы найдете порядок загрузки устройств (Boot Device Order). Выберите этот параметр, чтобы указать порядок, в котором устройства в вашей виртуальной машине будут использоваться для загрузки.

Управление виртуальными машинами из консоли

CentOS предлагает универсальный интерфейс командной строки для управления виртуальными машинами непосредственно из командной строки. Вы можете запустить команду virsh с множеством различных аргументов для выполнения определенных задач. Вы также можете просто набрать virsh, чтобы открыть интерфейс командной строки, из которого вы можете сразу ввести определенные команды. Таблица показывает некоторые из наиболее распространенных команд virsh.

Узнать IP-адреса гостевой виртуальной машины KVM

Получить список сетей

Посмотреть адреса, выданные машинам этой сетью

Мониторинг активности ВМ с помощью top

В Linux вы можете использовать утилиту top для мониторинга активности процессов. Виртуальная машина похожа на любой другой процесс с точки зрения хоста, на котором она работает. Это означает, что виртуальные машины используют ресурсы, как и любые другие процессы. В утилите top для отображения такой активности используется интересный параметр; параметр st в строке загрузки ЦП указывает процент времени ЦП, которое было «украдено» у гипервизора виртуальными машинами. Сама виртуальная машина на хосте гипервизора отображается как один отдельный процесс сверху.

Таким образом, использование top на хосте позволяет увидеть, насколько занята виртуальная машина связана с другими процессами, запущенными на этом компьютере. Вы не можете видеть, что происходит внутри виртуальной машины, используя top с хоста, но вам придется делать это, используя соответствующие инструменты внутри виртуальной машины. На скриншоте показан вывод команды top хоста KVM, на котором запущены разные виртуальные машины. Каждая из виртуальных машин отображается как процесс qemu-kvm.

Настройка KVM на CentOS 7


Настройку KVM будем проводить на CentOS 7, minimal, x64. Выбор KVM при использовании CentOS был для меня достаточно очевиден - он поддерживается и продвигается Red Hat.

Итак, в локальной сети 192.168.88.0/24 есть хост (CentOS 7, имя SERVER.LOCAL и IP 192.168.88.2, сетевой адаптер enp1s0). На этом хосте мы хотим запустить несколько виртуальных машин, доступных из локальной сети. Технология виртуализации: KVM.

Подготовительные работы

Для начала вообще проверим, наш хост поддерживает виртуализацию или нет:

Если ок (еще бы нет. ), готовим сеть для роутинга трафика между виртуальными машинами и внешней сетью:

Ок. Дальше выберем тип виртуальной сети.

Bridge или nat?

Есть два варианта работы виртуальных машин в сети:

1) Виртуальные машины будут за nat, недоступные из внешней сети.
Создаваемые виртуальные машины по-умолчанию будут принадлежать внутренней виртуальной сети хоста (по-умолчанию 192.168.122.0/24) и будут иметь доступ во внешнюю сеть хоста (т.е. в сеть 192.168.88.0/24), а если маршрутизация на хосте настроена, то и в интернет тоже. Из локальной сети виртуальные машины будут недоступны до тех пор, пока вы не настроите проброс портов (forwarding) на хосте из сети хоста в виртуальную сеть.
+ Этот способ проще, т.к. не потребует создания дополнительного сетевого интерфейса - bridge.
+ Если внешний IP один, то может быть невозможным иной сценарий, как только пробрасывать порты.
+ Возможно, вам вообще необходимо создать закрытую сеть для виртуальных машин и вам уж точно не нужно публиковать их в сети хоста. Кто знает? Хозяин - барин!

2) Bridge - виртуальные машины будут видны в сети так же, как и обычные компьютеры, без всяких там nat и forwarding.
В этом случае виртуальные машины будут получать IP по DHCP от вашего обычного сервера, будут видны в сетевом окружении другими компьютерами и прочее.
+ Клиенты в сети не увидят разницу между виртуальным сервером и реальным.
- В случае с внешним IP для каждой виртуальной машины нужен будет свой IP, а это не всегда возможно.
- Надо немного потрудиться и подготовить сеть хоста для создания бриджа (bridge), на котором и будет висеть сеть виртуальных машин.

После установки kvm у вас уже будет готовая внутренняя сеть (вариант 1), вполне себе работоспособная, позволяющая гостевым виртуалкам выходить в интернет. Для простоты предлагаю использовать эту сеть, почувствовать, что к чему и потом, при желании, создать bridge для реализации второго варианта.

Устанавливаем KVM

Собственно, мы дорвались до установки виртуализации KVM, эмулятора QEMU и сопутствующих инструментов.

Устанавливаем необходимые пакеты:

Хранить образы виртуальных машин мы будем в новой папке /vms

Добавляем соответствующий контекст для нашей папки, чтобы SELinux не возмущалась:

и проверяем, применились ли они:

Ок, скачиваем из сети образ iso для той ОС, которая будет установлена на вирт. машине, например, тот же CentOS 7 minimal для будущего веб-сервера? Или Tails? Кто знает :)

Создаем первую виртуальную машину

После вышеперечисленных действий для виртуальных машин на хосте создан сетевой интерфейс virbr0 с IP 192.168.122.1:

Также создана виртуальная сеть default:

Сеть можно редактировать:

Пока давайте не будем ничего менять и создадим виртуальную машину, подключенную с сети default:

--graphics vnc,password=vm1password
Здесь мы указываем пароль и возможность подключиться к терминалу виртуальной машины с через VNC. Пароль может засветиться в логах, так что не пишите сюда что-то важное.

--network network=default - подключаем нашу виртуальную машину к виртуальной сети с именем default (с ней мы уже знакомы).
М.б. --network bridge:br0, например, если бы мы создали bridge с именем br0 для варианта номер 2.

Указанная выше команда может быть введена сразу, одной строкой, тут уж как удобнее:

virt-install --network network=default --name vm1 --ram=2048 --vcpus=1 --disk path=/vms/vm1.img,size=30,format=qcow2 --graphics vnc,password=vm1password --cdrom /vms-iso/CentOS-7-x86_64-Minimal-1503-01.iso --boot cdrom,hd,menu=on

Нам и не надо, ведь у нас все равно хост виртуальных машин не имеет оконного менеджера. У меня так, во всяком случае.

Мужественно ждем. Процесс займет какое-то время.

После завершения команды посмотрим список виртуальных машин:

Вирт. машины можно запускать ( virsh start vm1 ), приостанавливать ( virsh suspend vm1 ), возобновлять ( virsh resume vm1 ), выключать ( virsh shutdown vm1 ) и много чего еще с ними делать. Итак, машина vm1 запущена (проверить можно командой virsh domstate vm1 ). Как к ней подключиться?

Подключаемся к виртуальной машине по VNC

На предыдущем этапе вы создали виртуальную машину, указали ей CDROM с операционной системой, а дальше что? Как вы планируете установить и настроить ОС? Да, есть варианты. Можно подготовить инфраструктуру и заливать готовые образы и др. Но мы с вами учимся и у нас нет ничего, кроме недавно скачанного с интернета файла образа диска iso. На самом деле все не сложно. Мы указали на предыдущем шаге параметр "--graphics vnc,password=vm1password". Он означает, что мы можем подключиться к терминалу (читай - экрану) виртуальной машины через VNC, например, программой TightVNC, указав IP хоста виртуальных машин и порт для подключения.

Нашей виртуальной машине был назначен порт VNC, подключившись к которому мы увидим "экран" виртуальной машины. Узнать, какой порт назначен конкретной vm1, можно командой:

Это означает, что порт VNC 5900+0=5900. Если бы результат был "127.0.0.1:1", порт VNC был бы 5901. И т.д.

Подключаться к порту 5900 надо к хосту виртуальных машин. Это на нем открыт этот порт, а не на виртуальной машине vm1.

По умолчанию, хост виртуальных машин (у нас это CentOS 7 minimal) не должен позволять подключение к любому порту кроме ssh (22/tcp). Не советую вам открывать доступ к портам VNC из-вне. Это небезопасно. Для того, чтобы получить доступ к экрану виртуальной машины с рабочей станции Windows, с которой я все настраиваю, я сделал туннелирование порта в Putty: 5900 -> 127.0.0.1:5900.

Проброс портов в Putty для VNC 5900

После успешного логина по ssh, можно запустить TightVNC и указать порт 127.0.0.1::5900 (обратите внимание на двойное двоеточие).

Если после перезагрузки машины потребуется снова подключить к ней образ iso, это можно сделать командой:

где hdb - имя блочного устройства CDROM. Это имя можно узнать просмотрев конфиг вирт. машины ( virsh edit vm1 ).

Управлять виртуальными машинами с хоста можно консольным набором virsh. С некоторыми командами вы уже познакомились. Наберите в консоли:

и вы увидите, сколько всего можно сделать.

Включение/выключение виртуальных машин

Если вы создадите виртуальную машину и попытаетесь ее выключить, то несмотря на рапорт о выполнении, машина может не выключиться:

Здесь дело в поддержке acpi со стороны виртуальной машины. Не во всех случаях вирт. машина обработает сигнал о выключении или перегагрузки (virsh shutdown/restart vm1). В этой ситуации могут быть следующие варианты:

Выдергивание кабеля питания:

Вы прекрасно понимаете, к чему это может привести. Хотя на начальном этапе, пока ОС не установлена, появление ошибок

Приостановка работы вирт. машины:

virsh suspend vm1

Не всегда бывает необходимо выключать или перезагружать машину извне. Для обслуживания может быть достаточно приостановки. Не факт, но все же.

Включение поддержки acpi в виртуальной машине.

Тут могут быть разные рецепты, например так (выполнить в вирт. машине, а не на хосте):

yum install acpid
chkconfig acpid on
service acpid start

Автостарт виртуальных машин

Для того, чтобы при перезапуске хоста виртуальная машина vm1 запускалась автоматически:

Выключить автостарт для vm1:

Контроль сетевой активности виртуальной машины KVM

Может быть полезным оценивать сетевую активность виртуальной машины - например, сколько трафика она потребила. Также это может помочь при отладке сети или поиске утечек трафика. Например:

Тут все понятно, кроме откуда взять название адаптера vnet0. Можно в дампе конфигурации вирт. машины (virsh dumpxml vm1) найти секцию network и в ней параметр dev:

Подключение и отключение привода cdrom

Подключить к vm3 iso-образ в качестве cdrom:

Здесь надо быть внимательным, т.к. после пути до iso-файла на хосте идет указание имени устройства cdrom у виртуальной машины vm3. Если вы не уверены, какое имя устройства надо указать (hda, hdb или др.), сверьтесь с конфигурацией виртуальной машины:

Отключить iso-образ (не удалить устройство из гостя, а просто "извлечь cd-диск из привода"):

А еще созданные виртуальные машины можно клонировать. Удачи!

Процесс ступорится после запуска virt-install. Стоит на Waiting for installation to complete. В чем может быть пролема? Не факт, что это проблема. Попробуйте открыть вторую терминальную сессию, скорее всего vm готова. Было такое пару раз. Не дождался, убедился, что все ок и в первой сессии просто Ctrl-C.

date

14.02.2020

directory

CentOS, KVM, Linux, Виртуализация

comments

Комментариев пока нет

В данной статье мы рассмотрим установку и базовую настройку гипервизора KVM на сервере под управлением Linux CentOS. Покажем, как создать виртуальную машину в KVM, изменить ее настройки, установить гостевую операционную систему и основные команды управления ВМ.

KVM (Kernel-based Virtual Machine) средство виртуализации в среде Linux, которое использует аппаратную виртуализацию на базе Intel VT или AMD SVM. С помощью KVM вы можете создавать изолированные виртуальные машины с собственным виртуальным аппаратным обеспечением: сетевыми картами, дисками, видеокартами и другими устройствами. На виртуальные машины можно уставить любую ОС (не только Linux).

Установка KVM в CentOS

При настройке KVM на сервере, нужно начать с проверки вашего процессора. Нужно узнать, поддерживает ли аппаратную виртуализацию CPU, установленный на вашем сервере. Из консоли сервера, выполните команду:

Если ваш процессор поддерживает технологию VT-x, у вас должен быть примерно такой вывод:

centos проверка поддержки аппаратной виртуализации процессором

Если же команда ничего не выдала, но ваш процессор точно поддерживает виртуализацию, проверьте, вохможно данная опция отключена в BIOS сервера. Ищите параметры “Intel Virtualization Technology” или “SVM MODE”.

На моем сервере поддержка данной технологии включена, поэтому можно приступать к установке необходимых компонентов в CentOS через пакетный менеджер yum/dnf:

    qemu-kvm – сам гипервизор KVM;

На сервер будет установлено большое количество пакетов, следите, чтобы у вас не возникло ошибок в процессе установки.

Теперь нужно добавить сервис libvirtd в автозагрузку и запустить его:

включить libvirtd в centos linux

Проверьте, загрузились ли модули ядра kvm_intel и kvm:

Если у вас ничего не выводится, перезагрузите сервер и проверьте повторно.

Настройка сети в KVM

Теперь создадим каталоги, в которых будут храниться диски виртуальных машин и iso образы:

Чтобы созданные виртуальные машины имели доступ в интернет, нам нужно настроить сеть через bridge. Для этого потребуется пакет bridge-utils, проверьте установлен ли он в Linux командой:

Если нужно, установите его:

После установки пакетов для KVM, в системе появился сетевой интерфейс virbr0:

настройка bridge интерфейса для виртуальных машин kvm в linux

Чтобы создать сетевой мост(bridge), нужно настроить файл конфигурации для сетевого интерфейса сервера:

Удалите все содержимое и замените на следующее:

В вашем случае, имя интерфейса может отличаться (смотрите через команду ip a).

После чего создайте файл:

Где укажите свои данные: IP-адрес сервера и основной шлюз. После правки конфигурационных файлов сетевых интерфейсов нужно перезапустить есервис:

Если у вас после рестарта network пропал доступ к серверу, попробуйте перезагрузить его. Иногда это требуется для корректной настройки bridge.

Чтобы проверить состояние bridge, используйте команду:

Последним шагом нужно настроить перенаправление сетевого трафика:

Теперь перезапустите сервис libvirtd:

На этом базовая настройка KVM закончена, можно создать виртуальную машину.

KVM: создание виртуальной машины

Перед созданием виртуальной машины, я скачал образ CentOS 8 с официального зеркала в директорию /vz/iso:

Чтобы создать новую виртуалную машину KVM, выполните:

virt-install -n test-centos \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=4 --cpu host --check-cpu \
--disk path=/vz/disk/test-centos.img,size=32 \
--cdrom /vz/iso/CentOS-8.1.1911-x86_64-dvd1.iso \
--graphics vnc,listen=IP,password=123456789 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on

  • test-centos — имя ВМ;
  • noautoconsole – после создания не нужно подключаться к консоли виртуальной машины автоматически;
  • network – тип сети(в нашем случае bridge);
  • ram — количество оперативной памяти в ВМ;
  • vcpus – количество ядер процессора (настройка vCPU в KVM);
  • disk – виртуальный диск, path – путь до диска. size – объем (в дальнейшем его можно расширить/уменьшить);
  • сdrom – виртуальный cdrom, в который монтируется iso образ для установки гостевой ОС;
  • graphics — параметры подключения к машине с помощью графической консоли. Мы подключаемся через VNC, поэтому в listen указывает IP сервера, где создали ВМ и пароль для подключения в консоли виртуальной машины (password).

Чтобы ВМ загружалась автоматически, выполните:

Подключение к ВМ на KVM через VNC, установка ОС

Чтобы подключиться к виртуальной машине через VNC, нам нужно узнать порт, на котором она работает:

0 означает, что порт для подключения по VNC 5900, если у вас будет другой результат, просто прибавляйте к 5900 цифру, которую выдаст вам команда.

Для подключения по VNC к серверам, я использую утилиту TightVNC. Запустите ее и укажите IP-адрес сервера и VNC порт, который мы узнали ранее (через двойное двоеточие).

VNC подключение к консоли виртуальной машины в kvm на centos

Нажмите “Connect”, в открывшемся окне укажите пароль, который задали при создании ВМ. Если все сделали верно, у вас откроется консоль сервера, на которой запущена установка CentOS (или другой ОС, образ которой вы смонтировали).

установка гостевой ОС в kvm

Если у вас на сервере установлен файервол, откройте сетевые порты для VNC 5900-5910 в firewalld/iptables, этого количества должно хватить. После установки гостевой ОС на виртуальную машину, запустите ВМ с консоли сервера:

virsh управление виртуальными машинами

Чтобы выключить виртуальную машину KVM, используйте команду:

Подробнее об управлении виртуальными машинами KVM из консоли сервера с помощью virsh, добавление памяти, CPU, дисков и сетевых интерфейсов.

На этом базовая настройка сервера для KVM и создание виртуальной машины окончено. На KVM можно создать неограниченное количество виртуальных машин, все зависит от ресурсов вашего сервера и ваших потребностей.


В приведенном ниже руководстве представлена установка и настройка KVM (QEMU) вместе с конфигурацией Linux Bridge в операционной системе CentOS7 / RedHat7.

1. Проверьте поддержку виртуализации оборудования процессора

Наш процессор должен поддерживать аппаратную виртуализацию (VT-x), чтобы стать Hypervisor KVM и хостом виртуальных машин (гостевые операционные системы):

2. Отключите и остановите NetworkManager

Известно, что NetworkManager вызывает проблемы при работе с Linux Bridge, поэтому для нас лучше отключить его:

3. Установите пакеты, связанные с KVM

4. Запустите и включите демон libvirtd

5. Установите общесистемные привилегии для KVM

Нам нужно добавить нашего обычного пользователя tuxfixer в группу kvm, чтобы он мог запустить virt-manager

и добавьте следующее:

6. Создайте мост KVM Linux Bridge (модемный сетевой интерфейс гипервизора KVM с сетевыми интерфейсами VM)

В этом уроке мы хотим, чтобы виртуальные машины получали свои IP-адреса из той же сети, где подключен хост KVM Hypervisor, поэтому мы подключим его основной сетевой интерфейс (em1) к сетевым интерфейсам VM.

Для этого нам нужно создать Linux Bridge из интерфейса em1 на хосте KVM Hypervisor.

Текущая конфигурация сети Hypervisor (сразу после установки KVM):

Файл конфигурации ifcfg-em1 (до создания моста KVM Linux Bridge):

Для настройки сети KVM мы будем использовать приложение virt-manager, которое является удобным интерфейсом GUI для интерфейса командной строки KVM.

Примечание. Интерфейс virbr0 был создан автоматически вместе с установкой KVM и представляет виртуальную сеть, существующую «внутри» среды KVM с NAT (трансляция сетевых адресов).

Поскольку мы не нуждаемся в NAT в среде KVM (мы хотим скрыть интерфейс Hypervisor), мы можем удалить существующую виртуальную сеть KVM на основе интерфейса virbr0.

Запустите virt-manager от пользователя root:


Правый щелчок на QEMU/KVM -> Details -> Virtual Networks -> Disable network: “default” -> Delete network: “default” based on virbr0


Теперь мы можем подключить интерфейс Hypervisor KVM (em1):

Щелкните правой кнопкой мыши:QEMU/KVM -> Details -> Network Interfaces -> Add Interface:

  • Interface type: Bridge
  • Interface name: br-em1
  • Start mode: on boot
  • Activate now: enabled
  • IP settings: copy configuration from ’em1′
  • Bridge settings: STP on, delay 0.00 sec


Теперь мы можем проверить вновь созданный Linux Bridge (br-em1):


Проверьте текущую конфигурацию IP (теперь IP назначается br-em1, а em1 действует теперь только как интерфейс):

Проверьте настройку моста:

Теперь KVM Linux мост настроен, и мы можем продолжить установку виртуалки.

Читайте также: