Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1
- Astra Linux Common Edition Орел 2.12
Установка QEMU/KVM в Astra Linux SE РУСБ.10015-01 (очередное обновление 1.6), РУСБ.10015-16 исп. 1 и Astra Linux CE Орел 2.12
Для автоматизированной установки пакета Virt-manager (KVM) в дистрибутивы Astra Linux включен пакет astra-kvm.
Пакет может быть установлен с помощью графического менеджера пакетов или из командной строки командой
При установке пакетов текущий пользователь будет автоматически добавлен в группы:
- kvm;
- libvirt
- libvirt-qemu»
Других пользователей, которые должны работать с виртуализацией, следует добавить в указанные группы вручную:
Для хранения данных виртуальных машин при установке пакетов автоматически создается пул данных. По умолчанию этот пул данных располагается в каталоге /var/lib/libvirt/images.
Особенности установки QEMU/KVM в Astra Linux Special Edition
При использовании виртуализации QEMU/KVM в Astra Linux Special Edition для обеспечения работы с виртуальными машинами, поддерживающими ненулевые мандатные метки, все пулы данных должен находиться на файловых системах, поддерживающих работу с мандатными атрибутами (Ext4, cepfs, ocfs2).
При установке QEMU/KVM в Astra Linux Special Edition каталогу /var/lib/libvirt/images автоматически назначаются мандатные атрибуты, достаточные для размещения в нём данных с ненулевыми мандатными метками:
drwx--x--xm-- 2 root root Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr /var/lib/libvirt/images
Установка QEMU/KVM в предыдущих версиях Astra Linux
Работа с QEMU/KVM
Создание собственных пулов для пользователей
При работе с Astra Linux Specail Edition образы дисков виртуальных машин (в том числе загрузочные образы для установки ОС на виртуальных машинах) регистрируются в системе виртуализации как файловые объекты с высоким уровнем конфиденциальности.
При этом все вышележащие каталоги в файловой системе также автоматически получают высокий уровень конфиденциальности. В связи с этим не рекомендуется размещать образы дисков в домашних каталогах пользователей, так как присвоение высокого уровня конфиденциальности домашнему каталогу существенно затруднит работу пользователя - владельца этого каталога.
Для создания собственного пула пользователя следует создать каталог, доступный этому пользователю, например:
sudo chmod 750 /vrt/pool1
sudo chown <имя_пользователя> /vrt/pool1
Дальнейшие действия выполнять от имени пользователя - владельца пула.
Создать пул в ранее созданных каталогах можно следующими командами:
virsh -c qemu:///system pool-build pool1
virsh -c qemu:///system pool-start pool1
virsh -c qemu:///system pool-autostart pool1
virsh -c qemu:///system pool-list --all
При работе в Astra Linux Special Edition при создание пула необходимые мандатные атрибуты будут присвоены ему автоматически (при условии, что на ОС установлено обновление безопасности БЮЛЛЕТЕНЬ № 20190222SE16). Проверить мандатные атрибуты пула можно командой:
Создать и запустить виртуальную машину с образом диска, расположенным в ранее созданном пуле командой:
virsh -c qemu:///system start vm1
Проверить статус ВМ:
Образец диалога:
Проверить параметры подключения к ВМ
Подключиться к виртуальному монитору ВМ
Для сброса старых пользовательсктх настроек virt-manager удалить файл .config/dconf/user
Устранение ошибок
При появлении ошибки custom процессора нужно поставить в настройках пункт "использовать архитектуру процессора хоста".
При ошибке network 'default' not active выполнить следующие команды:
sudo virsh net-start default
sudo virsh net-autostart default
Настройка фиксированных IP-адресов
Для привязки фиксированных IP-адресов к виртуальным машинам выполнить команду:
<range start='192.168.122.2' end='192.168.122.254'/>
вставить строки с мак-адресами виртуальных адаптеров, например, как указано ниже:
<host mac='52:54:00:a2:99:c2' name='host1' ip='192.168.122.133'/> <host mac='52:54:00:de:2e:58' name='host2' ip='192.168.122.134'/>
После сохранения изменений перезапустить виртуальную сеть:
sudo virsh net-destroy default
sudo virsh net-start default
Примеры команд работы с виртуальными машинами
Получить список машин:
sudo virsh list --all
sudo virsh start <имя виртуальной машины>
echo "#!/bin/bash" | sudo tee /etc/rc.local
echo "virsh start <имя виртуальной машины>" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
Решение возможных проблем с фильтрацией пакетов при работе с сетью
cat << EOF | sudo tee -a /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.ipv4.ip_forward=1
EOF