Proxmox — це трохи кроляча нора, і ви можете багато чого зробити з віртуалізацією та контейнерами. Дивовижним вибором було б використовувати Proxmox як ігровий сервер, який працює завдяки перемиканню GPU, що мене завжди захоплювало.
Озброївшись скромно потужною системою AM4, я експериментував із грою у Virtual Machine і був здивований тим, наскільки добре це вийшло. Однак, як ви можете швидко зрозуміти, його налаштування було нелегким випробуванням, головним чином завдяки моїй конкретній комбінації обладнання.
Використання ігрового комп’ютера як сервера Proxmox
Спочатку потрібно вимкнути RGB
Можливо, це не найефективніше налаштування, але перетворити мій ігровий комп’ютер на сервер Proxmox було весело і, смію сказати, корисно. Йдеться про систему Ryzen 5600G на базі AM4 у поєднанні з 32 ГБ оперативної пам’яті та RX 9070 (не XT).
Це звичайний настільний комп’ютер, який навіть має модне RGB-підсвічування, яке я ненавиджу. Тим не менш, перетворення цього на коробку Proxmox було дещо складним процесом.
Я почав з того, що прошив Proxmox за допомогою флешки Ventoy і встановив його на 120 ГБ SSD SSD. Сам Proxmox займає дуже мало місця, і я люблю використовувати подвійні слоти M.2 материнської плати для інсталяції ігор і віртуальних машин.
Що стосується BIOS, то нічого не потрібно було робити, окрім увімкнення налаштувань віртуалізації, таких як SVM та IOMMU. Ви також можете змінити деякі частини під блоком ЦП, щоб заощадити більше енергії.
Я планував використовувати свій RX 9070 для віртуалізації, і це означало, що мені потрібен другий графічний процесор для Proxmox. Враховуючи мою материнську плату mATX і корпус, неможливо було розмістити GPU в іншому.
Тож я залишив свій Ryzen 5600G як є та використав його вбудовану графіку для розміщення Proxmox. RX 9070 «позичають» із сервера, а потім передають на віртуальну машину для деяких ігор із прискоренням GPU, коли це необхідно.
Це видаляє RX 9070 із сервера Proxmox для повного перемикання GPU. Якщо ви хочете розділити свій графічний процесор на кілька менших vGPU, вам знадобиться дуже конкретна серія GPU.
Коли все було розгорнуто, Proxmox завантажився та працював без проблем, за винятком дивної проблеми. RX 9070 спочатку потрапив на віртуальну машину, але потім відразу випав з шини. Це «заблокувало» його в підвішеному стані, фактично зробивши його непридатним для використання, де єдиним виправленням було примусове скидання живлення.
Для належної роботи RX 9070 потрібен сценарій підключення
Після встановлення проблем більше не буде
Графічні процесори AMD страждають від неприємної помилки переналаштування в Linux. Коротше кажучи, від’єднання графічного процесора AMD у Linux від драйвера vfio-pci змушує його переміщатися й ні до чого не підключатися. Такий «підвішений стан» буде зберігатися до повного одужання.
Це робить перемикання GPU трохи дратуючим, але є кілька виправлень. На жаль, ці виправлення є всюди, з кількома варіантами. Найпоширенішим виправленням є скидання постачальника, але воно здебільшого адаптовано до графічних процесорів RDNA 2, тому мій RDNA 4 RX 9070 не міг використовувати цей патч.
Технічно скидання постачальника не потрібне для моєї RX 9070 (оскільки він не підтримується повністю), але незалежно від того, що я намагався, графічний процесор все одно не міг завантажитися належним чином.
За межами варіантів я звернувся до Клода за порадою (поряд із переглядом форумів Proxmox). Виявляється, мені потрібно було створити сценарій підключення, який динамічно підключатиме та відключатиме драйвери amdgpu/vfio для віртуальної машини з комутацією GPU.
Сценарій запускається кожного разу, коли ви очищаєте віртуальну машину, і гарантує, що RX 9070 не зависне. Це критично важливо практично для всіх віртуальних машин із графічним процесором і є суворою вимогою.
Тестування деяких віртуальних машин у Proxmox
Windows і Bazzite, для початку
Тепер запустіть віртуальні машини. Я вибрав два: один для Windows 11 LTSC і один для Bazzite, щоб я міг мати досвід, схожий на SteamOS. Створювати віртуальні машини за допомогою графічного інтерфейсу було досить легко, хоча мені довелося вручну перемикати RX 9070 і обов’язково додати сценарій підключення.
Для віртуальних ресурсів я виділив 8 віртуальних ЦП (з 12) і 16 ГБ оперативної пам’яті для кожної віртуальної машини. Я мінімізував пам’ять для ОС і дав Bazzite 50 ГБ і Windows 120 ГБ. Я також запустив один із дисків NVMe, підключених до homelab, як спільний ігровий диск.
Одна інсталяція та кілька оновлень пізніше, я був готовий до кайфу. Що стосується продуктивності, я, чесно кажучи, не міг відрізнити гру між локальною грою та грою на віртуальній машині.
З огляду на те, що 5600G працює на PCIe 3.0 (а RX 9070 є картою PCIe 5.0), мають бути помітні втрати. Я особисто вважаю, що це чудово працює для слабшого процесора, і це компроміс, з яким я можу жити.
Подальші оновлення та деякі компроміси
Очевидно, я не запускаю дві віртуальні машини одночасно. Цей GPU не можна розділити на vGPU, і в мене також недостатньо оперативної пам’яті для цього. Тим не менш, запуск безголового, придатного для гри сервера Proxmox (поки інші контейнери працюють у фоновому режимі) працював напрочуд добре, і це налаштування, яке мені подобається використовувати.
Що стосується майбутніх оновлень і оптимізацій, 5950X може бути придатним лише для 16-ядерних і 32-потокових процесорів. Перехід на плату розміру ATX також може бути доречним, і X570 здається найкращим варіантом на даний момент (для розміщення додаткового графічного процесора). Можливо, проект на інший день.