Руководство по настройке KVM виртуализации на CentOS 7 с программным коммутатором Open vSwitch
Установка Open vSwitch
Open vSwitch — программный многоуровневый коммутатор с открытым исходным кодом, предназначенный для работы в гипервизорах и на компьютерах с виртуальными машинами.
Имея один активный физический интерфейс на сервере, базовая конфигурация Open vSwitch будет выглядеть следующим образом:
Добавляем бридж и в него добавляем наш физический интерфейс:
ovs-vsctl add-br ovs-br0 |
Проверяем:
# ovs-vsctl show |
Вносим изменения в настройки интерфейсов:
/etc/sysconfig/network-scripts/ifcfg-eno1TYPE=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-br0DEVICE=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"
Перезагружаем сеть.
systemctl restart network.service |
Установка представлена в статье Установка OpenvSwitch в CentOS
Установка необходимых пакетов и инструментов виртуализации
yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install |
Создаем каталог для хранения образов виртуальных серверов и образов ОС:
mkdir /home/vm |
Для удобства я использую симлинки в директорию пользователя:
cd /var |
А также создаем отдельную папку под конфигурацию:
mkdir /home/config |
Создание виртуального сервера
Создаем тестовый сервер с настройками по умолчанию. Не забываем загрузить образ системы, которую будем устанавливать.
virt-install |
Команды можно вводить одной строкой.
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
: Указываем что подключено при загрузке
После запуска можем наблюдать приблизительно следующую информацию:
Запуск установки... |
В настройках при создании сервера мы указали что можем подключатся к терминалу через VNC ключом --graphics vnc,password=password
. Подключаемся. Узнать порт, который был назначен виртуальном серверу можно командой:
virsh vncdisplay TesVM |
Порт VNC как правило 5900+0=5900
. Если результат предыдущей команды был 127.0.0.1:1
, то порт VNC будет 5901
. И так далее..
Подключаться к порту необходимо по IP хост-сервера.
В случае успешной установки ОС, в консоли хоста наблюдаем следующие сообщения:
Работа домена завершена. Продолжение... |
Настроить libvirt для работы с OvS можно только через редактирование конфигурационного XML виртуального сервера.
virsh edit <vm> |
Находим секцию конфигурации сети нашего виртуального сервера:
<interface type='network'> |
И приводим её к следующему виду:
<interface type='bridge'> |
После запуска виртуального сервера проверяем конфигурацию OvS и наблюдаем успешное добавление порта:
# ovs-vsctl show |
Управление виртуальными серверами
Просмотр текущих виртуальных серверов.
# virsh list --all |
Включение виртуального сервера.
virsh start TestVM |
Отключение виртуального сервера.
virsh shutdown TestVM |
Имитация отключения кабеля питания.
virsh destroy TestVM |
Приостановка работы сервера.
virsh suspend TestVM |
Подключение ISO-образа к виртуальному серверу.
virsh attach-disk TestVM /home/iso/CentOS-7-x86_64-Minimal-1511.iso hda --type cdrom --mode readonly |
Отключение ISO-образа
(Не физическое удаление устройства, а извлечение диска)
virsh attach-disk TestVM "" hda --type cdrom --mode readonly |
Автоматический запуск виртуального сервера при старте хост системы:
virsh autostart TestVM |
Отключить автозапуск для сервера:
virsh autostart TestVM --disable |
Работа со снепшотами
Cоздать снепшот виртуальной машины:
virsh snapshot-create <VM_NAME> |
Откатиться к нужному снепшоту:
virsh snapshot-revert TestVM <номер снепшота вм> |
virsh snapshot-list <имя вм> - список снепшотов для указанной ВМ |
Изменение параметров виртуального сервера
Параметры виртуального сервера можно изменять редактируя XML-файл.
Первый вариант - сохранить конфигурацию в XML формате:
virsh dumpxml TestVM > TestVM.xml |
Затем загрузить её обратно:
virsh define TestVM.xml.xml |
Второй вариант - использовать команду virsh edit
. При использовании команды конфигурационный файл сервера будет открыт в системном редакторе по умолчанию, а по завершении редактирования автоматически сохранит конфигурацию.
virsh edit TestVM |
На этом базовое знакомство с KVM завершено.
Более подробная информация по настройке и работе с KVM будет опубликована в последующих статьях.