Перейти к материалам

06.09.2018

7

Armafront переходит на Linux

by Dreamcast

Эта новость будет интересна для тех, кто так или иначе следит за жизнью сервера и нашего сообщества в целом. И нам есть о чём рассказать и показать. Ещё с самого начала существования проекта armafront были планы по установке сервера на Linux. В своё время были проведены даже тесты на моём втором, ещё старом ПК на базе Intel Core Quad Q6600(да да это 15 летней давности процессор на 775 socket). Тем не менее на обычном Linux Mint 17 ставился сервер армы, проведены тесты и это был очень интересный и познавательный опыт. Разумеется это всего лишь тесты, и сервер находится на нормальном железе). Однако у хостера был в распоряжении лишь Windows server 2016 на базе одного поколения с Windows 10. Поэтому поставили и управляли сервером через web интерфейс и RDP.
Честно сказать, вроде всё в порядке, работает и ладно, НО(!) накопилось множество негативных факторов:

1.Обновления.
Помните как было? Соберёмся поиграть толпой — сервер не доступен. Назначим какую нить крупную пострелушку на выходные дни — сервер не доступен. Пригласишь людей из вне — сервер как на зло не доступен. И ведь что самое поганое, обновления нельзя выключить! Это не Windows server 2003/2008… А ведь бывает и так, что играя на сервере повышался у всех пинг! Как вы думаете почему? Правильно… обновления качались на сервер

2.»Arma3_server.exe завершил работу». Круто да? Почему ?Когда? Что вызывало такую критическую ошибку? «Истина где то там(С)»

3.Не высвобождается оперативная память(RAM). И так, сервер по разным на то причинам начал лагать, или от греха подальше перед началом нового замеса хорошим тоном считается перезагрузить сервер arma. Т.е. завершить процесс и запустить по новой. Но прикол в том, что как было «сожрано» 4-6гб RAM так и осталась эта цифра. Т.е. запуская по новой arma3_server.exe оперативной памяти уже не хватает. Да впрочем какая разница? Процесс закрыт — память высвободилась. А тут что? На первых порах ещё было нормально, а потом пришли они — обновления…

4.Нет доступа на удалённую машину (RDP доступ к раб.столу Win server). А знаете почему? Правильно, сервер армы сожрал всю память и упёрся в пределы. Дальше серверная машина тупо висит. Требуется минут 10-15 что бы сервер вновь был запущен. Сервер arma3 перезапускать уже нет смысла, требуется отправлять всю машину на перезагрузку.

И что бы не расписывать тут целую поэму какая Windows плохая, ограничимся хотя бы этими 4мя пунктами что описаны выше.

Теперь ставим Linux. Вообще был выбор между Ubuntu server и Debian. Однако после долгих разговоров с хостером, уговорил поставить обычный Linux Mint 18.3 X64 Cinnamon. Да, это тот самый, обычный, домашний, даже не серверный(!) дистрибутив Linux который я использую на своём пк как основную ОС. Зачем?! fool Поясняю: мне нужен графический интерфейс для одновременной работы на сервере с двух и более удалённых пк, что бы я и другие админы могли зайти на удалённый рабочий стол по VNC совместно решая задачи, а так же работа с программой arma3sync.Да. он работает и на Windows и умеет в Linux.

Что нам это дало? Геморрой.-=СТАБИЛЬНОСТЬ=-

  • Сервер запускали раз 5 и каждый раз ошибка, то одна то другая. Сервер останавливался/зависал. И знаете что? Я очень рад тому, что благодаря более подробной Linux консоли я увидел список ВСЕХ ошибок. Вы бы хоть раз это своими глазами увидили crazy ! Сразу были обнаружены ошибки в скриптах которые пришлось исправлять сразу и на месте. Вы удивитесь когда увидите количество ошибок связанных не столько с какой то миссией загруженной на сервер, сколько проблем с 3D моделями, LOD`ами, текстурами, ошибки в bones(кости) и нарушений анимаций которые выдаёт тот же RHS или CUP.
  • Стабильный FPS. Как клиентский так и серверный. Почему? А всё потому, что Windows не так критично относится к тем самым допущенным ошибкам и просто их пропускала, вызывая тем самым микрофризы и/или снижение FPS.
  • Рабочий RCon доступ через BE_server.cfg. На Windows оно тоже работает, а у нас руки из жопы, поэтому никаким образом RCon через Battleye не работал, хотя всё было настроено как надо.
  • Нет никаких проблем с потребляемой оперативной памятью. Процесс закрыл — память освободилась. Всё.
  • Нет никаких проблем со входом на удалённую рабочую машину по VNC протоколу. Зашёл на рабочий стол и делай то что тебе нужно.
  • Не нужен какой либо дополнительный софт/программы в т.ч. платные(не крякнутые) для отслеживания состояния сервера. Если он по какой то причине и рухнул, он сам запустит сервер. Это ещё один плюс в копилку стабильности сервера.
  • Полностью устранены проблема с обновлениями. Это пожалуй один из самых жирных плюсов Linux сервера. Боже как я рад этому! Здесь я сам волен выбирать нужные обновления, когда мне нужно тогда их и ставлю, никаких напоминаний или обязательная перезагрузка после их установки. Я всегда знаю какие пакеты обновлений я ставлю. Это добавляет уверенности, что пригласив людей на игру, сервер не уйдёт в ребут потому что ему так захотелось. Обновления никогда сами НЕ загружаются и НЕ поставятся и ни при каких обстоятельствах. Всё, на этом точка.

Но есть и большая жирная ложка дёгтя в этой бочке мёда. Мы не будем об этом умалчивать и говорить о том что всё так прекрасно и радужно. Существует проблема совместимости RHS + CUP при включенном Battleye. Умом Россию разработчиков не понять. Запуская сервер только с CUP или только с RHS всё работает исправно. Как только запускается сервер с CUP + RHS то при присоединении игрока на сервер… ничего не происходит, а в консоли ошибка Connected to BE Master…

Чуть более точнее поясню:
CBA + CUP_core + CUP_terrain + CUP_Units + CUP_weapons + CUP_vehicles = работает
CBA + RHS_AFRF RHS_USAF RHS_GREF RHS_SAF = работает
CBA + CUP_core + CUP_terrain + CUP_Units + CUP_weapons + CUP_vehicles + RHS_AFRF + RHS_USAF + RHS_GREF + RHS_SAF = не работает.
Отключив в строке запуска RHS_GREF RHS_SAF = работает.

Получается проблема с этими двумя модами : GREF и SAF? Но увы, мы не можем от них отказаться так как множество нашего контента привязано к этим модам. К тому же, как я уже писал выше, RHS (т.е. все 4 его составляющих) работают исправно. Впрочем не мы одни такие криворукие, которые не смогли в установку модов? Вот пожалуйста, описание точно такой же проблемы ещё с 15го мая 2017. Вот и встал вопрос как быть ? Мы решили в качестве временного решения отказаться от Battleye в пользу полной сборки модов. Не ясно, где кроется проблема, в RHS? В CUP? в Battleye? Ещё раз подчеркну, такая проблема возникает только при включенном Battleye. Впрочем на сервере включена другая проверка — только разрешённый список модов. С другими не зайдёшь.

  1. varrkan_ua
    Сен 18 2018

    Ребята, вопрос, как у вас получилось запустить RCon? Ну никак не заводится. Прописан -bepath, прописан RConPort и RConPassword в battleye/beserver.cfg. Не подключается — хоть убей.

    Ответить
    • Сен 19 2018

      а какие собсна проблемы то? На Windows в А2 у нас работало, на Windows в А3 не хотело — хоть убей(С). Хотя всё тоже самое делали.
      Поставили Linux сервер — батлай работает.Ну кроме проблем совместимости CUP+RHS
      Опиши более подробнее

      Ответить
  2. varrkan_ua
    Сен 19 2018

    Debian 9.5.
    Прописаны RConPort и RConPassword в battleye/beserver.cfg и аналогичный в battleye/launch/beserver.cfg. Прописано BattlEye = 1; и battleyeLicense=1; в server.cfg
    Iptables или UFW нет, как и любых других фильтров.
    Стартовал сервер и с bepath и без него. Battle Eye стартует, конфиг переименовается в beserver_active_4e8c979b.cfg
    Сервер слушает на указанном порту 23006 (пробовал совсем разные с одинаковым результатом).
    Не подключается ни консольными утилитами как с локалхоста так и по локальной сети, ни ГУИшной утилитой по локальной сети.

    Battle Eye работает. Свои функции выполняет.

    13:57:06 Connected to Steam servers
    Arma 3 Console version 1.84.144943 x86 : port 2302
    13:57:22 headlessclient uses modified data file
    13:57:22 BattlEye Server: Player #0 headlessclient (127.0.0.1:2316) connected

    netstat -atunp | grep arma3server
    udp 0 0 0.0.0.0:23006 0.0.0.0:* 26130/arma3server

    tcpdump -i eth0 port 23006 -s 0 -S -vv
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    15:00:42.325159 IP (tos 0x0, ttl 64, id 13164, offset 0, flags [DF], proto UDP (17), length 53)
    192.168.0.22.35799 > 192.168.0.10.23006: [udp sum ok] UDP, length 25

    Запрос приходит — ответа нет sad Воюю с ним уже третий день — скоро лоб разобъю.

    Ответить
    • Сен 19 2018

      А в Beserver укажи порт 2316 без всяких bepatch
      кроме того, вопрос по делу: сервер запускается с модами или без?Тесты проводить стоит без модов, а потом уже их лепить.

      Зачем у тебя такая длинная строка ?»tcpdump -i eth0 port 23006 -s 0 -S -vv
      tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
      15:00:42.325159 IP (tos 0x0, ttl 64, id 13164, offset 0, flags [DF], proto UDP (17), length 53)
      192.168.0.22.35799 > 192.168.0.10.23006: [udp sum ok] UDP, length 25″ ???

      Ответить
      • varrkan_ua
        Сен 20 2018

        С портом попробую, этот ещё не пробовал smile
        Строка tcpdump там короткая, «tcpdump port 23006 -s 0 -S -vv» — всё остальное — это её выхлоп.

        Ответить
  3. varrkan_ua
    Сен 20 2018

    В общем — смена порта на 2316 результатов тоже не далаю Печальная непонятная хрень… Но всё остальное работает на «Отлично», так что пусть без RCon крутиться. Сдаюсь.

    Ответить
  4. varrkan_ua
    Сен 20 2018

    А, забыл сказать, пробовал запускать без модов, чистый сервер, без ничего. Тоже без результатов.

    Ответить

Оставить комментарий

Copy Protected by Chetan's WP-Copyprotect.