В Qemu добавлена поддержка технологии SPICE

Разработчики из компании Red Hat сообщили о добавлении в основную ветку проекта Qemu поддержки протокола SPICE, предназначенного для организации удаленной работы с рабочим столом, функционирующим в виртуальном окружении. Интеграция SPICE в Qemu позволит значительно повысить эффективность вывода мультимедиа информации из локально запущенных виртуальных окружений, с привлечением средств акселерации вывода видео, звука, а также 2D и 3D графики. Изначально SPICE был разработан компанией Qumranet, но переведен в разряд свободных технологии и передан под покровительство проекта freedesktop.org, после поглощения Qumranet компанией Red Hat.

Протокол SPICE (Simple Protocol for Independent Computing Environment) используется для организации работы тонких клиентов, приложения которых выполняются на едином сервере виртуализации, на котором при помощи KVM может выполняться множество Windows или Linux десктоп окружений. SPICE позволяет организовать эффективную трансляцию вывода работающих в полноэкранном режиме приложений, имеющих доступ к локальным аудио и USB устройствам, принтерам и другому оборудованию, находящемуся на стороне тонкого клиента.

В отличие от таких протоколов как VNC (Virtual Network Computing), ICA (Citrix Independent Computing Architecture) и RDP (Microsoft Remote Desktop Protocol), в SPICE рендеринг содержимого экрана и обработка аудиопотоков производится на стороне клиента, а не на сервере, что, например, позволяет без лишней нагрузки на сервер просматривать видео или осуществлять VoIP звонки, делая для пользователя выполнение приложения на удаленном сервере максимально приближенным к локальному запуску программы.

Другой особенностью SPICE является возможность прозрачной балансировки нагрузки, позволяющей распределять выполнение приложений по разным серверам, автоматически адаптируясь к возможностям графической подсистемы на стороне клиента и загруженности сетевого окружения. Производительности сервера с 16GB ОЗУ достаточно для одновременной работы 50 клиентов выполняющих типичные десктоп приложения, или 40 клиентов 20% из которых просматривают видео или прослушивают аудио.

Текущие возможности:

  • Обработка и передача 2D графики;
  • Передача M-JPEG видеопотоков с эвристическим определением типа;
  • Поддержка различных алгоритмов сжатия изображений, включая UIC, LZ и GLZ.
  • Обработка и передача команд управления курсором;
  • Кэширование изображений, палитр и курсоров;
  • Возможность live-миграции виртуального окружения с одного сервера на другой без прерывания работы;
  • Наличие QXL и VDI драйверов для Windows;
  • Поддержка многомониторных конфигураций;
  • Наличие клиентского ПО для Linux и Window, возможность легкого портирования на другие платформы;
  • Двунаправленная передача аудио, звуковые данные сжимаются с помощью технологии CELT;
  • Поддержка шифрования, с использованием OpenSSL;
  • Два режима управления мышью - на стороне клиента (более дружелюбный пользователю) и сервера (более точное позиционирование и полная синхронизация);
  • Lip-sync - синхронизация видео и аудио потоков;
  • Возможность выполнения Spice agent, работающих в гостевом окружении и выполняющих задачи для клиента.

Находящиеся в разработке возможности:

  • Организация совместного использования сетевых ресурсов, например, принтеров;
  • Возможность организации совместной работы с буфером обмена на клиенте и сервере;
  • Возможность клиентам пробрасывать USB устройства и CD привода на сервер;
  • Direct Draw - организация прямого вывода на экран;
  • Разработка дружественной пользователю системы конфигурирования;
  • Добавление поддержки выбора активного экрана клиентом (переключение вывода на другие экраны);
  • Поддержка акселерации видео
  • Поддержка 3D-акселерации
  • Создание клиента для MacOS X;
  • Поддержка одновременного соединения нескольких клиентов к одному рабочему столу.

©  OpenNet