Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Сборник небольших "how to" для разных задач администрирования ПК СВ "Брест".

Table of Contents

Общее

Изменение или добавление пути хранения образов дисковых устройств

По-умолчанию образы виртуальных жестких дисков хранятся по пути /var/lib/libvirt/images.

При инициализации ОС на данный путь накладывается мандатные метки, категории и флаг CCNRA: 

Code Block
languagexml
drwx--x--xm-- 2 root root Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA /var/lib/libvirt/images/

...

  • Для добавления пользователя (testuser) на фронтальной машине выполнить команду:

    Code Block
    languagexml
    sudo 

...

Часто возникает необходимость разместить образы дисков по другому пути, например, на дополнительном жестком диске или примонтированном удаленном хранилище.

Запуск ВМ с образом из такого хранилища приведет к следующей ошибке:

Image Removed

Для решения этой проблемы необходимо внести изменения в скрипт /usr/sbin/pdp-init-libvirt, добавив конечный путь хранения образов, а также все вышестоящие каталоги.

В данном примере файл образа диска размещался по пути /tmp/tmp/

...

titleПоэтому скрипт после изменения должен выглядеть так (нажать для раскрытия):

или через Network Manager, если установлен он (не рекомендуется для серверной виртуализации):

Expand

добавить соединение типа "Мост", нажать "Создать"

Image Removed

указать в поле "Interface name" значение "bridge0"

Image Removed

нажать "добавить", выбрать "Ethernet", нажать "Создать"
Image Removed
выбрать в поле "device" нужный физический сетевой адаптер, нажать "сохранить":
Image Removed
если необходимо - установить IP адрес для моста во вкладке "Параметры IPv4" (будет виден из внешних сетей):
Image Removed

Запустить "Менеджер виртуальных машин", открыть существующую ВМ, или создать новую.

Нажать в меню "Вид" - "Подробности", перейти к настройке сетевого адаптера.

Переключить режим на "Общее устройство", и поле "Имя моста" вписать "bridge0":

Image Removed

Сетевой трафик ВМ будет доступен с хостовой ОС для адаптера eth0, а также для внешних сетей, к которым подключен eth0

Серверная виртуализация

Удаленный проброс USB-устройств в виртуальную машину

Для удаленной работы пользователя с ВМ возможно подключение USB-устройства пользователя к ВМ.

Для этого необходимо использовать протокол SPICE и утилиту virt-viewer в качестве интерфейса взаимодействия с ВМ:

  1. На сервере виртуализации запустить Менеджер виртуальных машин (virt-manager);
  2. В свойствах ВМ перейти во вкладку "Дисплей" и выбрать тип сервера SPICE;
  3. Во вкладке "Контроллер USB" выбрать необходимое поколение контроллера.

При подключении с рабочего места командной:

Code Block
languagexml
virt-viewer -c qemu+tcp://<Имя пользователя>@<IP адрес или DNS имя хоста подключения>/system <Имя виртуальной машины>

возможен проброс USB устройств через меню "Файл" - "USB device selection"

Облачная виртуализация

Клонирование ВМ

Схема клонирования ВМ в OpenNebula предполагает следующую последовательность действий:

  1. создание шаблона на основе существующей ВМ
  2. развертывание новой или нескольких ВМ на основе этого шаблона

Более подробно:

  1. В свойствах ВМ, находящейся в выключенном состоянии, нажать значок дискеты ("Save as template");
  2. ВМ перейдет в статус "HOTPLUG", затем, через некоторое время) в "POWEROFF".
  3. После этого в списке шаблонов появится новый шаблон, а в списке дисковых образов - новый диск.
  4. На основе нового шаблона необходимо создать новую (новые) ВМ.
  5. В свойствах новых ВМ необходимо отключить старый (оригинальный) образ диска и подключить новый.

Шейпинг сетевого и дискового ввода-вывода ВМ

В OpenNebula на уровне шаблона ВМ возможно ограничение полосы пропускания дисковой и/или сетевой подсистемы ВМ. Для этого:

  1. Перейти в Tamplates - VMs, создать шаблон ВМ
  2. Настроив основные параметры на вкладке "General", перейти во вкладку "Storage", выбрать диск и раскрыть "Advanced options":

Image Removed
3. Ограничить полосу дискового ввода-вывода, выставив в "IO throttling (bytes/s)" значение
Image Removed
4. перейти во вкладку "Network". Выбрать сеть и раскрыть "Advanced options":
Image Removed
5. выставить в полях "Override Network Inbound Traffic QoS" и "Override Network Outbound Traffic QoS" значения
Image Removed
6. Закончить создание шаблона, нажав "Create". Созданные далее на основе шаблона виртуальные машины получают одинаковые настройки ограничения дискового и сетевого ввода-вывода. Для индивидуальной настройки ограничения сетевого и/или дискового ввода-вывода для отдельных ВМ необходимо приготовить индивидуальный шаблон ВМ.

сети

настройка VLAN

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

  1. перейти во вкладку Virtual Networks
  2. создать новую сеть, дать ей имя
  3. далее во вкладке"Conf":
    в поле "Network mode" выбрать 802.1Q;
    в поле "Physical device" указать мост хоста, в который будут передаваться пакеты виртуальной сети;
    в поле "VLAN ID" выбрать "Manual VLAN ID";
    в появившемся ниже поле указать номер VLAN.
  4. во вкладке "Addresses" создать необходимые диапазоны IP или MAC
  5. нажать Create

Виртуальные машины, присоединенные к этой сети будут доступны друг другу без необходимости настройки VLAN в них (как будто им предоставлены Access-порты коммутатора). Но трафик этой сети будет передаваться в хостовую ОС уже с указанной меткой VLAN.

поддержка Open vSwitch

OpenNebula поддерживает работу с программным коммутатором Open vSwitch. Для подготовки на узлах виртуализации нужно установить Open vSwitch и создать виртуальные коммутаторы с одинаковым именем (например ovs-sw0):

Code Block
languagexml
sudo apt install openvsitch-switch
sudo ovs-switch add-br ovs-sw0
  1. далее войти в OpenNebula, перейти во вкладку Virtual Networks
  2. создать новую сеть, дать ей имя
  3. перейти во вкладку "Conf":
    в поле "Bridge" указать "ovs-sw0"
    в поле "Network mode" выбрать "Open vSwitch";
    в поле "VLAN ID" указать "No VLAN network";
  4. во вкладке "Addresses" создать необходимые диапазоны IP или MAC
  5. нажать Create

Подключенные к данной сети виртуальные машины при запуске будут автоматически подключаться к виртуальному коммутатору ovs-sw0, что можно проверить командой на узле виртуализации:

Code Block
languagexml
sudo ovs-vsctl show
c872cf2e-ffd2-46e8-ba81-d7f965121e87
    Bridge "ovs-sw0"
        Port "one-13-2"
            Interface "one-13-2"
        Port "ovs-sw0"
            Interface "ovs-sw0"
                type: internal
    ovs_version: "2.6.2"
  • brestuser create testuser

    в запросе сценария добавления пользователя на вопрос будет ли пользователь администратором ответить Нет

    Code Block
    languagexml

...

#!/bin/bash

sysmaxlbl=`pdp-ls -Mdn / | awk '{ print $5 }' | awk -F":" '{ print $1":"$2":"$3 }'`

# for libvirt
LIBVIRT_DIRS="\
/var/ \
/var/lib/ \
/var/lib/libvirt/ \
/var/lib/libvirt/nvram \
/var/lib/libvirt/images \
/var/lib/libvirt/runimages \
/var/lib/libvirt/qemu/   \
/var/lib/libvirt/qemu/channel/ \
/var/lib/libvirt/qemu/channel/target/ \
/var/lib/libvirt/qemu/save/ \
/var/lib/libvirt/qemu/snapshot/ \
/run/ \
/var/run/libvirt/ \
/var/run/libvirt/qemu/   \
##########################################################################################################
### Здесь и далее до кавычек необходимо построчно вписать все необходимые каталоги начиная с родительских,
### добавляя через пробел обратный слеш после пути к каталогу.
### Для примера представлен каталог /tmp/tmp/ :
##########################################################################################################
/tmp/ \
/tmp/tmp/ \
"
for dir in ${LIBVIRT_DIRS}; do
    [ ! -e "${dir}" ] || pdpl-file "$sysmaxlbl:CCNRA" "${dir}"
done

lsmod | grep kvm
if [ "x$?" == "x0"  ]; then
        pdpl-file 0:0:0:ehole /dev/kvm
fi

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

Локальная виртуализация

сеть

подключение ВМ к физической сети хоста

на хосте создать сетевой мост, включить в него необходимый сетевой порт хоста (в примере - eth0):

через файл /etc/network/interfaces (на хосте, до инициализации сетевого соединения (!!!), должен быть установлен пакет bridge-utils):

Code Block
languagexml
auto bridge0
iface bridge0 inet static
	bridge_ports eth0
	address x.x.x.x
	netmask x.x.x.x
  • Пользователь будет администратором (по умолчанию Нет)?
    Нет|Да: Нет


  • Убедиться, что пользователь создан
    Image Added

  • Во вкладке "Security", назначаемой пользователю ВМ добавить права на управление
    Image Added

  • Войти в систему пользователем testuser и перейти на вкладку VMs
    Image Added

  • Выбрать назначенную ВМ
    Image Added
  • Запустить ВМ и дождаться статуса RUNNING, нажимая кнопку обновить Image Added
    Image Added
    Image Added
  • Можно открывать клиент нажав кнопку Image Added
  • Выбрать открытие ВМ с помощью "Brest Virt Viewer"
    Image Added
  • Image Added

  • Откроется окно с запущенной ВМ
    Image Added