Игры за деньги: опыт развертывания сервиса PlaykeyPro

Cloud servicesGames and game consoles
🔥 Technotext 2020


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

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

По просьбам читателей статьи «Игры за деньги: опыт работы в распределенной игровой сети владельца нескольких серверов» и для желающих стать участниками децентрализованной сети PlaykeyPro, я решил пройти путь подключения заново с уже имеющимся опытом развертывания сервера на домашнем компьютере. Надеюсь я помогу понять уважаемой аудитории как происходит запуск, что для этого необходимо и как избежать известных проблем.

Подготовка


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

Если строго следовать минимальным требованиям, то получится сервер на котором можно будет играть всего в несколько игр. Учитывая постоянное изменение требовательности игр к ресурсам это может быстро привести к потере спроса на сервер или дополнительным расходам на переоснащение. Такое положение дел вряд ли обрадует тех кто собирается приобрести новый компьютер и сдавать его в аренду сервису в долгосрочной перспективе.

Как уже отмечали тестеры, и я с ними согласен, минимальные требования сформированы на основе характеристик работающих серверов централизованной сети Playkey.

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

Поскольку в работе сервера используются как физические так и логические ядра процессора выполнение требований по производительности процессора можно свести к элементарному сравнению производительности одного и нескольких физических/логических ядер процессора используя базу данных любой известной тестовой программы с учетом необходимого количества ядер в зависимости от игры по приведенной ниже таблице. Как основу можно взять производительность процессора Intel i5-8400. Его производительность на ядро достаточна для нормальной работы в большинстве игр за исключением нескольких требующих выделения большего числа ядер, и если у процессора их недостаточно, то в игру просто невозможно будет нормально играть.

Для упрощения оценки возможностей компьютера в качестве сервера PlaykeyPro приведу таблицу минимальных проверенных экспериментальным путем требований к виртуальной машине для запуска доступных игр децентрализованной сети на момент написания статьи. Функционирование самого сервера дополнительно потребует два логических ядра процессора, 8 ГБ оперативной памяти (12 ГБ при запуске на сервере нескольких виртуальных машин) и 64 ГБ на диске для операционной системы CentOS и базового ПО виртуальной машины.



На основе размера данных в таблице можно определить какой емкости должен быть жесткий диск. Не стоит забывать про резерв места для работы виртуальной машины, обновлений и новых игр. Количество игр стремительно растет и необходимый объем будет увеличиваться. Для нормальной работы нежелательно оставлять объем свободного пространства менее чем 100 ГБ.

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

Из опыта участия в бета-тестах в качестве носителей на сервере с одной виртуальной машиной рекомендую использовать HDD объемом не менее 2 ТБ в связке с диском SSD от 120 ГБ и больше для кэширования операций чтения файловой системы. Другие решения могут повлечь за собой большие финансовые затраты, правда для реализации работы более одной виртуальной машины в рамках одного сервера придется использовать исключительно диски SSD с высокой скоростью чтения.

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

Тем у кого нет возможности подключения носителей большого размера не стоит отчаиваться. Хранение данных на сервере основано на файловой системе ZFS которая с легкостью позволяет со временем наращивать объемы доступного дискового пространства без необходимости вносить изменения в текущую конфигурацию с полным сохранением данных. Такая реализация не лишена и недостатка в виде снижения надежности хранения данных, потому что при выходе из строя одного из носителей велика вероятность потери всех данных и придется ждать их загрузки с серверов Playkey, что совсем не радует учитывая объемы данных.

Предупреждение!


При развертывании сервиса диски с личными данными должны быть отключены!

Для тех кто планирует не только сдавать компьютер в аренду, но и использовать его для своих нужд, при одновременном подключении дисков для сервиса и для личного использования данные Ваших дисков также могут быть уничтожены в случае непредвиденной ошибки. Конечно каждый раз для личного использования компьютера физически отключать/подключать диски не стоит. Для дисков SATA в BIOS есть возможность отключать диск(и). Также существуют устройства управления питанием дисков SATA Switch, которые помогут быстро и безопасно отключать диски с важными данными. Что же касается дисков NVMe, то отключение дисков BIOS возможно только на редких материнских платах, поэтому использовать их для своих нужд нельзя.

Сетевые заморочки


В инструкции по развертыванию сервиса указаны параметры сети в виде проводного интернета не менее 50 Мбит/c и белого IP адреса у роутера. Разберемся детальнее. Параметры скорости проводного интернета знакомы практически каждому пользователю интернета, а вот белый IP или нет обычно мало кто интересуется и не знают как проверить.

Белым IP называют публичный внешний IP-адрес присвоенный только одному конкретному устройству (роутеру) в глобальной сети интернета. Таким образом имея белый IP роутера любой клиентский компьютер может напрямую подключиться к Вашему роутеру, который при помощи функций DHCP и UPNP транслирует подключение на сервер за роутером.

Для проверки публичности IP-адреса можно воспользоваться любым сервисом показывающим Ваш IP-адрес и сравнить его с IP-адресом внешнего соединения роутера. Если совпал — IP-адрес публичный. Публичные IP-адреса встречаются статические и динамические. Статические лучше всего подходят для сервиса, при использовании динамических могут быть неприятные сюрпризы в виде обрывов соединения с клиентским компьютером и сервером-менеджером подключения к сервису. Про статику IP-адреса можно уточнить у провайдера интернет-канала или хотя бы проверить в течении нескольких дней внешний IP-адрес роутера.

Одной из проблем встречающихся при развертывании сервиса является отсутствие поддержки или ошибки работы функции UPNP роутера. Чаще всего этим грешат дешевые роутеры предоставляемые провайдерами интернета. Если роутер из этой категории, то стоит предварительно найти документацию по настройке функции UPNP роутера.

Требование по скорости проводного интернета 50 Мбит/с задает минимальную пропускную способность интернет-канала для одной виртуальной машины. Соответственно для нескольких виртуальных машин потребуется интернет-канал с пропорционально увеличенной исходящей пропускной способностью, т.е. 50 Мбит/с умноженные на количество виртуальных машин. Трафик исходящих данных за месяц в среднем на одну виртуальную машину составляет 1.5 терабайт, так что лимитированные тарифные планы интернет провайдеров для подключения к сервису не подходят.

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

Из заметок тестеров хорошо проявляют себя в работе роутеры Mikrotik, Keenetic, Cisco, TP-Link (Archer C7 и TL-ER6020).

Встречаются и аутсайдеры. Например бытовой гигабитный роутер Asus RT-N18U после добавления второй виртуальной машины стал виснуть при продолжительных одновременных сессиях, замена его на Mikrotik Hap Ac2 полностью сняла проблему. Также частым явлением бывают обрывы соединения, в частности роутер Xiaomi Mi WiFi Router 4 приходится перезагружать раз в месяц (возможно и провайдер причастен, роутер навязали с утверждением, что на их оборудовании точно будет нормально работать 500мбит/с).

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

Железные нюансы


При установке обычно не требуется вмешательство пользователя, однако в данный момент конфигурация минимальна и ориентирована на владельцев компьютеров на базе процессоров Intel с накопителями подключенными через интерфейсы SATA. Если у Вас компьютер на базе процессора AMD или накопитель SSD NVMe, то могут возникнуть некоторые препятствия, и если в материалах статьи нет ответа на вопросы, то всегда можно спросить у техподдержки прямо на странице личного кабинета либо отправив письмо на support_miners@playkey.io.

Ранее среди требований в инструкции по развертыванию сервиса встречалось упоминание необходимости наличия интегрированной графики или дополнительной видеокарты для запуска и настройки сервера. На стадии закрытого тестирования данное требования потеряло свою актуальность и стало скорее инструментом более удобного администрирования сервера при непосредственном доступе владельца к серверу, но как и у любого сервера на основе ОС Linux для настройки и мониторинга доступно удаленное администрирование.

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

Конфигурация тестового компьютера


  • Блок питания Chieftec Proton 750W (BDF-750C)
  • Материнская плата ASRock Z390 Pro4
  • Процессор Intel i5-9400
  • Память Crucial 16GB DDR4 3200 MHz Ballistix Sport LT (одна планка)
  • SSD накопитель Samsung — PM961 M.2 2280, 512GB, PCI-E 3.0x4, NVMe
  • Видеокарта MSI Geforce GTX 1070 Aero ITX 8G OC
  • В качестве установочной флешки SSD SanDisk 16GB (USB HDD SATA RACK)

Установка


Скачивание образа “usbpro.img” по ссылке в инструкции развертывания PlaykeyPro и запись его на внешний USB носитель занимает всего пару минут. Дольше пришлось листать разделы настроек BIOS в поисках опций виртуализации: Intel Virtualization и Intel VT-d. Без активации этих опций виртуальная машина не сможет запуститься. После активации опций виртуализации установите параметры загрузки в режиме Legacy BIOS mode и сохраните настройки. Текущий официальный образ не поддерживает загрузку в режиме UEFI, разработчики анонсировали эту опцию в следующем выпуске образа. Первый запуск необходимо разово выполнить с предварительно подготовленного USB носителя. В моем случае для материнской платы ASRock использовалась клавиша F11 для вызова Boot Menu.





После выбора запуска с USB носителя не последовало красивых заставок и сразу отобразилось диалоговое окно с просьбой ввести идентификатор пользователя Playkey, который можно найти в правой верхней части «личного кабинета» после прохождения процедуры регистрации на странице лендинга.



После ввода идентификационного номера отобразилось окно с предупреждением о том что все данные на указанном диске будут безвозвратно уничтожены. В моем примере система и раздел с данными для игр будут находиться на одном диске. Для обеспечения привязки сервера к Личному кабинету используется наименование указанного диска. Занесение имени диска и идентификатора пользователя Playkey в конфигурацию сервера выполняется автоматически, но встречаются ошибки автоматизации на различном оборудовании. Запишите имя диска куда-нибудь, оно пригодится при ручной привязке сервера к Личному кабинету в случае ошибки. Вариант установки системы и данных с играми на разные диски отличается, но в виду редкости такой реализации я его не рассматривал для примера.



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



Прогноз времени скачивания образа системы оказался правдивым, через 45 минут установщик после проверки целостности образа приступил к его копированию на носитель. В процессе скачивания образа часто отображались сообщения об ошибках соединения ‘Connection timed out’, но это не влияет на процесс скачивания, скорее похоже на неправильно заданные таймауты в установщике.



Как и предполагал, после успешного копирования образа системы на носитель установщик допустил ошибку связанную с подключением раздела на носителе NVMe (в последней инструкции по развертыванию есть упоминание про отрицательный опыт при установке на диск NVMe и рекомендация не выбирать диски данного типа). В этом примере установки ошибка связана не с особенностями платформы AMD, а с элементарной ошибкой установщика в части корректного определения идентификатора раздела диска NVMe. Сообщил об ошибке разработчикам, в следующем релизе ошибки уже не должно быть. Если все же ошибка происходит, то при отправке заявки на подключение в дополнение к Playkey ID и модели роутера сообщите ранее записанное имя диска, и техподдержка выполнит настройку дистанционно.

И так, установка завершена, компьютер можно выключить и затем отключить USB носитель с установщиком. Следующий шаг самый волнительный и простой, включаем компьютер и ждем завершения загрузки операционной системы CentOS. Если все сделали правильно, то мы увидим следующую картинку.



Входить не требуется. Дальше сервис должен продолжить настройку и работу самостоятельно. Можно отправлять заявку на подключение.

Проверка подключения


Об успешном запуске сервера свидетельствует появление записи с ранее упомянутым именем диска в списке серверов личного кабинета. Статусы напротив сервера должны быть Online, Blocked и Free. Если сервера в списке нет, обратитесь к службе поддержки прямо из личного кабинета (кнопка внизу справа страницы).



После успешного запуска CentOS и подключения к личному кабинету сервер приступит к автоматическому скачиванию необходимых для работы данных. Процесс длительный и может затянуться в зависимости от пропускной способности интернет-канала. В примере скачивание данных выполнялось около 8 часов (с вечера до утра). Процесс закачки в личном кабинете на данном этапе тестирования никак не отображается. Для простого косвенного контроля можно контролировать статистику по трафику роутера. Если трафика нет обратитесь с вопросом о состоянии сервера в техподдержку.

При успешном скачивании базовых данных сервера и отсутствии технических проблем на виртуальной машине запуститься операционная система Windows с легко узнаваемым интерфейсом рабочего стола. После скачивания игры GTA5 на виртуальной машине автоматически запуститься тест производительности на базе игры GTA5, по результатам выполнения которого сервис автоматически примет решение о пригодности сервера и сменит статус Blocked на Available. На данный момент из-за ажиотажа бывают очереди на выполнения тестов, просто наберитесь терпения. Теперь можно отключить монитор и подключить вместо него эмулятор (заглушку). Прохождение теста фиксируется в разделе Sessions личного кабинета (Game: gta_benchmark). Если после завершения теста статус не изменился на Avilable обратитесь с вопросом в техподдержку.





Мои сборки


Узким местом тестовой сборки является процессор Intel i5-9400 который обладает ограниченным количеством ядер при отсутствующей технологии Hyper-threading, что ограничивает набор подключенных игр. Размер диска также ограничивает библиотеку игр и уже сейчас является причиной снижения утилизации серверов. Полная библиотека игр доступных для PlaykeyPro уже превысила размер 1TB.

В моем арсенале есть несколько серверов с запущенными двумя и тремя виртуальными машинами на базе трех видов материнских плат:

ASRock Z390 Phantom Gaming 6, i9-9900, DDR4 3200 48GB, SSD NVMe 1TB, SSD NVMe 512GB, GTX 1080ti, GTX 1070, GTX 1660 Super, блок питания 1000W
Gigabyte Z390 Gaming Sli, i9-9900, DDR4 3200 48GB, SSD NVMe 512GB, GTX 1070, GTX 1660 Super, блок питания 850W
Gigabyte Z390 Designare, i9-9900K, DDR4 3200 48GB, SSD NVMe 512GB, 3x GTX 1070, блок питания 1250W

В процессе тестирования сборок замечены следующие недостатки:

  • у первых двух сборок слоты 2-й и 3-й видеокарт расположены слишком близко друг к другу, что накладывает трудности в обеспечении должного охлаждения;
  • у материнской платы Gigabyte Z390 Gaming Sli слот для третьей видеокарты ограничен по шине PCIe двумя линиями v3.0 от чипсета материнской платы и соответственно заметны потери fps в процессе игры (на ASRock PCIe x4 v3.0 MCH, снижение fps не заметно);
  • при использовании процессора i9-9900 не хватает ядер для запуска требовательных игр на всех трех виртуальных машинах, поэтому в скором времени там будут функционировать две виртуальные машины;
  • невозможно использовать HDD в связке с двумя и тремя виртуальными машинами.


Сборка на базе материнской платы Gigabyte Z390 Designare из-за симметричного расположения слотов PCIe X16 оказалась самой удачной для обеспечения надежного охлаждения трех видеокарт. В том числе для обеспечения высокой производительности у материнской карты все три видеокарты подключены к процессорным линиям PCIe v3.0 по схеме x8/x4/x4 без участия MCH.

Заключение


Тщательное планирование структуры компьютера для развертывания сервиса PlaykeyPRO несомненно повысит надежность, производительность и срок эксплуатации сервера. Однако не стоит сразу строить сложные конфигурации на две/три виртуальные машины, начните с одной. Примерно через месяц можно прийти к пониманию процесса работы сервера и спланировать оптимальную конфигурацию своего оборудования.

В дополнение к минимальным системным требованиям приведу рекомендацию по конфигурации компьютера для сервиса, которая позволит обеспечить работу всех доступных игр и обеспечит запас производительности для новинок:

  • Процессор: 8 ядер
  • Жесткий диск: не менее 2 TB, SSD или SSD>=120 + HDD 7200 RPM
  • Оперативная память: 24 GB (лучше 32, 16+16 в двухканальном режиме)
  • Видеокарта: NVIDIA 2070 Super (аналог по производительности 1080Ti) или производительней

Приведенные сведения в статье основаны на моем личном опыте развертывания и эксплуатации серверов децентрализованной сети PlaykeyPro. Но даже спустя почти год участия в тестировании иногда приходится сталкиваться с ошибками в проектировании конфигурации оборудования.
Tags:распределенные сервисыкомпьютерыигры
Hubs: Cloud services Games and game consoles
+6
2.8k 9
Comments 15

Popular right now

Full-stack Java / Angular Developer
from 120,000 to 250,000 ₽Bergmann Infotech Group OstRemote job
Разработчик MS SQL
from 170,000 ₽ТакскомМосква
Senior Go developer
from 3,000 $DigitalHRRemote job
С++ game developer
from 120,000 to 200,000 ₽SPLRemote job
Senior Data Engineer (remote)
from 5,000 $WhiskRemote job

Top of the last 24 hours