Download PDF
Download page Сборник небольших "how to" для разных задач администрирования ПК СВ "Брест".
Сборник небольших "how to" для разных задач администрирования ПК СВ "Брест"
Общие задачи
Изменение или добавление пути хранения образов дисковых устройств
По-умолчанию образы виртуальных жестких дисков хранятся в каталоге /var/lib/libvirt/images. При использовании Astra Linux Special Edition при инициализации ОС этому каталогу присваивается метка безопасности:
drwx--x--xm-- 2 root root Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA /var/lib/libvirt/images/
Проверить значение метки безопасности можно командой:
sudo pdp-ls -Md /var/lib/libvirt/images/
Часто возникает необходимость разместить образы дисков по другому пути, например, на дополнительном жестком диске или примонтированном удаленном хранилище. Запуск ВМ с образом из такого хранилища приведет к следующей ошибке:
Для решения этой проблемы необходимо внести изменения в сценарий /usr/sbin/pdp-init-libvirt, добавив конечный путь хранения образов, а также все вышестоящие каталоги.
Например, файл образа диска размещается по пути /tmp/tmp/
#!/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):
auto bridge0 iface bridge0 inet static bridge_ports eth0 address x.x.x.x netmask x.x.x.x
XMLили через Network Manager, если он установлен (не рекомендуется для серверной виртуализации):
добавить соединение типа "Мост", нажать "Создать"
указать в поле "Interface name" значение "bridge0"
нажать "добавить", выбрать "Ethernet", нажать "Создать"
выбрать в поле "device" нужный физический сетевой адаптер, нажать "сохранить":
если необходимо - установить IP адрес для моста во вкладке "Параметры IPv4" (будет виден из внешних сетей):
Запустить "Менеджер виртуальных машин", открыть существующую ВМ, или создать новую.
Нажать в меню "Вид" - "Подробности", перейти к настройке сетевого адаптера.
Переключить режим на "Общее устройство", и поле "Имя моста" вписать "bridge0":
Сетевой трафик ВМ будет доступен с хостовой ОС для адаптера eth0, а также для внешних сетей, к которым подключен eth0
Серверная виртуализация
Удаленный проброс USB-устройств в виртуальную машину
Для удаленной работы пользователя с ВМ возможно подключение USB-устройства пользователя к ВМ.
Для этого необходимо использовать протокол SPICE и утилиту virt-viewer в качестве интерфейса взаимодействия с ВМ:
- На сервере виртуализации запустить Менеджер виртуальных машин (virt-manager);
- В свойствах ВМ перейти во вкладку "Дисплей" и выбрать тип сервера SPICE;
- Во вкладке "Контроллер USB" выбрать необходимое поколение контроллера.
При подключении с рабочего места командной:
virt-viewer -c qemu+tcp://<Имя пользователя>@<IP адрес или DNS имя хоста подключения>/system <Имя виртуальной машины>
возможен проброс USB устройств через меню "Файл" - "USB device selection"
Облачная виртуализация
Клонирование ВМ
Схема клонирования ВМ в OpenNebula предполагает следующую последовательность действий:
- создание шаблона на основе существующей ВМ
- развертывание новой или нескольких ВМ на основе этого шаблона
Более подробно:
- В свойствах ВМ, находящейся в выключенном состоянии, нажать значок дискеты ("Save as template");
- ВМ перейдет в статус "HOTPLUG", затем, через некоторое время) в "POWEROFF".
- После этого в списке шаблонов появится новый шаблон, а в списке дисковых образов - новый диск.
- На основе нового шаблона необходимо создать новую (новые) ВМ.
- В свойствах новых ВМ необходимо отключить старый (оригинальный) образ диска и подключить новый.
Шейпинг сетевого и дискового ввода-вывода ВМ
В OpenNebula на уровне шаблона ВМ возможно ограничение полосы пропускания дисковой и/или сетевой подсистемы ВМ. Для этого:
- Перейти в Tamplates - VMs, создать шаблон ВМ
- Настроив основные параметры на вкладке "General", перейти во вкладку "Storage", выбрать диск и раскрыть "Advanced options":
3. Ограничить полосу дискового ввода-вывода, выставив в "IO throttling (bytes/s)" значение
4. перейти во вкладку "Network". Выбрать сеть и раскрыть "Advanced options":
5. выставить в полях "Override Network Inbound Traffic QoS" и "Override Network Outbound Traffic QoS" значения
6. Закончить создание шаблона, нажав "Create". Созданные далее на основе шаблона виртуальные машины получают одинаковые настройки ограничения дискового и сетевого ввода-вывода. Для индивидуальной настройки ограничения сетевого и/или дискового ввода-вывода для отдельных ВМ необходимо приготовить индивидуальный шаблон ВМ.
Настройка сети
Настройка VLAN
OpenNebula имеет возможность помечать сетевые пакеты виртуальных машин VLAN-тэгами перед передачей их в сетевую карту хостовой системы. Для этого необходимо создать новую виртуальную сеть:
- перейти во вкладку Virtual Networks
- создать новую сеть, дать ей имя
- далее во вкладке"Conf":
в поле "Network mode" выбрать 802.1Q;
в поле "Physical device" указать мост хоста, в который будут передаваться пакеты виртуальной сети;
в поле "VLAN ID" выбрать "Manual VLAN ID";
в появившемся ниже поле указать номер VLAN. - во вкладке "Addresses" создать необходимые диапазоны IP или MAC
- нажать Create
Виртуальные машины, присоединенные к этой сети будут доступны друг другу без необходимости настройки VLAN в них (как будто им предоставлены Access-порты коммутатора). Но трафик этой сети будет передаваться в хостовую ОС уже с указанной меткой VLAN.
Поддержка Open vSwitch
OpenNebula поддерживает работу с программным коммутатором Open vSwitch. Для подготовки на узлах виртуализации нужно установить Open vSwitch и создать виртуальные коммутаторы с одинаковым именем (например ovs-sw0):
sudo apt install openvswitch-switch
sudo ovs-vsctl add-br ovs-sw0
- далее войти в OpenNebula, перейти во вкладку Virtual Networks
- создать новую сеть, дать ей имя
- перейти во вкладку "Conf":
в поле "Bridge" указать "ovs-sw0"
в поле "Network mode" выбрать "Open vSwitch";
в поле "VLAN ID" указать "No VLAN network"; - во вкладке "Addresses" создать необходимые диапазоны IP или MAC
- нажать Create
Подключенные к данной сети виртуальные машины при запуске будут автоматически подключаться к виртуальному коммутатору ovs-sw0, что можно проверить командой на узле виртуализации:
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"