Virbr0 centos 7 удалить

Обновлено: 04.07.2024

KVM — это модуль ядра Linux, и для рабо­ты с KVM модуль дол­жен быть уста­нов­лен и загру­жен в ядро Linux.

Модуль обыч­но назы­ва­ет­ся kvm, но для про­цес­со­ров Intel он назы­ва­ет­ся kvm_intel, а для про­цес­со­ров AMD — kvm_amd.

Ядро Linux будет изо­ли­ро­вать создан­ную вир­ту­аль­ную маши­ну памя­ти и про­цес­со­ра в про­цесс, как отдель­ную систему.

Особенности KVM

Вир­ту­а­ли­за­ция KVM предо­став­ля­ет сле­ду­ю­щие функ­ции в про­цес­се виртуализации.

  • Без­опас­ность: KVM исполь­зу­ет ком­би­на­цию SELinux и sVirt для защи­ты и изо­ля­ции вир­ту­аль­ных машин.
  • Хра­не­ние: KVM может исполь­зо­вать локаль­ные или свя­зан­ные с NAS тех­но­ло­гии хра­не­ния с раз­лич­ны­ми фай­ло­вы­ми систе­ма­ми. На дис­ке ВМ хра­нит­ся один или несколь­ко фай­лов со сним­ка­ми, резерв­ны­ми копиями.
  • Аппа­рат­ное обес­пе­че­ние: KVM может исполь­зо­вать самые раз­ные аппа­рат­ные сред­ства, под­дер­жи­ва­е­мые Linux, такие как USB , прин­тер, PCI-устрой­ства и т. Д.
  • Память: KVM насле­ду­ет функ­ции управ­ле­ния памя­тью в Linux, вклю­чая нерав­но­мер­ный доступ к памя­ти и сли­я­ние стра­ниц на одном ядре.
  • Живая мигра­ция: KVM под­дер­жи­ва­ет живую мигра­цию с одно­го хоста вир­ту­а­ли­за­ции на дру­гой хост без пре­ры­ва­ния обслуживания.

Про­ве­рим что про­цес­сор под­дер­жи­ва­ет квм

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

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

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

yum install "@X Window System" xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils -y

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

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

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

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

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

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

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

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

1 : lo : & lt; LOOPBACK , UP , LOWER _ UP & gt ; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00 :00 :00 :00 :00 :00 brd 00 :00 :00 :00 :00 :00 2 : enp0s3 : & lt; BROADCAST , MULTICAST , UP , LOWER _ UP & gt ; mtu 1500 qdisc pfifo _ fast state UP group default qlen 1000 inet 192 . 168 . 1 . 171/24 brd 192 . 168 . 1 . 255 scope global noprefixroute enp0s3 3 : virbr0 : & lt; NO-CARRIER , BROADCAST , MULTICAST , UP & gt ; mtu 1500 qdisc noqueue state DOWN group default qlen 1000 inet 192 . 168 . 122 . 1/24 brd 192 . 168 . 122 . 255 scope global virbr0 4 : virbr0-nic : & lt; BROADCAST , MULTICAST & gt ; mtu 1500 qdisc pfifo _ fast master virbr0 state DOWN group default qlen 1000

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

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

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

для это­го ста­вим на вин­де xming

а в putty пра­вим настройки:





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

… долж­но появить­ся окно virt-manager:


Пра­вый щел­чок на 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


… нажми­те Finish, что­бы пере­опре­де­лить суще­ству­ю­щую кон­фи­гу­ра­цию и создать KVM Linux Bridge.

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


теперь IP назна­ча­ет­ся br-em1, а em1 дей­ству­ет теперь толь­ко как интерфейс):

Для доступа к виртуальным машинам, которые предлагаются через 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 (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 мост настроен, и мы можем продолжить установку виртуалки.

Настройка 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.

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