Virsh

Введение

С гипервизором kvm лично мне приходилось мало работать. Еще в первое мое знакомство с гипервизорами, когда я выбирал, какой использовать в своей работе, kvm мне не понравился вообще по следующим причинам:

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

В итоге я остановился на Xen там, где нужно поставить систему на программный рейд mdadm, и Hyper-V в тех случаях, где рейд либо не нужен совсем, либо он аппаратный. В своей работе так или иначе приходится сталкиваться с различными системами, поэтому разбираться приходится во всем, в том числе и в kvm.

Есть 2 различных способа сделать бэкап виртуальной машины kvm:

  1. С остановкой или заморозкой системы на короткий промежуток времени.
  2. Без остановки системы вообще.

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

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

Файлы Virt[править]

(Для резервного копирования-восстановления)

Файлы Libvirt хранятся в следующих директориях:

  • /var/lib/libvirt
  • /etc/libvirt

Виртуализация

Cloud-init • Docker • Kubernetes • LXC • LXD • Libvirt (Qemu+KVM+Virt-manager) • OpenNebula • OpenNebula/Создание образа • OpenVZ •  • OpenVZ7 • Openstack • PVE • Участник:Petr-akhlamov/VirtualboxLAN • Puppet/Запуск puppetry (пример с libvirt) • Qemu-user-binfmt misc • Starterkits • Starterkits/openstack • Starterkits/p7 • Starterkits/p8 • VDI • VDI/OpenUDS • VirtualBox • VirtualBox/Quick • Vmware •  • Запуск VMware-Player • Контейнеры systemd-nspawn • Настройка сети в KVM • Установка VMware-Workstation

Добавление памяти

To change the memory allocation in a VM, dump the xml as above, then edit your xml to have:

<domain type='kvm'>
  ...
  <memory>262144</memory>
  <currentMemory>262144</currentMemory>
  ...
</domain>

Now define the VM as above. Keep in mind that the memory allocation is in kilobytes, so to allocate 512MB of memory, use 512 * 1024, or 524288.

Изменение модели сетевой карты

kvm and qemu currently default to using the rtl8139 NIC. Supported NICs in Ubuntu 8.04 LTS are i82551, i82557b, i82559er, ne2k_pci, pcnet, rtl8139, e1000, and virtio. To use an alternate NIC, dump the xml as above, then edit your xml to have:

<domain type='kvm'>
  ...
    <interface type='network'>
      ...
      <model type='e1000'/>
    </interface>
  ...
</domain>

Now define the VM as above.

Virtual Machine Manager

The virt-manager package contains a graphical utility to manage local and remote virtual machines. To install virt-manager enter:

Since virt-manager requires a Graphical User Interface (GUI) environment it is recommended to be installed on a workstation or test machine instead of a production server. To connect to the local libvirt service enter:

You can connect to the libvirt service running on another host by entering the following in a terminal prompt:

virt-manager guest lifecycle

When using it is always important to know the context you look at.
The main window initially lists only the currently defined guests, you’ll see their name, state and a small chart on cpu usage.

On that context there isn’t much one can do except start/stop a guest.
But by double-clicking on a guest or by clicking the open button at the top one can see the guest itself. For a running guest that includes the guests main-console/virtual-screen output.

If you are deeper in the guest config a click in the top left onto “show the graphical console” will get you back to this output.

virt-manager guest modification

provides a gui assisted way to edit guest definitions which can be handy.
To do so the per-guest context view will at the top have “show virtual hardware details”.
Here a user can edit the virtual hardware of the guest which will under the cover alter the guest representation.

The UI edit is limited to the features known and supported to that GUI feature. Not only does libvirt grow features faster than virt-manager can keep up — adding every feature would also overload the UI to the extend to be unusable. To strike a balance between the two there also is the XML view which can be reached via the “edit libvirt XML” button.

By default this will be read-only and you can see what the UI driven actions have changed, but one can allow RW access in this view in the preferences.
This is the same content that the of the libvirt-client exposes.

Создание гостевой ОС Windows 10

На главной панели инструментов нажмём кнопку Создать виртуальную машину или выберем одноимённый пункт из меню Файл.

В появившемся окне мастера на первом шаге выберем пункт Локальный ISO или cdrom.

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

На втором шаге мастера нажмём кнопку Обзор, выберем из списка загруженный ранее ISO образ и нажмём Выбор тома.

Оставляем флажок в чекбоксе Automatically detect from installation media/source, чтобы Virt Manager самостоятельно подобрал оптимальные параметры для виртуальной машины и жмём Вперёд.

Установка гостевой ОС из ISO образа

Указываем выделяемый виртуальной машине объём оперативной памяти и количество ядер процессора.

Выбор ресурсов CPU и GPU

Теперь создадим локальный дисковый образ для гостевой ОС.

Выбор пространства данных для VM

Установим флажок в чекбокс Настроить пространство хранения данных, а также точку около пункта Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.

Создание нового тома внутри пула

В левой панели переключимся на пул images, затем нажмём кнопку Создать том.

Создание нового тома

Создадим новый том для гостевой ОС:

  • название — любое, но без пробелов и русских букв;
  • формат — qcow2;
  • максимальный размер — не менее 40 ГБ.

Выбор созданного тома хранения данных

Выберем созданный том в списке и нажмём кнопку Выбор тома.

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

Финальный шаг мастера создания VM

Обязательно установим флажок в Проверить конфигурацию перед установкой и нажмём Готово.

Шаг 1: настраиваем ядро

Проверьте, что у вас свежая версия ядра. Похоже, что опции для GVT-g были включены и до версии 4.8, но тогда они точно работали хуже, поэтому я рекомендую использовать последнее доступное ядро. Если вы достаточно оригинальны, чтобы собирать своё ядро, включите . Также отключите удаление неиспользуемых ksyms, поскольку эта опция вызывает баг.

Теперь нужно поправить аргументы командной строки ядра. Важные опции таковы:

Убедитесь, что вы не переопределили чем-то, что включит загрузку GuC, поскольку это приведёт к удручающему крашу драйвера i915. Когда загрузитесь, зайдите в своё рабочее окружение и проверьте наличие директории . Если её не существует, GVT-g не работает. Проверьте логи и/или поплачьте в подушку.

Как вариант решения проблемы можно добавить модули в initramfs и удалить оттуда i915.

Для более подробного логирования, можно задать переменной какое-нибудь значение, например, установка её в значение 0x02 включит сообщения от драйверов.

Создание виртуальной машины с помощью Virt-manager.

Необходимо создать подключение к гипервизору QEMU/KVM.

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

В данном примере для установки Win10 в качестве гостевой ОС используется базовая конфигурация. Далее будет проделана дополнительная настройка виртуальной машины, чтобы осуществить проброс видеокарты, успешно установить драйвер и обойти нелепые искусственные ограничения Nvidia («ошибка 43» и BSOD из-за отключенного MSI).

Официальный установочный образ Win10 в формате ISO:

Образ будет использоваться для установки с использованием эмуляции CD-ROM.

Файл / Создать виртуальную машину

В методе установки выбрать «Локальный ISO или CDROM»:

Шаг 2.

Выбрать ранее загруженный установочный образ:

В этом же шаге выбрать тип устанавливаемой ОС

Это важно для подтягивания мета-информации, в зависимости от которой предоставляются те или иные настройки в Virt-manager и libvirt. Для отображения полного списка отметить «Include end of life operating systems»:

Шаг 3.

Указать количество ОЗУ и потоков для виртуальной машины.

В данном примере для гостевой ОС будет выделено 16384 Мб из 32768 Мб ОЗУ и 8 из 12 потоков процессора.

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

Шаг 4.

Необходимо указать образ виртуального накопителя, в который будет установлена гостевая (виртуализируемая) ОС.

В libvirt используются специальные хранилища данных, что делает задачу несколько нетривиальной. Ознакомиться можно здесь: https://libvirt.org/storage.html

В примере создаётся хранилище данных с названием pool и типом «Каталог в файловой системе»; в строке Target Path указывается путь до каталога в файловой системе хоста, в котором по итогу расположится хранилище данных.

При выборе места для хранилища стоит учитывать достаточное количество свободного места на физическом накопителе. Для Win10 желательно от 60 Гб.

Хранилище создано. Теперь необходимо создать сам образ виртуального накопителя, в который будет установлена Win10.

Формат: raw. Оптимален для Windows-гостей.

Объём: 60 Гб

Подтвердить создание.

Созданный виртуальный накопитель появится в списке томов. Останется выбрать его.

На этом четвёртый шаг заканчивается.

Шаг 5.

Отметить пункт «Проверить конфигурацию перед установкой»:

Это позволит перейти к непосредственной настройке виртуальной машины.

DNS and DHCP Guests

libvirt uses dnsmasq to hand out IP addresses to guests that are configured to use dhcp. If on your host machine you add 192.168.122.1 (the default IP of your host in libvirt) as your first nameserver in /etc/resolv.conf, then you can do name resolution for your guests. dnsmasq is smart enough to use the other ‘nameserver’ entries in your /etc/resolv.conf for resolving non-libvirt addresses. For example, if your current /etc/resolv.conf is:

search example.com
nameserver 10.0.0.1

Change this to be:

search example.com
nameserver 192.168.122.1
nameserver 10.0.0.1

Now, if you have a virtual machine named ‘hardy-amd64’, after starting it, you can do:

$ host hardy-amd64
hardy-amd64 has address <IP address given by dnsmasq>

Note that when using ssh you may need to use a trailing ‘.’ after the hostname:

$ ssh hardy-amd64.

Finally, for this to work, your guest must send its hostname as part of the dhcp request. This is done automatically on many operating systems. For systems that do not send this automatically and use dhcp3, you can adjust the dhclient.conf file. For example, on Ubuntu 6.06 LTS (Dapper), adjust /etc/dhcp3/dhclient.conf to have:

send host-name "<your guest hostname here>";

IMPORTANT: Depending on your network configuration, your host’s /etc/resolv.conf file might be periodically overwritten. You can edit /etc/resolvconf/resolv.conf.d/head instead to prevent this. If that is not an option you will have to either adjust the dhcp server on your network to hand out the additional libvirt name server for your libvirt hosts, or adjust each host machine accordingly. As there are many possible configurations for host machines, users are encouraged to look at resolvconf and/or man interfaces.

Private Virtual Switch (Guest-Only Network)

If you want to create a virtual network for use only by the Guests and the host then you must proceed as follows (bellow user$ is the CLI prompt for the user with access to KVM and root# is the CLI prompt for the root user)

Create a bridge device to be used by this network (in the example bellow I’m assigning the IP 10.3.11.254 to the Host):

user$ sudo su
root# cat << __EOF__ >> /etc/network/interfaces

#-----------------------
auto privatebr0
iface privatebr0 inet static
        address 10.3.11.254
        netmask 255.255.255.0
        pre-up    brctl addbr privatebr0
        post-down brctl delbr privatebr0
__EOF__
root# /etc/init.d/networking restart

Use virsh to create the private network:

user$ virsh net-list --all  # check existing KVM networks
Name                 State      Autostart
-----------------------------------------
default              active     yes       

user$ echo '<network> <name>privatenet</name> <bridge name="privatebr0" /> </network>' >> /tmp/net.xml
user$ virsh net-define /tmp/net.xml
Network privatenet defined from /tmp/net.xml

user$ virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes       
privatenet           inactive   no        

user$ virsh net-start privatenet
Network privatenet started

user$ virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes       
privatenet           active     no        

user$ virsh net-autostart privatenet
Network privatenet marked as autostarted

user$ virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes       
privatenet           active     yes       

Now you can add a virtual network device to any of you Guests, select «privatenet» as its source device and this guest will be connected to the virtual switch.

Booting Over the Network Using PXE

The Ubuntu releases prior to Karmic (9.10) did not ship pxe binary ROM images. Install kvm-pxe package (from universe) in order to use kvm boot order=nc. Visit http://etherboot.org to learn more about network booting and downloading/creating the appropriate ROM images.

KVM and QEMU can emulate a number of network cards. ROM Files included in kvm-pxe are:

‘KVM Name’ nic,model=

‘Etherboot Identification’

‘Etherboot Filename’

‘KVM filename’

e1000

((e1000:e1000-0x1026 — ))

gpxe-0.9.3-e1000-0x1026.rom

pxe-e1000.bin

ne2k_pci (default)

ns8390:rtl8029 —

gpxe-0.9.3-rtl8029.rom

pxe-ne2k_pci.bin

pcnet

pxe-pcnet.bin

rtl8139

pxe-rtl8139.bin

virtio

pxe-virtio.bin

Other ROM files include:

‘KVM Name’ nic,model=

‘Etherboot Identification’

‘Etherboot Filename’

‘KVM filename’

i82551

pxe-i82551.bin

i82557b

pxe-i82557b.bin

i82559er

pxe-i82559er.bin

ne2k_isa

pxe-ne2k_isa.bin

smc91c111

pxe-smc91c111.bin

lance

pxe-lance.bin

mcf_fec

pxe-mcf_fec.bin

Copy the respective file to /usr/share/kvm and/or /usr/share/qemu.

Подготовка

Самый первый шаг — настройка параметров ядра. Обязательна поддержка и , желательна поддержка туннельных интерфейсов и сетевого моста. Полный список на .

Подготовьте дисковое пространство. Я выделил 70 GiB, и Windows 8.1 за пару месяцев использовала почти 50 GiB так, что для обновления до 10-й версии места на диске не хватило.

Далее, нам понадобится набор редхатовских драйверов . Если у вас установлен RedHat, достаточно запустить

и образ iso будет записан в каталог . Также можно его скачать с репозитариев Fedora.Убедитесь, что поддержка аппаратной виртуализация включена в BIOS/UEFI. Без этого не будет активирован, а выдаст вот такую ошибку.

В качестве проверки можно прочитать файл устройства.

Если файл не обнаружен, а опции ядра выставлены верно, значит дело в настройках .
Устанавливаем нужные пакеты.

Для RedHat 7 достаточно установить только , так как устанавливается по умолчанию.

Дебианщикам надо установить пакет .

Можно теперь переходить к установке.

Как увеличить разрешение экрана VirtualBox в Linux

1. Дополнения гостевой ОС

Первое решение, которое придет в голову — это установить дополнения гостевой ОС VirtualBox, тогда виртуальная машина будет автоматически подхватывать размер окна и в зависимости от него менять разрешение экрана операционной системы. Этот вариант сработает, если только эта проблема не возникла на LiveCD. Для полного запуска дополнений гостевой ОС нужна перезагрузка, а перезагрузка для LiveCD — это обнуление состояния.

Для установки дополнений гостевой ОС можно использовать образ в виртуальной машины, но в Ubuntu лучше выполнить установку из репозиториев:

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

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

2. Настройка расширения по умолчанию

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

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

3. Настройка расширения в системе

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

Осталось нажать кнопку Применить, для того чтобы эти настройки были применены.

4. Настройка расширения с помощью xrandr

Есть еще один способ — с помощью утилиты xrandr. Чаще всего он применяется для LiveCD. Эта утилита позволяет менять настройки экрана, и в том числе разрешение. Для того чтобы посмотреть доступные варианты выполните:

Здесь в самом верху окна терминала, под строчкой Screen: 0 отображается название дисплея, к которому можно применять настройки. В данном случае, это Virtual1. Теперь вы просто можете выбрать нужное разрешение просто передав имя дисплея и имя расширения в команду. Например:

Этот способ должен сработать в большинстве случаев. И после этого разрешение экрана Virtualbox Ubuntu станет пригодным к работе. Если нужного разрешения нет в списке, его необходимо добавить. Подробнее об этом рассказано в статье про управление разрешением экрана Linux. Теперь вы знаете как изменить разрешение виртуального экрана VirtualBox в Linux.

5. Настройка расширения с помощью Grub

Если система использует для загрузки Grub, можно настроить разрешение загружаемой системы с помощью него. Если меню Grub не появляется, но вы знаете что используется именно этот загрузчик, то зажмите перед загрузкой правый Shift. В меню Grub надо отредактировать секцию загрузки. Для этого установите на неё курсор и нажмите клавишу E. В открывшемся тексте найдите строчку, начинающуюся со слов set gfxpayload и замените её значение на нужное разрешение, например:

Для того чтобы продолжить загрузку системы с новым разрешением, нажмите сочетание клавиш Ctrl+X. Если это не LiveCD, а обычная система, то вы можете настроить выбор разрешения при каждой загрузке. Для этого откройте файл /etc/default/grub и пропишите нужное значение в параметре GRUB_GFXPAYLOAD_LINUX:

Затем обновите конфигурацию grub:

6. Настройка разрешения параметром ядра

Если для загрузки ядра используется не Grub, то разрешение экрана можно поменять с помощью параметра ядра. С Grub этот метод может не сработать потому что считается устаревшим в пользу метода описанного выше. Многие LiveCD дистрибутивы позволяют редактировать параметры ядра перед загрузкой с помощью клавиши Tab, нажмите её и добавьте параметр vga=ask:

Для начала загрузки нажмите Enter. Программа попросит вас нажать Enter ещё раз для того чтобы отобразить доступные разрешения:

Выберите разрешение, например, 305 и нажмите Enter. Вот так выполняется настройка разрешения экрана VirtualBox с помощью параметров ядра.

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

Переходим к созданию виртуальных машин, для этого в панели Cockpit переходим к пункту “Virtual Machines”, далее нажимаем на кнопку “Create VM”:

В открывшимся окне в поле “Name” вводим название операционной системы, или же название самой виртуальной машины. Далее, в поле “Installation Source” необходимо указать путь к ISO образу дистрибутива, это можно сделать вручную, либо, нажать на галочку в данном пункте в правой стороне поля:

Теперь давайте установим “virt-manager”, о котором писалось выше. Он позволит вам управлять виртуальными машинами KVM. Для его установки вводим команду:

После установки вы найдете virt-manager в установленных программах, он будет называться “Менеджер виртуальных машин”. После его запуска в окне программы увидите ваши виртуальные машины:

Возможно, вам так же необходимо будет добавить вашего пользователя в группу “libvirt” и “kvm”, у меня такой необходимости не было, но, на всякий пожарный как говорится…Для этого вводим команды:

Базовые команды управления ВМ

1. Получить список созданных машин:

virsh list —all

2. Включить / перезагрузить / выключить.

а) включить виртуальную машину можно командой:

virsh start FirstTest

* где FirstTest — имя созданной машины.

б) перезагрузить:

virsh reboot FirstTest

* посылает команду операционной системе на корректную перезагрузку.

в) выключить корректно:

virsh shutdown FirstTest

* посылает команду операционной системе на корректное выключение.

г) выключить принудительно:

virsh destroy FirstTest

* грубо выключает ВМ. Может привести к потере данных. Способ стоит применять при полном зависании виртуалки.

д) приостановить:

virsh suspend FirstTest

Для возобновления работы вводим команду:

virsh resume FirstTest

е) отправить команду всем гостевым операционным системам:

for i in $(virsh list —name —state-shutoff); do virsh start $i; done

for i in $(virsh list —name —state-running); do virsh shutdown $i; done

* первыя команда запустит все ВМ, вторая — отправит команду на выключение.

3. Разрешаем автостарт для созданной ВМ:

virsh autostart FirstTest

4. Удаление виртуальной машины:

Удаляем виртуальную машину:

virsh undefine FirstTest

Удаляем виртуальный жесткий диск:

\rm /kvm/images/FirstTest-disk1.img

* где /kvm/images — папка, где хранится диск; FirstTest-disk1.img — имя виртуальног диска для удаленной машины.

5. Редактирование конфигурации виртуальной машины:

Открыть редактор для изменения конфигурации:

virsh edit FirstTest

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

а) изменить количество процессоров:

virsh setvcpus FirstTest 2 —config —maximum

virsh setvcpus FirstTest 2 —config

б) изменить объем оперативной памяти:

virsh setmaxmem FirstTest 2G —config

virsh setmem FirstTest 2G —config

6. Работа со снапшотами

а) Создать снимок виртуальной машины можно командой:

virsh snapshot-create-as —domain FirstTest —name FirstTest_snapshot_2020-03-21

* где FirstTest — название виртуальной машины; FirstTest_snapshot_2020-03-21 — название для снапшота.

б) Список снапшотов можно посмотреть командой:

virsh snapshot-list —domain FirstTest

* данной командой мы просмотрим список всех снапшотов для виртуальной машины FirstTest.

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

virsh shutdown FirstTest

После вводим:

virsh snapshot-revert —domain FirstTest —snapshotname FirstTest_snapshot_2020-03-21 —running

* где FirstTest — имя виртуальной машины; FirstTest_snapshot_2020-03-21 — имя созданного снапшота.

г) Удалить снапшот можно так:

virsh snapshot-delete —domain FirstTest —snapshotname FirstTest_snapshot_2020-03-21

7. Клонирование виртуальных машин

Для примера, склонируем виртуальную машину FirstTest и создадим новую SecondTest.

Для начала, мы должны остановить виртуалку:

virsh suspend FirstTest

После можно клонировать:

virt-clone —original FirstTest —name SecondTest —file /kvm/images/SecondTest-disk1.img

* итого, мы склонируем виртуальную машину FirstTest. Новая машина будет иметь название SecondTest, а путь до диска будет /kvm/images/SecondTest-disk1.img.

Восстанавливаем работу FirstTest:

virsh resume FirstTest

Creating a network bridge on the host

You can set up your system to boot with a bridge. This works well, but does disable network manager so may not be best for desktops. You can also create a bridge on demand. This allows network manager to stay, but you have to remember to start the bridge before starting the VMs which use it. (Autostarted VMs can not use this)

Creating a bridge on demand

  • You can do this from the command line or a script. Details are covers on the Network Connection Bridge page.

  • You can use Network Manger to set up your bridge. This is covered in a website at ask.xmodulo.com/configure-linux-bridge-network-manager-ubuntu.html.

Creating a persistent bridge

Install the bridge-utils package:

sudo apt-get install bridge-utils

We are going to change the network configuration. This assumes you are not using NetworkManager to control your network cards (eth0 in the example’s case). If you are using NetworkManager, and want to continue to do so, do not use this method. Modifying /etc/network/interfaces will disable Network Manager on the next reboot.

If you are on a remote connection, and so cannot stop networking, go ahead with the following commands, and use sudo invoke-rc.d networking restart or sudo reboot at the end. If you make a mistake, though, it won’t come back up.

To set up a bridge interface, edit /etc/network/interfaces and either comment or replace the existing config with (replace with the values for your network):

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 192.168.0.5 8.8.8.8
        dns-search example.com
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

Note: the lines auto eth0 and iface eth0 inet manual are not in the file. This is because br0 will bring up the components assigned to it.

bridge_stp off is a setting for spanning tree. If you have a possibility for network looks, you may want to turn this on.

bridge_fd 0 turns off all forwarding delay. If you do not know what this is, you probably do not need it.

bridge_maxwait 0 is how long the system will wait for the Ethernet ports to come up. Zero is no wait.

For DHCP, use;

auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

This will create a virtual interface br0. You can have multiple bridges, and some need not have any actual network card assigned.

Now restart networking:

sudo /etc/init.d/networking restart

Or

sudo reboot

If your VM host «freezes» for a few seconds after starting or stopping a KVM guest when using bridged networking, it is because a Linux bridge will take the hardware address of the lowest numbered interface out of all of the connected interface. To work around this, add the following to your bridge configuration:

post-up ip link set br0 address f4:6d:04:08:f1:5f

and replace f4:6d:04:08:f1:5f with the hardware address of a physical ethernet adapter which will always be part of the bridge.

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

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

# virsh vncdisplay test-centos

1 root@local vz# virsh vncdisplay test-centos

IP:0

1 IP

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

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

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

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

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

# virsh shutdown test-centos

1 # virsh shutdown test-centos

Чтобы вывести список всех зарегистрированных виртуальных машин KVM:

# virsh list —all

1 # virsh list —all

Если вы предпочитаете графической управление, можете испольховат графическую консоль KVM — virt-manager.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: