… или как из игрового ноутбука средствами виртуализации сохранить игровую систему!
Если Вы рассматриваете ноутбук/ПК не только как игровую станцию, а еще и как хост для виртуальных машин, но при этом иногда нужно поиграть/поработать с 3d, то это возможно!

Добро пожаловать под cut.

Введение


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

Ограничения метода


Для проброса именно дискретной видеокарты ноутбука/PCI-Express порт с установленной видеокартой необходимо выполнение следующих условий:

  1. Процессор и материнская плата должны поддерживать VT-x, VT-d от Интел или AMD-Vi, IOMMU от АМД, а так же эти технологии необходимо активировать в BIOS.
  2. После включения технологии IOMMU, о чем будет сказано ниже, необходимо в консоли прописать команду # dmesg | grep ecap, если в полученных строчках ответа последний символ 8, 9, a, b, c, d, e, или f, то поддерживается технология переназначение прерываний, а значит проброс получится, иначе нет.
    Например «ecap 10207f» сигнализирует о том, что результат будет успешным, а «ecap 1000» сигнализирует о том, что можно предаваться унынию.
после активации IOMMU в файле grub
производим экспресс проверку на возможность проброса, прописываем команды и анализируем отклик:
root@proxmox:~# dmesg | grep ecap
[ 0.145822] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[ 0.145831] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
Переназначение прерываний работает, т.к. ecap оканчивается на A и E!
root@proxmox:~# lspci
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation CometLake-S GT2 [UHD Graphics 630]
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:14.3 Network controller: Intel Corporation Wireless-AC 9560 [Jefferson Peak] (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #0 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #5 (rev f0)
00:1c.5 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #6 (rev f0)
00:1c.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #7 (rev f0)
00:1f.0 ISA bridge: Intel Corporation H370 Chipset LPC/eSPI Controller (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation TU116M [GeForce GTX 1660 Ti Mobile] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU116 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU116 USB Type-C UCSI Controller (rev a1)
06:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
07:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
07:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
root@proxmox:~# find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/7/devices/0000:00:16.0
/sys/kernel/iommu_groups/15/devices/0000:07:00.0
/sys/kernel/iommu_groups/15/devices/0000:07:00.1
/sys/kernel/iommu_groups/5/devices/0000:00:14.3
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.5
/sys/kernel/iommu_groups/13/devices/0000:00:1f.3
/sys/kernel/iommu_groups/13/devices/0000:00:1f.4
/sys/kernel/iommu_groups/3/devices/0000:00:12.0
/sys/kernel/iommu_groups/11/devices/0000:00:1c.5
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/1/devices/0000:01:00.3
/sys/kernel/iommu_groups/1/devices/0000:01:00.2
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:17.0
/sys/kernel/iommu_groups/6/devices/0000:00:15.0
/sys/kernel/iommu_groups/14/devices/0000:06:00.0
/sys/kernel/iommu_groups/4/devices/0000:00:14.2
/sys/kernel/iommu_groups/4/devices/0000:00:14.0
/sys/kernel/iommu_groups/12/devices/0000:00:1c.6
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/10/devices/0000:00:1c.0
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/9/devices/0000:00:1b.0
Здесь нас из первого линстинга интересует адрес видеокарты и сопутствующих устройств, видно, что помимо видеокарты в одном блоке идет аудио-контроллер, а так же USB type-C контроллер, а в следующем листинге мы видим что устройства входят сообща в одну и ту же IOMMU-группу и при пробросе физически другим устройствам мешать не будут, следовательно проброс в теории возможен! Дальше только практика.

Что нам потребуется для установки и настройки


  1. ПК Ноутбук с дискретной игровой видеокартой у которого схема подключения к дисплею/монитору типа MUXedimage
  2. Роутер с доступом в интернет (Для настройки и последующего использования я бы рекомендовал подключаться кабелем к роутеру)
  3. Физически выделенный жесткий диск SSD под хост и виртуальные машины объёмом от 250Гб
  4. Загрузочная USB флешка с ProxMox'ом (надстройка над Debian Linux + KVM)
  5. Последняя версия VirtIO драйверов
  6. Дополнительный внешний монитор, подключённый к Вашему ноутбуку кабелем в видео-разъем управляемым напрямую дискретной видеокартой (кроме случаев, если у Вас дисплей ноутбука напрямую подключен к дискретной видеокарте)
  7. Дополнительную мышь и клавиатуру для гостевой системы, по крайней мере для первоначальной настройки
  8. Для удобства — второй ПК/ноутбук в сети на время установки и настройки софта, категорически для Вашего удобства, но это не является необходимым условием работы и дальнейшей эксплуатации такого ноутбука.

Установка ProxMox и настройка хоста


Настоящая настройка софта, нюансы и описание метода будет происходить на примере моего ноутбука от Clevo N957TC (aka Hasee ZX7-ct5da), о котором я уже писал на Хабрахабре статью. Такого рода ноутбуки сейчас продают в России под брендом Dream Machines
Intel Core i7-8700, GTX 1660Ti, 16 Гб ОЗУ, 500Гб SSD, 15,6 дюйма

0-й этап. Проверяем что бы в BIOS'е были включены нужные параметры виртуализации, указанные в требованиях к железу выше в этой статьи.

1-й этап. Устанавливаем ProxMox. Здесь все просто, самое главное аккуратнее с IP, т.к. теперь Ваше устройство по Вами выбранному протоколу (LAN/WiFi) будет работать на статике и именно через него виртуальные машины будут получать интернет. Не всегда это удобно, хотя потом можно будет перенастроить или даже обойти, например пробросив виртуалку напрямую порт с USB — 4G модемом.
После установки на ПК ноутбуке будет доступна только консоль, но в локальной сети ProxMox будет доступен через WEB-интерфейс по адресам:
https://"указанный_вами_при_установке_IP:8006
https://127.0.0.1:8006
Login: root
Password: тот_что_вы_указали_при_установке_Proxmox

В случае если нет второго ПК, то перед дальнейшей настройкой необходимо установить графический интерфейс для Linux. Для этого в консоли прописываете поочередно команды обновления репозитория:
# apt-get update
# apt-get dist-upgrade

после чего ставим выбранный GUI Linux (xfce4, gnome, kde, ...) на выбор, только ставить нужно полное окружение, иначе может не завестись сеть через браузер
# apt-get install kde-full

Перед тем как перезагрузится нужно создать юзера с обычными правами в системе:
# adduser новое_имя_пользователя

либо, настроить возможность логина в графическое окружение пользователю root, чего я не рекомендую делать, но вдруг!?

После перезагрузки логинимся под тем юзером, кто нам ближе, открываем браузер, вводим в строке адреса сайта адрес WEB-интерфейса ProxMox (см. чуть выше по тексту), прописываем логин и пароль пользователя root и попадаем в меню настроек хоста гипервизора.

image

2-й этап. Настраиваем хост. Открываем консоль хоста под root'ом. Для этого в браузере выбираем слева название Вашего ProxMox сервера, данное Вами при установке, и кликнув на нем правой кнопкой мыши, выбираем меню Shell. В новом окне будем проделывать все настройки, либо можно запустить из графического окружения терминал и прописывать команды добавляя sudo:
# nano /etc/default/grub

и редактируем строку, заменив в ней значения на следующие:
GRUB_CMDLINE_LINUX_DEFAULT=«quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset»

Если у Вас Процессор от AMD, то в строке выше intel_iommu=on меняете на amd_iommu=on. В сети есть свидетельства, что некоторым помогают дополнительные параметры в конце этой строки как video=vesafb:off,efifb:off, но при этом параметре после загрузки экран ноутбука погаснет.

После этой манипуляции необходимо сохранить файл и дать команду, с последующей перезагрузкой хоста:
# update-grub

После чего прописываем следующие команды в консоли
# echo «options vfio_iommu_type1 allow_unsafe_interrupts=1» > /etc/modprobe.d/iommu_unsafe_interrupts.conf
# echo «options kvm ignore_msrs=1» > /etc/modprobe.d/kvm.conf

# echo «softdep nouveau pre: vfio-pci» » /etc/modprobe.d/nvidia.conf
# echo «softdep nvidia pre: vfio-pci» » /etc/modprobe.d/nvidia.conf
# echo «softdep nvidia* pre: vfio-pci» » /etc/modprobe.d/nvidia.conf

Здесь последние три команды отвечают за частичное решение проблем с ошибкой 43, помогает на ряде оборудования, широко известной в узких кругах. А первые две за уменьшение проблем с работой пробрасываемого железа в виртуальную машину.

Прописываем в файле конфигурации # nano /etc/modules загрузку необходимых драйверов:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Сохраняем файл и выходим. Затем запрещаем ProxMox'у использовать следующие драйвера видеокарт на хосте:
# echo «blacklist radeon» >> /etc/modprobe.d/blacklist.conf
# echo «blacklist nouveau» >> /etc/modprobe.d/blacklist.conf
# echo «blacklist nvidia» >> /etc/modprobe.d/blacklist.conf


Прописываем следующую команду (здесь 01:00 блок адресов дискретной ВК)
# lspci -n -s 01:00
на что получаем ответ
01:00.0 0300: 10de:2191 (rev a1)
01:00.1 0403: 10de:1aeb (rev a1)
01:00.2 0c03: 10de:1aec (rev a1)
01:00.3 0c80: 10de:1aed (rev a1)
Запоминаем эти значения, после чего открываем для редактирования файл настроек # nano /etc/modprobe.d/vfio.conf и аккуратно прописываем
options vfio-pci ids=10de:2191,10de:1aeb,10de:1aec,10de:1aed disable_vga=1


На этом настройка самого ProxMox у нас закончена, необходимо дать следующие команды
# update-initramfs -u
# reset
и перезагрузить хост. Теперь у нас все готово к тому, что бы приступить к настройке виртуальных машин.

3-й этап. Настраиваем виртуальную машину. Теперь создаем через веб интерфейс шаблон настроек и правим через консоль файл настроек виртуальной машины. Для этого в консоли необходимо ввести # nano /etc/pve/qemu-server/номер_виртуальной_машины_из_WEB-интерфейса.conf, после чего необходимо внести следующие дополнительные строки
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'

bios: ovmf

cpu: host,hidden=1,flags=+pcid

machine: pc-q35-3.1

hostpci0: 01:00.0,pcie=1,x-vga=on
Пример файла настроек Виртуальной машины
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'
bios: ovmf
boot: order=ide2;sata0;net0
cores: 4
cpu: host,hidden=1,flags=+pcid
efidisk0: local-lvm:vm-100-disk-0,size=4M
hostpci0: 01:00.0,pcie=1,x-vga=on
ide2: none,media=cdrom
machine: pc-q35-3.1
memory: 8196
name: Windows10
net0: virtio=BE:AB:28:39:99:70,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: local-lvm:vm-100-disk-1,size=100G
scsihw: virtio-scsi-pci
smbios1: uuid=669a38fe-c0f1-481a-aae4-f2444fc2625f
sockets: 1
usb0: host=1-3,usb3=1
vga: none
vmgenid: f2576d2f-629e-4b4e-b9eb-59735c6e3050

Здесь нужно сказать следующее: несмотря на то что в виртуальную машину можно добавить программный видео-адаптер, я бы не рекомендовал это делать, т.к. сейчас важно определить работоспособность видеовывода. Если Ваше железо приняло все текущие настройки на ура, то при старте виртуальной машины с подключенным в правильный порт монитором вы увидите картинку с логотипом ProxMox на заставке. Дальше следуют 3 пути развития событий:

  1. Идеальный — весь процесс установки ОС вы будете наблюдать на внешнем мониторе. Тогда тормозим систему, пробрасываем USB мышь и временно USB клавиатуру. После чего вновь стартуем виртуальную машину и проводим установку до конца.
  2. Дальше логотипа ProxMox ситуация не сдвинется с места, не смотря на то, что если все-таки подключить софтовую видеокарту и подключится к виртуальной машине через видео-консоль, то процессом установки ОС можно будет управлять дальше. Здесь нужно остановиться и воспользоваться поиском, связанным с дополнительными параметрами в настройках файла grub или самого ProxMox. Т.к. если видеосигнал пошел. то и проброс возможен. Здесь нужно понять и определится в чем именно ошибка или нехватка каких-либо параметров.
  3. Черный дисплей и отсутствие видеосигнала на внешнем мониторе. Скорее всего вы потерпели фиаско и, если проблема не в отсутствии контакта, забытом переключателе питания или канале видео вывода на мониторе, то — увы!

Я рекомендую начать установку в виртуальную машину Линукс. Потому что у линуксовых драйверов меньше проблем с ошибкой 43, для чего рекомендую живой образ Garuda Linux, основанный на Arch Linux, если у Вас Live DVD стартовал с включенным видеодрайвером — поздравляю. В Windows Успех гарантирован на 99%. В самой Windows могут быть проблемы, а именно нам потребуется последний видеодрайвер под Вашу видеокарту. Почему-то стандартный видеодрайвер от производителя ноутбука у меня в виртуальной машине не завелся, выдав широко известную ошибку в узких кругах под номером 43. Прежде чем нам удастся скачать их необходимо виртуальной машине с Windows подсунуть диск с драйверами VirtIO и произвести установку. После того как Вы с качаете свежий драйвер пак необходимо будет распаковать драйвера и вручную подсунуть драйвер видеокарты. При этом будьте внимательны, а именно: моя ВК на нативном железе в Windows определяется как GTX1660ti, но на нее драйвер мобильной видеокарты без ошибок не встает, встает только GTX1660ti max-q, т.к. теплопакет у меня 80Вт на ВК.

ЗЫ. Т.к. настройка ноутбука окончательно не завершена, то статья будет дополнятся, в частности будут решаться проблемы о пробросе интегрированной видеокарты в виртуальную машину, пробросе клавиатуры ноутбука, тесты и сравнение нативного железа с виртуальным, а так же в планах снять видеоинструкцию о настройке системы.

Всем Добра! Берегите себя и Ваши гаджеты! =)

Комментарии (18)


  1. Nicknnn
    06.09.2021 22:09
    +3

    Современные ноуты все MUXless, тут важен иной признак. Если дискретная видеокарта в lspci видна как VGA adapter - то скорее всего её можно пробросить. Если она видна как 3D accelerator, то пробросить её будет очень тяжело. У таких "3D ускорителей" биос вшит в системный биос и при старте драйвера он будет пытаться читать его через acpi вызовы. Я пробовал собирать ovfm со вшитым биосом и таблицей acpi с _ROM методом, что выдаёт прошивку драйверу в VM, и драйвер nVidia даже заработал. Но сообщал любому 3d приложению, что нет монитора и по этому запустить приложение невозможно. И в этом и есть ключевое отличие  видеокарт с таким именованием в lspci.

    Но может есть рецепт, как прикрутить "виртуальный" монитор?

    Ну и конечно проксмокс для этого не обязателен, достаточно kvm.


    1. LuchS-lynx Автор
      06.09.2021 22:34

      Современные ноуты все MUXless

      Не соглашусь, как минимум топовые игровые машинки навроде Dell Alienware, затем большая часть ноутбуков на баребонах Clevo, да даже Asus Tuf gaming fx505 имеет hdmi подключенный напрямую к дискретке. Другой момент, что определить это можно только опытным путем или достав Service Manual со схемой элементов ноутбука, что порой выливается в тот еще квест. При этом я пишу дальше что это необходимое условие, но недостаточное.

      В сети есть гайд, я не тестил, по настройке проброса видеокарты на ноутбуках как MUXed так и MUXless, при этом что бы картинка выводилась на дисплей ноутбука, а не на внешний монитор.

      https://gist.github.com/Misairu-G/616f7b2756c488148b7309addc940b28

      и некоторый перечень ноутбуков, на которых этот метод тестировался

      https://gpu-passthrough.com/

      У меня есть ряд задумок на счет проброса интеграшки, но для этого мне нужно свободное время, которого мало

      Если дискретная видеокарта в lspci видна как VGA adapter - то скорее всего её можно пробросить. Если она видна как 3D accelerator, то пробросить её будет очень тяжело

      Спасибо, надо обратить внимание. Я же исхожу из того, что пробрасываю не ВК, а pci-e порт с подключенной/распаянной ВК, поэтому ориентируюсь на группы, доступные для проброса и экспресс тест на переназначение прерываний. Этот ноутбук мой первый опыт такого рода, то что он оказался MUXed удача и совпадение, при его покупке я думал совсем о других вещах...

      Но может есть рецепт, как прикрутить "виртуальный" монитор?

      Ну и конечно троксмокс для этого не обязателен, достаточно kvm.

      я не совсем уверен, но может здесь выручит hyper-v + remotefx или виртуальный адаптер VirtIO video adapter, правда это не совсем gpu-passthrough. Вторая мысль, которую я хочу протестировать, а если пробросить интеграшку с обвязкой? Получится ли тогда получить картинку напрямую на дисплее ноутбука.

      Конечно необходимо и достаточно KVM + Linux, но на мой взгляд ProxMox несколько проще в настройке плюс имеет более дружелюбный WEB-интерфейс


      1. Nicknnn
        07.09.2021 10:12

        Так ведь подключение hdmi напрямую к дискертной видеокарте и есть muxless. Если в ноутбуке есть "мультиплексор", то есть возможно переключить выход дискретной видеокарты от этого hdmi встроенному дисплею. Но такой возможности в большинстве ноутбуков нет. По этому я и берусь утверждать, что все современные ноутбуки MUXLess. Все порты ноутбука распределены между видеокартами и физически между ними не переключаются.

        Сейчас я использую ASUS TUF Gaming A15 FA506IU. Он имеет встроенны в райзен radeon и дискретный GTX 1660 Ti Mobile. Дисплей и порт HDMI у него подключены к radeon. А DisplayPort (type-c) подключен к GTX 1660. И преключить это никак нельзя. Вывод через DP возможен только через xradr --setprovideroutputsource (который не работает в связке radeon nvidia, хоть в последней версии драйвера это обещали ). Это и есть MUXLess, отсутствие коммутации выходов.


        1. LuchS-lynx Автор
          07.09.2021 11:35

          Так ведь подключение hdmi напрямую к дискертной видеокарте и есть muxless.

          Я ориентировался на вот эту картинку из этой статьи, в которой такие ноутбуки где дискретка имеет прямой вывод на внешний видеопорт типа HDMI/DP как MUXed. Собственно из-за этого у нас с вами небольшая путаница в определениях.

          https://gist.github.com/Misairu-G/616f7b2756c488148b7309addc940b28

          Вывод через DP возможен только через xradr --setprovideroutputsource (который не работает в связке radeon nvidia, хоть в последней версии драйвера это обещали )

          собственно ссылка в этом посте выше об этом, я же подошел к проблеме так же как и решал ее на десктопе - проброс ВК с pci-e портом и настройка хоста что бы виртуалка со всем этим работала.


          1. Nicknnn
            07.09.2021 11:58

            Просто картинка устарела :)

            Я дорисовал случай с портом к дискретной видеокарте


            1. LuchS-lynx Автор
              07.09.2021 13:24

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


    1. meDveD_spb
      07.09.2021 09:27



    1. meDveD_spb
      07.09.2021 09:51

      Но может есть рецепт, как прикрутить "виртуальный" монитор?

      Выбираем Display: virtio-gpu, spice (qlx)

      если в конфиге:
      vga: virtio или qlx


      1. Nicknnn
        07.09.2021 10:00

        Я не об этом, а о nvidia без монитора. Может есть рецепт как заставить драйвер считать что монитор есть.


  1. ChePeter
    06.09.2021 22:35

    Как то давно потратил три дня на выяснение того, что карты без FLR+ не пробрасываются.

    Теперь не знаю, но наверно всё также, требуется в lspci FLReset+.


  1. TokminD
    07.09.2021 05:39
    +1

    Игрался с KVM и Passthrough чуть в ином ключе. Хотел совместисть линукс инструментарий и хранилку, поставив Debian+KVM, прокинуть контроллер HDD в виртуальную машину и поставив там FreeNAS. Производительность хранилки получилась близкой к нативной, но памяти было маловато для линукс окружения. Опыты проводились на HP Microserver Gen10. Тогда же я узнал что есть патч на ядро Linux для более мелкого деления на IOMMU group, чем мне и пришлось воспользоваться. Так что если видеокарта находится в одной группе с чем-то важным, то можно пропатчить ядро и получить более мелкие группы. Хотел написать обзорную статью тогда по результатам виртуализации NAS сервера с нативным контроллером и сравнением скорости, но и метрики слабые снял и руки не дошли.


    1. Am0ralist
      07.09.2021 09:43

      Жаль, что не написали про сами игры с HP Microserver gen10, было бы интересно пример наглядный видеть с патчингом и результатами, даже без «сильных» метрик.


      1. LuchS-lynx Автор
        07.09.2021 10:02

        Я на десктопе пробросил RAID-контроллер LSI 9211-8i в виртуалку без проблем, во-первых контроллер сам по себе наименее проблемный при работе на рандомном железе, с другой стороны настройка проброса очень простая, через web-интерфейс или вручную прописывается в файле-конфигурации ВМ что-то вроде:

        hostpci0: 02:00.0,pcie=1

        На этом все. Хотя не совсем... если виртуалка аварийно завершает работу, то получаем на выходе ребилд массива (у меня контроллер без батарейки), т.е. выключать нужно такую виртуалку через гостевую операционку. Если перезагружается ProxMox сервер или выключается, то он завершает работу виртуалки корректно, но вот использовать вручную Stop - противопоказано.


  1. meDveD_spb
    07.09.2021 08:21

    sata0: local-lvm:vm-100-disk-1,size=100G
    почему не scsi0?

    machine: pc-q35-3.1
    3.1? из какого года дистрибутив?

    Теперь создаем через веб интерфейс шаблон настроек и правим через консоль файл настроек виртуальной машины.

    Либо создаем машину через веб-интерфейс, либо через консоль.
    Ничего править не надо после создания.


    1. LuchS-lynx Автор
      07.09.2021 08:29

      почему не scsi0?

      я как-то пробовал, у меня винда при установке не видит виртуальный диск с такими настройками, возможно это были проблемы конкретного дистрибутива, поэтому использую SATA для виртуального жесткого диска, сам ProxMox вместе с ВМ, пока что, стоит у меня на SATA SSD 2.5" Samsung EVO 870

      3.1? из какого года дистрибутив?

      ProxMox версия 7.0-8, основанный на Debian 11 Linux (“bullseye”), последний из доступных. У них с 7-й версии появилось возможность выбора версии машины q35... не знаю c чем там связано, но в ряде рекомендаций по решению проблем с ошибкой 43, почему-то, рекомендуют ставить именно эту версию q35 принудительно. А как говорится, работает - не трожь!

      Либо создаем машину через веб-интерфейс, либо через консоль.Ничего править не надо после создания.

      строку с аргументами через веб интерфейс не пропишешь, да и ряд нюансов проще именно прописать ручками, а не "натыкать". Дальнейшая работа с конфигурационным файлом ВМ вполне себе удобнее делать через web-интерфейс


      1. meDveD_spb
        07.09.2021 09:03
        +2

        А как говорится, работает - не трожь!

        Нет, использовать надо последнюю, соответствующую текущей версии qemu.
        Выбор был и раньше, надо просто раскрыть Advanced.

        не видит виртуальный диск с такими настройками,

        но использовать надо VirtIO SCSI. какой у вас интерфейс у ssd - неважно.
        надо образ с virtio еще при установке вторым cd-rom-ом. с него и взять драйвер.

        строку с аргументами через веб интерфейс не пропишешь,

        пропишешь, галочку Advanced при создании в веб-интерфейсе, не надо ничего править после.

        если хочется вручную или уже есть готовый конфиг, то сразу создаём файл xxx.conf со всеми параметрами.


        1. LuchS-lynx Автор
          07.09.2021 09:06

          но использовать надо VirtIO SCSI. какой у вас интерфейс у ssd - неважно.надо образ с virtio еще при установке вторым cd-rom-ом. с него и взять драйвер.

          пропишешь, галочку Advanced при создании в вэб-интерфейсе, не надо ничего править после.

          век живи - век учись! Спасибо, буду пробовать! ;)


          1. werter_l
            11.09.2021 21:27

            Спасибо за статью.
            Насчет virtio-драйверов.
            Ставите Win хоть на ide, после устанавливаете ОС + virtio-драйверы, выкл. ВМ, добавляете scsi-диск (1Гб хватит ), запускаете ВМ.
            ОС увидит этот диск и установит драйвер.
            Выкл. ВМ, удаляете этот маленький диск.
            Переподключаете основной диск как scsi и запускаете ВМ. Всё.

            И лучше в кач-ве контроллера пользовать virtio scsi single. Так получается отдельный контроллер на каждый диск.

            Зы. Мой цикл ссылок по proxmox и не только forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense-%D0%B8-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1