14.3. Режимы работы гипервизора
14.3.1. Введение
Система виртуализации МСВСфера ОС поддерживает работу в двух режимах: пользовательском и системном. Оба режима будут подробно рассмотрены далее в этой главе, однако, для начала достаточно будет упомянуть, что в пользовательском режиме гипервизор запускается от имени обычного (а не привилегированного) пользователя и, соответственно, имеет ограниченный функционал. В системном режиме гипервизор запускается в привилегированном режиме без каких-либо ограничений по поддерживаемым возможностям.
По умолчанию virsh
, virt-install
и другие утилиты для работы с гипервизором
выбирают с каким режимом гипервизора взаимодействовать на основе имени
пользователя: команды от пользователя root
выполняются в системном режиме,
а команды от остальных пользователей, соответственно, в пользовательском.
Это поведение можно изменить — процедура настройки описана в разделе «14.3.4. Выбор режима работы гипервизора» данной главы.
14.3.2. Пользовательский режим
В пользовательском режиме процессы гипервизора и виртуальные машины запускаются с правами текущего непривилегированного пользователя. Соответственно, каждый пользователь может иметь собственный набор виртуальных машин и выделенное хранилище для них.
Это более простой и, отчасти, более безопасный за счёт функциональных ограничений способ работы с гипервизором. Среди ограничений стоит отметить:
ограничены возможности по конфигурации сетевых устройств;
не поддерживается автоматический запуск виртуальных машин;
не поддерживается проброс PCI-устройств в виртуальную машину;
не выполняется регистрация событий безопасности;
не применяются общесистемные политики Polkit для контроля и разграничения доступа.
Таким образом, использование гипервизора в пользовательском режиме следует скорее рассматривать как простое решение для работы с виртуальными машинами на рабочей станции, чем комплексное решение для применения в инфраструктуре предприятия.
В совокупности с графической утилитой управления virt-manager
или веб-панелью
Cockpit
использование данного режима обеспечивает функциональность и
пользовательский опыт близкий к таким решениям как Oracle VirtualBox или
VMware Player/Workstation.
14.3.3. Системный режим
В отличие от пользовательского, в системном режиме процессы гипервизора
запускаются с правами привилегированного пользователя и получают полный доступ
к оборудованию хост-системы, что позволяет использовать его без каких-либо
ограничений. При этом виртуальные машины запускаются от непривилегированного
пользователя qemu
, обеспечивая таким образом необходимый уровень безопасности.
Относительно пользовательского режима становятся доступны следующие функции:
Автоматический запуск виртуальных машин.
Проброс PCI-устройств в виртуальную машину.
Работа с сетевыми устройствами без ограничений.
audit.
Использование общесистемных политик Polkit для контроля доступа и реализации ролевой модели.
Миграция виртуальных машин между гипервизорами.
Мониторинг состояния виртуальных машин и гипервизора.
Централизованное управление хранилищами, томами, виртуальными машинами и т.п.
Использование гипервизора в системном режиме является рекомендованным решением для развёртывания технологии виртуализации в промышленной (production) среде.
14.3.4. Выбор режима работы гипервизора
Режим работы гипервизора, с которым будет взаимодействовать пользователь, определяется строкой подключения к гипервизору, которую также называют URI (Uniform Resource Identifier — унифицированный идентификатор ресурса).
Для подключения к локальному гипервизору используется одна из следующих форм:
qemu:///system
— подключение к системной сессии;qemu:///session
— подключение к пользовательской сессии.
По умолчанию команды, запущенные от имени пользователя root
подключаются
к системной сессии гипервизора, а команды, запущенные от остальных
пользователей, — к пользовательской.
Для подключения к удалённому гипервизору необходимо в строке подключения указать его доменное имя или IP-адрес, также рекомендуется использовать защищённый протокол SSH:
qemu+ssh://root@example.com/system
— подключение к системной сессии гипервизора на узлеexample.com
;qemu+ssh://user@example.com/session
— подключение к сессии пользователяuser
на узлеexample.com
.
Задать строку подключения к гипервизору можно одним из следующих способов, указанных в порядке приоритета от большего к меньшему:
С помощью аргумента командной строки
-c, --connect <URI>
, который принимает большинство утилит для работы с гипервизором (virsh
,virt-install
и т.д.). Например:$ virsh --connect qemu:///system list ID Имя Состояние ----------------------------------- 1 msvsphere-9-arm работает
С помощью переменной окружения
LIBVIRT_DEFAULT_URI
:$ LIBVIRT_DEFAULT_URI='qemu:///system' virsh list ID Имя Состояние ----------------------------------- 1 msvsphere-9-arm работает
Для отдельного пользователя эту переменную можно определять автоматически, добавив соответствующее объявление в файл
~/.bashrc
:$ cat << EOF >> ~/.bashrc export LIBVIRT_DEFAULT_URI='qemu:///system' EOFУстановить значение переменной глобально для всех пользователей в системе можно, добавив соответствующее определение в файл
/etc/environment
:$ cat << EOF | sudo tee -a /etc/environment LIBVIRT_DEFAULT_URI='qemu:///system' EOF
С помощью опции
uri_default
в конфигурационном файле libvirt. Для пользователяroot
используется системный конфигурационный файл/etc/libvirt/libvirt.conf
, а для всех остальных пользователей — файл~/.config/libvirt/libvirt.conf
.Пример настройки автоматического подключения к системному гипервизору для обычного пользователя:
$ mkdir -p ~/.config/libvirt $ cat << EOF >> ~/.config/libvirt/libvirt.conf uri_default = "qemu:///system" EOF