Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Использование консоли SPICE для VirtIO-GPU

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Использование консоли SPICE для VirtIO-GPU, Proxmox Виртуальная Среда
     
    Gustavo Neves
    Guest
    #1
    0
    02.06.2025 00:48:00
    Проблема связана с этой старой темой (отмечена как решенная): G [РЕШЕНО] Пост в теме 'Console is using SPICE instead of noVNC' 1 июня 2025 г. Извините за воскрешение этой старой темы, но проблема никуда не делась. У меня свежая установка Proxmox (v8.4.1). Я создал виртуальную машину Windows 11, она работала отлично. Я потратил некоторое время на тестирование и сравнение различных вариантов оборудования отображения (Standard VGA, VirtIO-GPU, VirGL-GPU и т.д.). Все они работали исправно, и кнопка консоли открывалась в VNC. Затем я решил попробовать Spice. Это работало не очень хорошо, и мне это не понравилось, поэтому я откатил конфигурацию, удалив все оборудование SPICE (VGA, usb, audio). Но теперь основная кнопка консоли все равно пытается открыться с Spice, когда выбраны VirtIO-GPU или VirGL-GPU... Gustavo Neves Как я объяснял там, кнопка консоли по умолчанию пытается открыться с virt-viewer/spice, когда выбран "VirtIO-GPU" или "VirGL GPU" (или очевидно, SPICE). При использовании Standard VGA или VMware, кнопка консоли по умолчанию открывается в NoVNC. Предложенным решением было вручную задать консольный просмотрщик по умолчанию в меню Datacenter, но мне не нравится это решение, потому что оно, по сути, отключает автоматический выбор просмотрщиков, заставляя использовать ТОЛЬКО выбранный просмотрщик во всех ВМ, CT и т.д. Я бы предпочел сохранить стандартный (и автоматический) просмотрщик. Таким образом я могу иметь NoVNC для Windows ВМ и xterm.js для Linux CT, когда я нажимаю на Консоль (или даже Spice, если я использую это в ВМ). После нескольких часов копания в коде Proxmox, мне кажется, удалось найти проблему. API в /nodes/{node}/qemu/{vm-id}/status/current имеет "особую" проверку для $vga->{type} =~ /^virtio/, что заставляет его возвращать spice=1 при использовании VirtIO GPU. Вот строка, в которой находится ошибка: https://github.com/proxmox/qemu-ser...6ebda1000e9d5fc7f50f/PVE/API2/Qemu.pm#L3092 Затем я отредактировал файл /usr/share/perl5/PVE/API2/Qemu.pm в своей инстанции, удалив проверку virtio. Итак, из этого Perl: if ($conf->{vga}) {
           my $vga = PVE::QemuServer::parse_vga($conf->{vga});
           my $spice = defined($vga->{type}) && $vga->{type} =~ /^virtio/;
           $spice ||= PVE::QemuServer::vga_conf_has_spice($conf->{vga});
           $status->{spice} = 1 if $spice;
           $status->{clipboard} = $vga->{clipboard};
       } На это Perl: if ($conf->{vga}) {
               my $vga = PVE::QemuServer::parse_vga($conf->{vga});
               #my $spice = defined($vga->{type}) && $vga->{type} =~ /^virtio/;
               #$spice ||= PVE::QemuServer::vga_conf_has_spice($conf->{vga});
               my $spice = PVE::QemuServer::vga_conf_has_spice($conf->{vga});
               $status->{spice} = 1 if $spice;
               $status->{clipboard} = $vga->{clipboard};
           } Затем мы перезагружаем некоторые сервисы, чтобы изменения вступили в силу Код: systemctl restart pvedaemon.service pveproxy.service И вот оно. Работает. Простое sed-команда для изменения файла (используйте на свой страх и риск, НЕ используйте это на производственных серверах) Bash: sed -i.bak -e 's/my $spice = defined($vga->{type}) \&\& $vga->{type} =~ \/^virtio\/;/g' -e 's/$spice ||= PVE::QemuServer::vga_conf_has_spice($conf->{vga});/\#$spice ||= PVE::QemuServer::vga_conf_has_spice($conf->{vga});\n        my $spice = PVE::QemuServer::vga_conf_has_spice($conf->{vga});/g' /usr/share/perl5/PVE/API2/Qemu.pm Проверьте изменения Код: # diff /usr/share/perl5/PVE/API2/Qemu.pm /usr/share/perl5/PVE/API2/Qemu.pm.bak
    3092,3094c3092,3093
    <           #my $spice = defined($vga->{type}) && $vga->{type} =~ /^virtio/;
    <           #$spice ||= PVE::QemuServer::vga_conf_has_spice($conf->{vga});
    <           my $spice = PVE::QemuServer::vga_conf_has_spice($conf->{vga});
    ---
    >           my $spice = defined($vga->{type}) && $vga->{type} =~ /^virtio/;
    >           $spice ||= PVE::QemuServer::vga_conf_has_spice($conf->{vga}); Я не уверен, зачем нужна эта проверка. Есть ли причина использовать SPICE в качестве просмотра по умолчанию для оборудования VirtIO-GPU? Интересно, может ли кто-нибудь прояснить этот вопрос. Кроме того, стоит ли открыть тикет? Или этого поста будет достаточно, чтобы изменения достигли команды разработчиков?
     
     
     
    dcsapak
    Guest
    #2
    0
    02.06.2025 10:04:00
    Привет, насколько я помню, это было сделано, потому что опыт работы с virgl + spice намного лучше, чем с novnc. По-моему, было бы лучше иметь консоль для каждой VM, а не глобальную? Но я не уверен насчёт этого...
     
     
     
    Gustavo Neves
    Guest
    #3
    0
    03.06.2025 05:48:00
    Ну да. Идеальный вариант был бы, если бы у VM/CT была настройка предпочитаемого консоли в веб-интерфейсе. По крайней мере, для Windows, RDP, наверное, лучший выбор по ощущениям. Но многие VM я просто открываю для обслуживания, и консоль noVNC вполне подходит. И она работает в любом браузере, без необходимости установки virt-viewer или spice guest tools. Ну а для эмуляции терминала xterm.js лучше, но для более длительного использования можно использовать ssh. Те же самые механики. Мой смысл в том, что для веб-интерфейса noVNC – это то, что всегда работает, без каких-либо требований к установке. Но было бы неплохо, если бы xterm.js был консолью по умолчанию для эмуляции терминала. А по Virtio-GPU, он может использовать SPICE для ускорения, как QXL-SPICE?
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры