Виртуализированный X-сервер на хост-машине

Так, я пытаюсь заняться довольно нечетной проблемой. Я являюсь довольно новым с виртуализацией (большинство, которым я управлял, изолирует некоторые приложения с Докером и VirtualBox, который не трудно сделать). Я больше подвергаю сомнению, как X серверов дисплея работают по сравнению с фактическим обращением за помощью к виртуализации, хотя это ценилось бы.

Я пытаюсь настроить хост-машину, которая использует X серверов дисплея, обеспеченных другой виртуализированной системой. Я собираюсь иметь хост-машину, виртуализируют две системы Linux.

Первая система Linux планируется для хостинга X серверов дисплея. Теперь, это должно быть довольно просто сделать в конце, но я ищу решения, которые пашут немного глубже, чем "это работает". Однако я действительно понимал другие проблемы. Я намереваюсь запустить немного графические интенсивные приложения в этой виртуализированной системе. Какой машине видеокарта должна быть выделена?

Вторая система не будет почти как особенная, но существует довольно странная сеть confliction (не ошибка; это - как я должен настроить вещи). Не будет X-сервера или чего-либо еще.

Мой окончательный вопрос: я должен был бы использовать фактические аппаратные средства для обоих экземпляров, просто "хост" X-сервера (виртуализированная система), или просто "клиент" X-сервера (хост-машина)? Я также хотел бы спросить, как я смог выполнять это, хотя это немного выходит за рамки вопроса.

2
задан 1 November 2015 в 12:36
1 ответ

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

Ваш вопрос в основном состоит в том, какому гостю следует выделить свой GPU, чтобы максимально снизить нагрузку на ЦП и получить общее представление о том, как на самом деле будет работать дисплей.

Скорее всего, GPU придется обрабатываться гостем, на котором запущен X-сервер. Я действительно не вижу способа, чтобы клиент отправлял видеокадры непосредственно на графическую карту, не зная ничего о содержащем окне, обрабатываемом на стороне сервера.

Для информации, вы также можете рассмотреть возможность использования Linux framebuffer который может позволить вам воспроизводить видео прямо из командной строки без X.

Что касается понимания того, как это работает, уловка здесь в том, что нет единого способа воспроизведения видео в среде X, и в зависимости от вашего сведения о платформе, некоторые могут быть быстрее, некоторые могут показывать сбои с определенными видеофайлами, некоторые могут вообще не работать.

Я рекомендую вам использовать VLC media player , чтобы продолжить ваши тесты. Он доступен в большинстве репозиториев дистрибутивов Linux и позволяет вручную выбрать способ отображения видео (в меню выберите Инструменты > Настройки > Видео , затем выберите свой вариант в раскрывающемся виджете Вывод ).

Какой бы способ ни использовался, он всегда будет генерировать большой трафик между X-клиентом (видеоплеером) и X Server, поэтому, если оба виртуализированных гостя работают на одном хосте, вы, скорее всего, предпочтете убедиться, что на их обмене не происходит шифрование. Другими словами, вы, скорее всего, можете оставить SSH-туннелирование и предпочесть старомодное перенаправление отображения X:

  • Убедитесь, что X-сервер прослушивает внешний интерфейс на сервере (точный шаг настройки - распространение зависит, если вручную изменить файл, чтобы убедиться, что он не будет перезаписан какой-либо автоматической конфигурацией, вам также может потребоваться адаптировать правила вашего брандмауэра) и разрешить входящие X-соединения из гостевой среды с помощью команды xhost :

     $ xhost + 
     
  • На клиентском хосте экспортируйте переменную $ DISPLAY перед запуском VLC:

     $ export DISPLAY = : 0.0
     $ vlc
     

Некоторые режимы вывода заставят VLC проходить через стек X, а некоторые другие заставят VLC обходить его и напрямую связываться с лежащим в основе видео оборудованием через некоторую библиотеку. В вашей ситуации подойдет только первое. Попытка использовать неправильный тип вывода приведет к тому, что VLC либо не будет отображать видео (при воспроизведении звука), либо выйдет из строя при открытии файла.

Лучшими кандидатами будут Xvideo (расширение X, предназначенное для видео воспроизведения, он заменяет более старый, но все еще доступный X11 вывод), GLX и OpenGL (оба заставляют VLC полагаться на API, взаимодействующий с OpenGL и системой отображения X) .

1
ответ дан 3 December 2019 в 12:43

Теги

Похожие вопросы