Spice

Материал из ALT Linux Wiki
Версия от 15:20, 28 февраля 2018; Klark (обсуждение | вклад) (Начало положено)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Обзор технологий

Данная статья ещё не завершена.

Протокол SPICE

SPICE - простой протокол для независимой вычислительной среды. Позволяет просматривать виртуальный «рабочий стол» не только на машине, на которой он запущен, но и через Интернет, причём для просмотра можно использовать широкий спектр архитектур (подробнее). Хотя изначально SPICE проектировался исключительно для виртуальных сред, его можно поставить в один ряд с новейшими (объектными) версиями таких "чисто терминальных" протоколов, как RDP и NX.

Proxmox Virtual Environment

PVE - готовое решение для управления средой виртуализации, в числе прочего, позволяющее обеспечить безопасный удалённый доступ по протоколу SPICE к большому количеству терминальных серверов, работающих внутри виртуальных машин KVM. При этом можно задействовать максимум возможностей, предоставляемых протоколом SPICE и средой эмуляции QEMU, в том числе, проброс USB-устройств, смарт-карт, принтеров, звука, получить более тесную интеграцию гостевой системы для бесшовной работы с мышью, клавиатурой, динамическим переключением разрешений экрана.

Драйвер QXL VGA

...

Терминальный сервер на физическом узле (даже без видеокарты)

Headless/bare-metal конфигурация теперь легко настраивается благодаря наличию в репозитории драйвера spiceqxl.

Общий доступ к рабочему столу

x11spice позволяет предоставлять удалённый общий доступ к своему рабочему столу (сеансу, уже запущенному на реальной видео-карте). Ленар Шакиров предлагает желающим протестировать аналог общего рабочего стола x2go!

# apt-repo test 201098

Прямое использование qemu/kvm

...

Настройка терминального сервера

# apt-get install spiceqxl
# cp -af /etc/X11/xorg.conf.d /root/
# rm -f /etc/X11/xorg.conf.d/*
# cat >/etc/X11/xorg.conf <<EOF
# https://cgit.freedesktop.org/xorg/driver/xf86-video-qxl/plain/examples/spiceqxl.xorg.conf.example

Section "Device"
    Identifier	"XSPICE QXL"
    Driver	"spiceqxl"

    # ---- Network and security options

    #Option	"SpiceDisableTicketing" "False"
    Option	"SpicePassword"		"123"
    #Option	"SpicePort"		"5900"
    #Option	"SpiceTlsPort"		"5900"
    #Option	"SpiceSasl"		"False"
    #Option	"SpiceX509Dir"		""
    #Option	"SpiceCacertFile"	""
    #Option	"SpiceX509KeyFile"	""
    #Option	"SpiceX509KeyPassword"	""
    #Option	"SpiceX509CertFile"	""
    #Option	"SpiceDhFile"		""
    #Option	"SpiceTlsCiphers"	""
    #Option	"SpiceAddr"		""
    #Option	"SpiceIPV4Only"		"True"
    #Option	"SpiceIPV6Only"		"False"
    #Option	"SpiceExitOnDisconnect"	"False"

    # ---- Monitor configuration options

    Option	"NumHeads"		"1"

    # ---- Compression options

    #Option	"SpiceZlibGlzWanCompression" "auto"
    #Option	"SpiceJpegWanCompression" "auto"
    #Option	"SpiceImageCompression"	"auto_glz"
    #Option	"SpiceDeferredFPS"	"10"
    #Option	"SpiceStreamingVideo"	"filter"
    #Option	"SpiceVideoCodecs"	""
    #Option	"EnableImageCache"	"True"
    #Option	"EnableFallbackCache"	"True"
    #Option	"EnableSurfaces"	"True"

    # ---- Xspice-specific buffer options

    #Option	"SurfaceBufferSize"	"128"
    #Option	"CommandBufferSize"	"128"
    #Option	"FrameBufferSize"	"16"

    # ---- VDAgent options

    #Option	"SpiceVdagentEnabled"	"False"
    #Option	"SpiceVdagentVirtioPath" "/tmp/xspice-virtio"
    #Option	"SpiceVdagentUinputPath" "/tmp/xspice-uinput"
    #Option	"SpiceVdagentUid"	"0"
    #Option	"SpiceVdagentGid"	"0"
    #Option	"SpiceAgentMouse"	"True"
    #Option	"SpicePlaybackCompression" "True"
    #Option	"SpiceDisableCopyPaste"	"False"
    #Option	"SpicePlaybackFIFODir"	""
    #Option	"SpiceSmartCardFile"	"/tmp/spice.pcsc.comm"
EndSection

Section "InputDevice"
    Identifier	"XSPICE Pointer"
    Driver	"xspice pointer"
EndSection

Section "InputDevice"
    Identifier	"XSPICE Keyboard"
    Driver	"xspice keyboard"
EndSection

Section "Monitor"
    Identifier	"XSPICE Monitor"
EndSection

Section "Screen"
    Identifier	"XSPICE Screen"
    Monitor	"XSPICE Monitor"
    Device	"XSPICE QXL"
    DefaultDepth 24
EndSection

Section "ServerLayout"
    Identifier	"XSPICE Layout"
    Screen	"XSPICE Screen"
    InputDevice	"XSPICE Keyboard"
    InputDevice	"XSPICE Pointer"
EndSection

Section "ServerFlags"
    Option	"AutoAddDevices" 	"False"
EndSection

EOF

Удалённое подключение к терминальному серверу

# apt-get install libspice-gtk-tools virt-viewer spice-html5
$ remote "spice://10.X.Y.Z?port=5900&password=123"
$ spicy -p 5900 -h 10.X.Y.Z -w 123

Продолжение следует...