spice vdagent что это
Пробуем бесплатную виртуализацию со специями в Ubuntu 11.04 amd64
Специя или SPICE (сокр. от англ. «Simple Protocol for Independent Computing Environments», то есть «Простой протокол для независимой вычислительной среды») — открытый протокол удаленного доступа к компьютеру или виртуальной машине.
Использование SPICE позволяет не только получить доступ к экрану, а также к буферу обмена и звуковой карте. В настоящее время протокол SPICE находится в стадии интенсивной разработки, несмотря на это его уже сегодня можно попробовать использовать в виртуальной машине под управлением модифицированного гипервизора KVM вместо базового открытого протокола VNC (Virtual Network Computing), используемого по-умолчанию.
Первоначально протокол был разработан кампанией Qumranet, которую затем купила Red Hat, Inc, которая 9 декабря 2009 объявила о решении открыть исходный код протокола. Стабильная версия SPICE доступна в операционной системе Red Hat Enterprise Linux, как средство виртуализации рабочих станций.
Настраиваем хост
Чтобы получить возможность использования SPICE следует собрать платформу виртуализации на базе модифицированного гипервизора KVM из исходников либо использовать предварительно собранные пакеты. Чтобы самостоятельно собрать платформу виртуализации из исходников необходимо воспользоваться инструкцией, размещенной на официальном сайте проекта и потратить некоторое время.
В случае если вы используете Ubuntu 11.04 amd64 и не желаете тратить время на компиляцию, вы можете воспользоваться предварительно собраными deb-пакетами подготовленными Борисом Державцем, либо deb-пакетами платформы виртуализации, подготовленными проектом UmVirt.
deb-пакеты платформы виртуализации подготовленные в рамках проекта UmVirt cозданы на основе более свежих версий программ и правил сборки пакетов используемых Борисом Державцем т.е. являются форком.
В качестве окружения вы можете использовать не только реальный компьютер на платформе amd64 обладающий функцией виртуализации, а также эквивалентную виртуальную машину. Что позволяет получить многоуровневую виртуализацию.
Установка из репозитория Бориса Державца
Для установки платформы виртуализации из репозитория Бориса Державца добавьте репозиторий с помощью команды:
sudo add-apt-repository ppa:bderzhavets/git-spice
Затем обновите информацию о пакетах с помощью команды:
sudo apt-get update
Затем установите платформу виртуализации с помощью команды:
sudo apt-get install qemu-kvm virt-manager
Установка из архива deb-пакетов платформы виртуализации UmVirt
Для установки deb-пакетов платформы виртуализации UmVirt, загрузите арихив пакетов «UmVirt VP» со страницы загрузки сайта проекта, распакуйте его и запустите инсталяционный скрипт от имени root используя комманду sudo:
В процессе установки инсталляционный скрипт проверит окружение, осуществит автоматическую установку пакетов и всех зависимостей.
Использование
После того как вы установили платформу виртуализации, вы можете приступить к работе с помощью программы virt-manager, имеющей интуитивно понятный графический интерфейс. Для избежания проблем в работе, рекомендую запускать virt-manager от имени root.
Попробуйте создать и запустить виртуальную машину под управлением Ubuntu, предварительно добавив в нее звуковую карту и сменив протокол удаленного доступа c VNC на SPICE.
Затем попробуйте получить доступ к виртуальной машине, слушающей порт 5900, через SPICE-клиент cpicec выполнив следующую команду:
В результате при запуске вы должны услышать звук из виртуальной машины.
Настраиваем гостя
Чтобы работать в виртуальной машине было комфортно, нужно установить гостевые дополнения SPICE: Драйвер видеокарты QXL и VD-агента. Для операционной системы Windows гостевые дополнения доступны на официальных сайте проекта SPICE. Некоторые дистрибутивы Linux изначально поддерживают QXL-видеокарту, однако её драйвер работает не стабильно.
Для Ubuntu дополнения можно установить из специального репозитория spice2, подготовленного Борисом Державцем, и из архива с инсталяционным скриптом, подготовленным проектом UmVirt. Гостевые дополнения в архиве, подготовленным проектом UmVirt, содержат более качественный QXL-драйвер, поддерживающий большее количество разрешений, и более свежий VD-агент.
Для установки гостевых дополнений из репозитория spice2 выполняются следующие команды:
sudo add-apt-repository ppa:bderzhavets/spice2
sudo apt-get update
sudo apt-get install spice-vdagent
Для установки гостевые дополнений, подготовленных проектом UmVirt необходимо загрузить и распаковать архив дополнений со страницы загрузки.Затем установить их с помощью команды:
Для того чтобы улучшить взаимодействие с виртуальной машиной, выключите виртуальную машину, измените тип видеокарты на QXL и осуществите запуск виртуальной машины (если машина не заведется с первого раза, заводите несколько раз). Теперь вы можете слушать не только звук но и смотреть видео, объединить буферы обмена.
SPICE
Данная страница находится в разработке. Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной. |
Содержание
Краткий обзор технологий [ править ]
Протокол SPICE [ править ]
SPICE — простой протокол для независимой вычислительной среды. Позволяет работать с «виртуальным рабочим столом», в том числе, через Интернет, причём и на стороне «клиента», и на стороне «сервера» могут выступать различные операционные системы и аппаратные платформы (подробнее). Хотя изначально SPICE проектировался исключительно для виртуальных сред, его можно поставить в один ряд с новейшими (объектными) версиями таких «чисто терминальных» протоколов, как RDP и NX.
Proxmox VE [ править ]
PVE — готовое решение для управления средой виртуализации, позволяющее обеспечить, в числе прочего, безопасный удалённый доступ по протоколу SPICE к большому количеству терминальных серверов, работающих внутри виртуальных машин KVM. При этом можно задействовать максимум возможностей, предоставляемых протоколом SPICE и гипервизором QEMU/KVM, в том числе, проброс USB-флэшек, смарт-карт, принтеров, звука, получить более тесную интеграцию с окном гостевой системы (бесшовную работу мыши, клавиатуры, динамическое переключение разрешения экрана, общий с гостевой системой буфер обмена для операций копирования/вставки).
OpenStack [ править ]
OpenStack — ещё одно готовое решение для построения более масштабной инфраструктуры облачных сервисов и облачных хранилищ. Как и PVE, OpenStack позволяет обеспечить, в числе прочего, безопасный удалённый доступ по протоколу SPICE к большому количеству терминальных серверов, работающих внутри виртуальных машин, использующих гипервизор QEMU/KVM.
SPICE-сервер [ править ]
SPICE-сервер реализован библиотекой libspice. Пока что основным пользователем этой библиотеки является среда виртуализации QEMU, использующая SPICE-сервер для предоставления удалённого доступа к виртуальным машинам через протокол SPICE. Таким образом, все возможности протокола SPICE на данный момент могут быть обеспечены только в виртуальной среде на основе QEMU. Поскольку код SPICE-сервера вынесен в отдельную библиотеку, есть надежда на скорое появление реализаций, выходящих за рамки этой виртуальной среды.
SPICE-клиенты [ править ]
SPICE-клиенты — это программы, которые используются для удалённого доступа по протоколу SPICE. Рекомендуемым SPICE-клиентом является remote-viewer из пакета virt-viewer. Программа spicy из пакета libspice-gtk-tools может использоваться в тестовых целях, всей функциональности она не предоставляет. Установив пакет spice-html5, можно получить удалённый доступ к «виртуальному рабочему столу» прямо из веб-браузера.
Драйвер QXL VGA [ править ]
SPICE-сервер поддерживает интерфейс VDI QXL. Когда libspice используется с QEMU, для улучшения производительности «удалённого» дисплея и улучшения графических возможностей «гостевой» графической системы можно задействовать определенное видео-устройство PCI. Это видео-устройство называется устройством QXL. Оно требует наличия «гостевых» драйверов QXL для полной функциональности.
Агент «виртуального рабочего стола» [ править ]
SPICE VDAgent — необязательный компонент, улучшающий интеграцию окна гостевой системы с графическим интерфейсом удалённого пользователя. SPICE-протокол поддерживает канал связи между клиентом и агентом на стороне сервера. Агент работает внутри гостевой системы. Для связи с агентом в гостевой системе также используется специальное устройство, так называемый VDI-порт.
Терминальный сервер на физическом узле [ править ]
Терминальный сервер может быть развёрнут не только в виртуальной среде. Он может работать и на физическом железе, даже без видеокарты. Headless/bare-metal конфигурация теперь легко настраивается благодаря наличию в репозитории Xorg-модуля spiceqxl.
Общий доступ к рабочему столу [ править ]
x11spice позволяет предоставлять удалённый общий доступ к своему рабочему столу (сеансу, уже запущенному на реальной видеокарте). Это аналог общего рабочего стола X2Go (похожая функция в Windows называется «Удалённый помощник», для тех же целей служит TeamViewer).
Аргументы командной строки переопределяют настройки файла конфигурации.
/.config/x11spice/x11spice.conf и изменять настройки в нём.
Правим конфигурацию под обычным пользователем:
В файлах конфигурации и в командной строке должен быть указан один из этих параметров. Иначе, например, если в файле указан параметр password, а в командной строке задавать generate-password, сервер не будет запущен с ошибкой:
Чтобы подключаемый мог не только видеть рабочий стол, но и менять на нём что-либо, требуется включить опцию allow-control=true.
Теперь на клиенте запускаем x11spice из «Меню запуска приложений» («Стандартные/Инструменты» → «x11spice (Удалённый помощник)») или из командной строки.
Пример запуска SPICE-сервера из командной строки:
При нажатии на кнопку «Отключиться», соединение будет разорвано, при нажатии на кнопку «Выйти» — будет остановлен сервер Spice.
Прямое использование qemu/kvm [ править ]
Настройка терминального сервера [ править ]
Удалённое подключение к терминальному серверу [ править ]
HTML5 Client [ править ]
HTML5 Client позволяет подключиться к удалённому компьютеру без установки какого-либо клиента — используется лишь браузер.
Настройка удалённого доступа:
Для подключения к удаленному рабочему столу:
Развёртывание и настройка oVirt 4.0. Часть 3. Базовые операции в oVirt
Инициализация Data Center
После того, как мы начнём ознакомление с веб-консолью портала администрирования oVirt на свежей инсталляции, мы можем обнаружить, что в консоли не отображается информация о присутствии виртуальной машины с oVirt Hosted Engine, а также о дисковом разделе из FC SAN на СХД, на который была установлена эта виртуальная машина. Как я понял, причина заключается в том, что наш Data Center (верхний уровень иерархии oVirt) не проинициализирован. Для того, чтобы выполнить его инициализацию, можно воспользоваться функцией подсказки Guide Me на панели кнопок вкладки Data Centers или в контекстном меню нашего дата-центра по умолчанию Default, который был автоматически создан в процессе развёртывания oVirt.
Инициализация Дата-Центра невозможна без предоставления в распоряжение oVirt дискового хранилища, на котором будут располагаться создаваемые виртуальные машины. Поэтому, в первую очередь, в открывшемся окне выбираем пункт Configure Storage
Откроется форма добавления хранилища к oVirt. Так как мы намереваемся подключить дисковое хранилище для размещения виртуальных машин, выберем в поле Domain Function значение Data. Тип хранилища Storage Type выбираем тот, который у нас планируется использовать (в нашем случае это Fibre Channel). В поле Use Host выбираем хост, с которого будет произведена проверка доступа к хранилищу и зададим понятное нам имя хранилища в поле Name. Поле Description по моим наблюдениям в oVirt 4.0.1 при добавлении FC Data Domain не сохраняется, возможно этот недочёт исправят в будущих версиях. После выбора хоста в табличной части формы появится список доступных на этом хосте LUN-ов. Малый LUN размером 90GB в нашем случае уже используется под виртуальную машину Hosted Engine, поэтому здесь мы выбираем второй свободный LUN размером 2000GB.
Через несколько секунд после того, как я добавил в oVirt новый чистый FC LUN для хранения виртуальных машин, в веб-консоли появилась информация и о LUN-e под виртуальную машину oVirt Engine, а статус Дата-Центра изменился на Up
Кстати, присваиваемое по умолчанию имя Data Domain «hosted_storage» можно при желании переименовать (в System > Data Centers > Default > Storage – выбрать имя нужного Data Domain и нажать Manage Domain)
После инициализации Дата-Центра в веб-консоли должна появиться информация и о работающей виртуальной машине Hosted Engine.
Подключение ISO Domain
После правки файла экспорта, заставим NFS сервер перечитать новые параметры:
После этого проверим, какие шары может отдавать NFS-сервер:
Будем считать, что наш NFS сервер настроен так как надо, и теперь можно попробовать присоединить ISO Domain в oVirt. Для этого в веб-консоли переходим к System > Data Centers > Default > на закладке Storage жмём кнопку Attach ISO
В открывшейся форме выбираем ранее описанный ISO Domain
После этого в веб-консоли нам станет доступно это хранилище для размещения ISO-образов.
Загрузка ISO образов в ISO Domain
Возможности прямой загрузки ISO образов в ISO Domain через веб-интерфейс oVirt нет. Загрузить ISO образы можно непосредственно на виртуальном сервере Hosted Engine. Для примера я добавлю загрузочный инсталляционный образ Ubuntu Server 16.04 LTS. Как я понял, для этого действия предполагается иметь на локальной файловой системе сервера заранее скачанный ISO-образ и использовать утилиту ovirt-iso-uploader для его копирования в ISO Domain.
Обратите внимание на то, что после загрузки желательно выставить на файл разрешения по аналогии с тем, как их выставляет утилита ovirt-iso-uploader.
Теперь проверим состояние ISO Domain в веб-консоли oVirt (System > Data Centers > Default > Storage > выберем соответствующий ISO Domain и на закладке Images проверим доступность загруженных ранее ISO-образов)
Как видим, оба образа отображаются и могут быть использованы в дальнейшем для подключения к виртуальным машинам.
Настройка сетей
В открывшейся форме создания логической сети на вкладке General зададим понятное для нас имя с описанием, укажем номер VLAN-а и включим признак того, что эта сеть может использоваться для виртуальных машин – VM network
Профиль vNIC по умолчанию создаётся для сети с одноимённым названием и при желании можно изменить его имя.
После создания сети, для того чтобы виртуальные машины могли использовать подключение к этой сети, необходимо выполнить привязку этих сетей к физическим сетевым интерфейсам хостов. Перейдём в веб-консоли в System > Data Centers > Default, выберем вкладку Hosts, выберем какой-нибудь хост, к которому хотим выполнить привязку сети, и в нижней части экрана перейдём на закладку Network Interfaces. Здесь мы увидим информацию о сетевых интерфейсах хоста. Нажмём кнопку Setup Host Networks.
Откроется форма привязки логических сетей к хосту. В этой форме справа будут перечислены все имеющиеся в oVirt, но не привязанные к хосту сети, а слева текущая сетевая конфигурация хоста. С помощью манипулятора, типа «мышь», перетаскиваем интересующую нас сеть на интерфейс хоста…
В нашем случае используется привязка ранее созданной сети с VLAN 1000 к интерфейсу bond0 :
После этого на хосте будет создан интерфейс с соответствующим номером VLAN и в веб-консоли эта информация будет отображена соответственно:
Аналогичным образом нужно выполнить привязку созданной нами логической сети ко всем хостам, где могут оказаться, например в процессе миграции, виртуальные машины, привязанные к данной сети.
Создание новой виртуальной машины
Создадим новую виртуальную машину и установим на неё OC Ubuntu Server 16.04 LTS с ранее загруженного в ISO Domain установочного образа. Переходим в System > Data Centers > Default > закладка Virtual Machines > кнопка New VM.
В открывшейся веб-форме создания виртуальной машины сразу нажимаем кнопку Show Advanced Options, чтобы включить расширенный режим настроек. Назначение полей нетрудно понять из их названий. Задаём тип гостевой ОС ВМ, имя ВМ, так как оно будет отображаться в oVirt, описание. Для виртуального интерфейса nic1 выбираем ранее созданный vNIC Profile, который в свою очередь привязан в ранее созданной логической сети. Чтобы создать новый диск для виртуальной машины используем кнопку Create
Поверх формы создания виртуальной машины откроется форма создания нового виртуального диска, где мы укажем его размер, понятное имя с описанием, выберем хранилище для размещения файла диска (Storage Domain) и тип распределения данных (Allocation Policy). Не забудем включить опцию Bootable, так планируем устанавливать на этот диск ОС.
Таким образом, для примера, я создал первый диск (под гостевую ОС) и дополнительный (под данные приложений).
Переходим на вкладку System и настраиваем параметры оперативной памяти, процессора, часовой пояс:
На вкладке Console выбираем параметры подключения к консоли виртуальной машины. В данном случае нам доступны два основных графических протокола VNC и SPICE (к особенностям их использования мы вернёмся чуть позже), так как в свойствах ОС выбран тип Linux.
На вкладке Host при необходимости можно настроить привязку виртуальной машины к какому-то конкретному хосту в кластере, а также изменить параметры миграции ВМ между хостами.
На вкладке High Availability можно настроить приоритет перезапуска виртуальной машины в контексте выполнения операций по автоматическому восстановлению доступности виртуальных машин в кластере.
На вкладке Resource Allocation настраиваются дополнительные опции, которыми можно контролировать производительность той или иной виртуальной машины, путём определения порядка выделения физических ресурсов этой машине.
На вкладке Boot Options определяем порядок использования устройств для загрузки. Здесь мы можем присоединить к виртуальному CD-ROM ранее загруженный в ISO Domain установочный ISO-образ операционной системы Linux, которую мы планируем установить на диск ВМ.
Сохраняем настроенный свойства виртуальной машины и пробуем выполнить её запуск из консоли используя пункты меню или кнопки Run или Run Once.
Функция Run Once позволяет выполнять запуск виртуальной машины с изменением ряда её параметров, которые не сохраняются в конфигурации этой ВМ при следующем перезапуске, например, именно здесь можно указать единожды монтируемый ISO образ, который нужен для установки ОС и уже не потребуется при следующей перезагрузке ВМ.
Подключение к консоли виртуальных машин
Будет скачан файл console.vv и запущен в ассоциированном приложении Virt-Viewer, после чего мы получим доступ к консоли ВМ:
При попадании курсора в консоль, управление курсором переходит в виртуальную машину. Для возврата курсора обратно используем сочетание клавиш Shift+F12.
Помимо Native SPICE-клиента можно использовать возможности HTML5 SPICE-клиент, то есть консоль виртуальной машины при этом будет открываться непосредственно в интернет-браузере. Тесты показали, что в Internet Explorer v11 HTML5 SPICE-клиент не работает. В Firefox и Chrome работает, но не всегда стабильно и при условии, что SSL сертификат, используемый в веб-консоли oVirt является доверенным (этого можно добиться либо добавив само-подписанный сертификат oVirt в хранилище доверенных сертификатов пользователя в системе, либо заменить сертификат на веб-сайте oVirt, так как мы сделали это ранее ). Однако не смотря на то, что даже если требование доверия браузера сертификату соблюдено мы можем получить ошибку типа:
WebSocket error: Can’t connect to websocket on URL: wss://kom-ad01-ovirt1.holding.com:6100
Установка компонент интеграции в виртуальные машины
Компоненты интеграции гостевых ОС в среду виртуализации oVirt состоят из дополнительно устанавливаемых в гостевую ОС агентов oVirt Guest Agent, SPICE Agent и драйверов VirtIO Drivers.
oVirt Guest Agent
После того, как служба агента запущена в виртуальной машине, в веб-консоли oVirt нам станут доступны дополнительные сведения о текущем состоянии гостевой ОС. В частности, на закладке General появится информация о текущем состоянии утилизации оперативной памяти внутри ВМ.
Так же появится дополнительная информация на закладках Applications, Guest Info и других
На другую нашу виртуальную машину c Hosted Engine на базе CentOS 7.2 агент был установлен из ранее подключённого репозитория EPEL (yum install epel-release) следующей последовательностью команд:
SPICE Agent
После установки служба автоматически запускается и настраивается на автозагрузку при старте системы:
После установки агента SPICE vdagent я заметил улучшение удобства работы с консолью ВМ в Virt-Viewer, в частности перестало дёргать курсор мыши и само перемещение курсора мыши между моей клиентской системой и окном консоли Virt-Viewer теперь стало работать прозрачно, без потери управления при попадании в окно консоли (Shift+F12 теперь стал не нужен для возврата управления курсором). А то, как работает функция общего буфера обмена, я так и не постиг.
На гостевых системах RHEL/CentOS/Fedora установка агента SPICE выполняется также просто:
VirtIO Drivers
Проверка живой миграции
Так как у нас в кластере уже есть 2 хоста, мы можем попробовать вызвать процедуру живой миграции виртуальной машины между хостами. Для примера выполним процедуру живой миграции виртуальной машины Hosted Engine. Для проверки постоянной доступности виртуальной машины в процессе живой миграции перед запуском процедуры миграции запустим ping до виртуального сервера Engine, затем в веб-консоли oVirt выберем эту виртуальную машину и нажмём кнопку Migrate…
Откроется окно, где мы можем выбрать хост, на который нужно мигрировать виртуальную машину. В нашем примере используется автоматическое определение хоста назначения После нажатия ОК в консоли увидим изменение статуса виртуальной машины…
А спустя несколько секунд виртуальная машина уже будет работать на другом хосте, при этом доступной виртуальной машины останется на прежнем уровне. Проверяем статистику ping и видим, что потерь соединения с нашей виртуальной машиной в процессе миграции не было. И это хорошо.
В ранних версиях oVirt миграция виртуальной машины Hosted Engine подразумевала предварительное включение Global HA Maintenance, но современная версия oVirt 4.0, как следует, в частности, из документа How to perform live migration of Hosted Engine VM уже этого не требует.
На этом пока всё. В следующей части мы рассмотрим механизмы Fencing в oVirt, как средство достижения High Availability.
Дополнительные источники информации: