Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 30 Следующий »

Данная статья применима к:

  • 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.

Пакет может быть установлен с помощью графического менеджера пакетов или из командной строки командой

sudo apt install astra-kvm
При установке этого пакета будет автоматически установлен сам Virt-manager и выполнены все действия, необходимые для запуска системы виртуализации. Дополнительно для работы в сети будет установлен пакет ebtables.

При установке пакетов текущий пользователь будет автоматически добавлен в группы:

  • kvm;
  • libvirt;
  • libvirt-qemu.

Других пользователей, которые должны работать с виртуализацией, следует добавить в указанные группы вручную:

sudo usermod -a -G 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 автоматически назначаются мандатные атрибуты, достаточные для размещения в нём данных с ненулевыми мандатными метками:

sudo pdp-ls -lMd /var/lib/libvirt/images

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

Установка QEMU/KVM в предыдущих версиях Astra Linux

Для работы с virt-manager (kvm)  Орел current:

  1. Включить виртуализацию Intel VT в BIOS;
  2. Проверить флаги процессора:
    1. Для процессоров Intel:

      grep vmx /proc/cpuinfo

    2. Для процессоров AMD:

      grep svm /proc/cpuinfo

  3. Проверить наличие загруженных модулей ядра kvm и kvm_intel командой

    lsmod | grep kvm

    kvm_intel             258048  0
    kvm                   659456  1 kvm_int

  4. Установить пакеты:

    sudo apt install qemu-kvm bridge-utils virt-manager libvirt-daemon libvirt-daemon-system firewalld

  5. Запустить firewalld и включить его перезапуск после перезагрузки:

    sudo systemctl enable --now firewalld

  6. Пользователей, которые будут работать с виртуальными машинами в группы kvm, libvirt, libvirt-admin, libvirt-qemu. Для текущего пользователя добавление можно сделать командой:

    sudo usermod -aG libvirt,libvirt-admin,libvirt-qemu,kvm $USER
    для остальных пользователей вместо $USER указать имя пользователя. Для того, чтобы изменения участия в группах вступили в силу, необходимо перезапустить пользовательскую сессию.

  7. Дополнительно можно указать путь подключения, который будет использоваться по умолчанию командой virsh:

    export LIBVIRT_DEFAULT_URI="qemu:///system"

    Чтобы заданное значение автоматически устанавливалось при входе в сессию эту команду можно добавить в файл .bashrc.

Работа с QEMU/KVM

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

Создание собственных пулов для пользователей

При работе с Astra Linux Specail Edition образы дисков виртуальных машин (в том числе загрузочные образы для установки ОС на виртуальных машинах) регистрируются в системе виртуализации как файловые объекты с высоким уровнем конфиденциальности.
При этом все вышележащие каталоги в файловой системе также автоматически получают высокий уровень конфиденциальности. В связи с этим не рекомендуется размещать образы дисков в домашних каталогах пользователей, так как присвоение высокого уровня конфиденциальности домашнему каталогу существенно затруднит работу пользователя - владельца этого каталога.

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

sudo mkdir -p /vrt/pool1
sudo chmod 750 /vrt/pool1
sudo chown <имя_пользователя> /vrt/pool1
Для запрета добавления новых образов ВМ в пул пользователю необходимо ограничить доступ к директории правами на чтение (r-x).

Дальнейшие действия выполнять от имени пользователя - владельца пула.
Создать пул в ранее созданных каталогах можно следующими командами:

virsh -c qemu:///system pool-define-as pool1 --type dir --target /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
Образец диалога с выводом команд:

$ virsh -c qemu:///system pool-define-as pool1 --type dir --target /vrt/pool1
Pool pool1 defined
$ virsh -c qemu:///system pool-build pool1
Pool pool1 built
$ virsh -c qemu:///system pool-start pool1
Pool pool1 started
$ virsh -c qemu:///system pool-autostart pool1
Pool pool1 marked as autostarted
$ virsh -c qemu:///system pool-list --all
Name State Autostart
-------------------------------------------
pool1 active yes

При работе в Astra Linux Special Edition при создание пула необходимые мандатные атрибуты будут присвоены ему автоматически (при условии, что на ОС установлено обновление безопасности БЮЛЛЕТЕНЬ № 20190222SE16). Проверить мандатные атрибуты пула можно командой:

pdp-ls -Md /vrt/pool1
Образец диалога:

$ pdp-ls -Md /vrt/pool1
drwxr-xr-xm-- 2 vrtadmin vrtadmin Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA /vrt/pool1

Создать и запустить виртуальную машину с образом диска, расположенным в ранее созданном пуле командой:

virsh -c qemu:///system define vm1.xml
virsh -c qemu:///system start vm1
Образец диалога:

$ virsh -c qemu:///system define vm1.xml
Domain vm1 defined from vm1.xml

$ virsh -c qemu:///system start vm1
Domain vm1 started

Проверить статус ВМ:

virsh -c qemu:///system list --all

Образец диалога:

$ virsh -c qemu:///system list --all
Id Name State
----------------------------------------------------
3 vm1 running

Проверить параметры подключения к ВМ

$ virsh -c qemu:///system domdisplay vm1
Образец диалога:

$ virsh -c qemu:///system domdisplay vm1
spice://127.0.0.1:5900

Подключиться к виртуальному монитору ВМ

spicy -h 127.0.0.1 -p 5900
Сброс пользовательских настроек

Для сброса старых пользовательсктх настроек virt-manager удалить файл .config/dconf/user

Устранение ошибок

При появлении ошибки custom процессора нужно поставить в настройках пункт "использовать архитектуру процессора хоста".

При ошибке network 'default' not active выполнить следующие команды:

sudo virsh net-start default
sudo virsh net-autostart default
После выполнения этих команд после перезагрузки сеть network 'default' будет запускаться автоматически.

Настройка фиксированных IP-адресов

Для привязки фиксированных IP-адресов к виртуальным машинам выполнить команду:

sudo virsh net-edit default
и после строки:

<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

  • Нет меток