Базовая настройка виртуализации KVM с OvS на CentOS 7

Базовая настройка виртуализации KVM с OvS на CentOS 7

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Руководство по настройке KVM виртуализации на CentOS 7 с программным коммутатором Open vSwitch

Установка Open vSwitch

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

Имея один активный физический интерфейс на сервере, базовая конфигурация Open vSwitch будет выглядеть следующим образом:

Добавляем бридж и в него добавляем наш физический интерфейс:

1
2
ovs-vsctl add-br ovs-br0
ovs-vsctl add-port ovs-br0 eno1

Проверяем:

1
2
3
4
5
6
7
8
9
# ovs-vsctl show
393b7f74-1112-4a02-a2c7-8fbd8fbdfe01
Bridge "ovs-br0"
Port "ovs-br0"
Interface "ovs-br0"
type: internal
Port "eno1"
Interface "eno1"
ovs_version: "2.5.0"

Вносим изменения в настройки интерфейсов:

/etc/sysconfig/network-scripts/ifcfg-eno1

1
2
3
4
5
6
7
8
TYPE=OVSPort
DEVICETYPE=OVSIntPort
OVS_BRIDGE=ovs-br0
NAME=eno1
UUID=dd849b3c-5fae-4f33-bc40-e7bbb4eba55b
DEVICE=eno1
ONBOOT=yes
IPV6INIT=no

/etc/sysconfig/network-scripts/ifcfg-ovs-br0

1
2
3
4
5
6
7
8
9
10
11
DEVICE=ovs-br0		
NM_CONTROLLED=no
PEERDNS=yes
ONBOOT=yes
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=XX.XX.XX.XX
NETMASK=255.255.255.0
GATEWAY=X.XX.XX.XX
DNS1=X.XX.XX.XX
HOTPLUG="no"

Перезагружаем сеть.

1
systemctl restart network.service

Установка представлена в статье Установка OpenvSwitch в CentOS

Установка необходимых пакетов и инструментов виртуализации

1
yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

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

1
2
mkdir /home/vm
mkdir /home/iso

Для удобства я использую симлинки в директорию пользователя:

1
2
3
cd /var
ln -s /home/vm
ln -s /home/iso

А также создаем отдельную папку под конфигурацию:

1
mkdir /home/config

Создание виртуального сервера

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

1
2
3
4
5
6
7
8
9
virt-install 
--network network=default
--name TestVM
--ram=1024
--vcpus=1
--disk path=/var/vm/testvm.img,size=20,format=qcow2
--graphics vnc,password=password
--cdrom /var/iso/CentOS-7-x86_64-Minimal-1511.iso
--boot cdrom,hd,menu=on

Команды можно вводить одной строкой.

1
virt-install --network network=default --name TestVM --ram=1024 --vcpus=1 --disk path=/var/vm/testvm.img,size=20,format=qcow2 --graphics vnc,password=password --cdrom /var/iso/CentOS-7-x86_64-Minimal-1511.iso --boot cdrom,hd,menu=on 

Базовые параметры:

--network network=default: Подключаем виртуальный сервер к виртуальной сети с именем default
--name: Указываем имя виртуального сервера
--ram=: Указываем размер выделяемой оперативной памяти для сервера
--vcpus=: Указываем количество процессоров которое выделяем для сервера
--disk: Указываем расположение, формат и размер виртуального диска
--graphics vnc,password=password: Указываем пароль и возможность подключатся к терминалу виртуального сервера через VNC
--cdrom: Указываем расположение образа с которого будем устанавливать систему
--boot: Указываем что подключено при загрузке

После запуска можем наблюдать приблизительно следующую информацию:

1
2
3
4
Запуск установки...
Выделение ресурсов «testvm.img»... | 20 GB 00:00:00
Создание домена... | 0 B 00:00:00
Установка домена продолжается. Ожидание до завершения установки...

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

1
virsh vncdisplay TesVM

Порт VNC как правило 5900+0=5900. Если результат предыдущей команды был 127.0.0.1:1, то порт VNC будет 5901. И так далее..
Подключаться к порту необходимо по IP хост-сервера.

В случае успешной установки ОС, в консоли хоста наблюдаем следующие сообщения:

1
2
3
Работа домена завершена. Продолжение...
Домен создан.
Перезапуск гостевой системы...

Настроить libvirt для работы с OvS можно только через редактирование конфигурационного XML виртуального сервера.

1
virsh edit <vm>

Находим секцию конфигурации сети нашего виртуального сервера:

1
2
3
4
5
6
<interface type='network'>
<mac address='52:54:00:15:78:4e'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

И приводим её к следующему виду:

1
2
3
4
5
6
7
<interface type='bridge'>
<mac address='52:54:00:15:78:4e'/>
<source bridge='ovs-br0'/>
<virtualport type='openvswitch'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

После запуска виртуального сервера проверяем конфигурацию OvS и наблюдаем успешное добавление порта:

1
2
3
4
5
6
7
8
9
10
11
#  ovs-vsctl show
393b7f74-1112-4a02-a2c7-8fbd8fbdfe01
Bridge "ovs-br0"
Port "vnet0"
Interface "vnet0"
Port "ovs-br0"
Interface "ovs-br0"
type: internal
Port "eno1"
Interface "eno1"
ovs_version: "2.5.0"

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

Просмотр текущих виртуальных серверов.

1
2
3
4
5
# virsh list --all
ID Имя Статус
----------------------------------------------------
- TestVM выключен

Включение виртуального сервера.

1
virsh start TestVM

Отключение виртуального сервера.

1
virsh shutdown TestVM

Имитация отключения кабеля питания.

1
virsh destroy TestVM

Приостановка работы сервера.

1
virsh suspend TestVM

Подключение ISO-образа к виртуальному серверу.

1
virsh attach-disk TestVM /home/iso/CentOS-7-x86_64-Minimal-1511.iso hda --type cdrom --mode readonly

Отключение ISO-образа
(Не физическое удаление устройства, а извлечение диска)

1
virsh attach-disk TestVM "" hda --type cdrom --mode readonly

Автоматический запуск виртуального сервера при старте хост системы:

1
virsh autostart TestVM

Отключить автозапуск для сервера:

1
virsh autostart TestVM --disable

Работа со снепшотами

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

1
virsh snapshot-create <VM_NAME>

Откатиться к нужному снепшоту:

1
virsh snapshot-revert TestVM <номер снепшота вм>  
1
virsh snapshot-list <имя вм> - список снепшотов для указанной ВМ

Изменение параметров виртуального сервера

Параметры виртуального сервера можно изменять редактируя XML-файл.

Первый вариант - сохранить конфигурацию в XML формате:

1
virsh dumpxml TestVM > TestVM.xml

Затем загрузить её обратно:

1
virsh define TestVM.xml.xml

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

1
virsh edit TestVM

На этом базовое знакомство с KVM завершено.
Более подробная информация по настройке и работе с KVM будет опубликована в последующих статьях.