제퍼넷 로고

Rock Pi X에서 Docker를 사용하여 Valheim 전용 서버를 호스팅하는 방법

시간

영상

Will Ho Hacker Noon 프로필 사진

@이카루스윌 호

기계 학습 엔지니어

요즘 Valheim은 ​​모든 분노입니다. 2K 피크 플레이어로 Dota 500를 능가 21 년 2020 월 XNUMX 일에 6 백만 판매 마크 며칠 전. 나 자신을 비 순응 주의자라고 선언하고 싶은만큼 나도 발 하임의 신비한 매력에 굴복했다고 말하는 것이 부끄럽다.

저는 3 주 전에이 게임을 선택했고, 셀프 호스팅에 대한 집착을 감안할 때 가장 먼저 한 일은 전용 서버를 호스팅하는 가장 비용 효율적인 방법을 찾는 것이 었습니다.

면책 조항 : 저는 Rock Pi X의 제조업체 / 배포자 인 Radxa / Allnet과 제휴하거나 후원하지 않습니다. 본인의 돈으로 Rock Pi X를 구입했으며, 전용 서버를 실행 한 경험을 공유하기 위해 글을 쓰고 있습니다. 그 위에.

Valheim은 ​​무엇입니까?

영상

바위 밑에 살고있는 경우 Valheim은 ​​현재 스웨덴 개발자 Iron Gate Studios가 개발 한 가장 인기있는 생존 샌드 박스 게임으로 5 명으로 구성된 팀입니다. 한 시점에서 Valheim의 Steam에서 최고 플레이어 통계는 Counter Strike : Global Offensive (CS : GO)에 이어 두 번째로, 얼리 액세스에만 있으며 그 후 한 달이 조금 넘게 공개 된 점을 감안할 때 매우 인상적입니다.

전용 서버를 호스팅하는 이유는 무엇입니까?

Valheim은 ​​Minecraft 및 기타 유사한 샌드 박스 게임과 눈에 띄는 유사점을 가지고 있으며, 그로 인해 전용 서버가 게임 경험에 중요한 추가 요소 인 동일한 이유를 공유합니다.

게임을 시작하려면 플레이어는 캐릭터를 생성하기 전에 먼저 월드를 생성 한 다음이 새로 생성 된 월드에 합류해야합니다. 플레이어의 컴퓨터 (호스트)에 의해로드되고 다른 플레이어에게 개방되도록 구성된 월드는 기능적으로 서버와 동일합니다. 멀티 플레이어는 다른 플레이어를 게임에 초대함으로써 달성됩니다. 플레이어는 IP 주소 또는 Steam의 친구 목록을 통해 직접 참여할 수 있습니다.

이 모델은 샌드 박스 게임에 대해 모래 상자 각 플레이어가 자신의 세계를 생성하거나 다른 세계에 합류하는 외부 영향으로부터의 고립을 의미합니다. 격리없이 Valheim은 ​​일반적인 MMORPG와 크게 다르지 않습니다.

여기서 유일한 문제는 호스트가 게임을 종료하면 서버의 다른 모든 플레이어가 즉시 연결 해제 과 다시 참여할 수 없습니다 같은 세계가 아니라면 호스트가 온라인 상태이며 게임 중입니다.. 특히 우리의 가장 친한 친구가 가져온 불확실한 시간 동안 작업 일정의 예측 불가능 함과 함께 친구들 사이에서 공통 시간 슬롯을 찾는 것이 점점 더 어려워지고 있다는 점을 감안할 때 재미있는 경험이 아닙니다. Covid-19.

전용 서버가 할 수있는 일

비동기 집단 진행

전용 서버를 통해 플레이어는 게임 일정을 서로 분리하고 원할 때마다 플레이하면서 집단적 진보 공유 된 세계의. 예를 들어, 게임에 들어가서 스트레스 해소 목적으로 나무 숲 전체를 자르는 데 한 시간을 할애 할 수 있지만 그렇게함으로써 얻은 나무를 사용하여 기지에있는 비축 물을 보충 할 수 있습니다. 벽을 짓기 위해 일찍.

이 요소 비 동시성의 집단적 진보, 제 생각에는 Valheim을 정말 재미있게 만들고 지금까지 Valheim의 성공적인 성공의 주된 이유 중 하나 일 것입니다. 게임에서 떨어져있는 친구들 사이에서 일정을 조정하는 스트레스를 덜어 주며, 아무도 함께 플레이 할 시간에 동의 할 수없는 경우에도 각 플레이어가 팀으로 플레이 할 수있는 기회를 제공합니다.

성능 디커플링

또 다른 이점은 전용 서버가 컴퓨터 성능에서 서버 성능을 분리한다는 것입니다. 예를 들어, 평균 이하의 컴퓨터를 사용하는 경우 Valheim 게임을 호스팅하면 다른 플레이어가 컴퓨터의 네트워크 연결 또는 CPU 리소스에 병목 현상을 일으킬 수 있습니다.

전용 서버를 사용하면 컴퓨터는 이제 다른 플레이어가 집중해야하는 컴퓨팅 세계 변화의 부담에서 벗어날 수 있습니다. your 게임 경험. 무엇보다도 성능 문제가 발생할 때 다른 모든 플레이어의 즐거움이 줄어들지 않습니다.

더 나은 사양의 컴퓨터를 얻지 못한 것에 대한 유효한 변명은 아니지만, 최소한 전용 서버에 약간의 지연이있는 것처럼 보일 때마다 이제 다른 플레이어와 고통을 공유하고 책임을 탓할 수 있습니다. 섬기는 사람. 😂

재해 복구

솔로 플레이어 든 친구와 함께 멀티 플레이어를 선호하든 상관없이 재해 복구는 최소한 준 중요한 모든 서비스의 중요한 측면입니다. 플레이어 당 하루에 2 시간 씩 6 명으로 구성된 서버에 기지, 부두, 성, 자원을 축적하는 등 몇 주에 걸쳐 호스트의 컴퓨터가 죽을 때만 진행 상황을 잃는다 고 상상해보십시오. 그것은 쉽게 180 인시 손실입니다!

배포하기로 선택한 구현에 따라 전용 서버를 사용하면 게임 세계의 백업을 예약하고 언제든지 특정 백업으로 세계의 상태를 복원 할 수 있습니다. 개인적으로 저는 15 분마다 백업을 예약하여 최대 손실이 15 분으로 제한되고, 끔찍한 문제가 발생할 경우를 대비하여 최대 24 시간 동안 백업을 보관합니다.

설정

모든 이야기를 중단하고 설정 자체에 대해 알아 보겠습니다!

하드웨어

다름 아닌 Rock Pi X!

영상

Rock Pi X의 사양

| Aspect | Rock Pi X |
|----------|----------------------------------------------|
| CPU | Intel Atom x5-Z8300 Cherry Trail (Quad core) |
| Cores | 4x 1.44GHz with Turbo Boost to 1.84GHz |
| Memory | 4GB LPDDR3-3200 |
| Ethernet | Gigabit |
| Storage | eMMC (32GB/64GB) |
| USB | - 1x USB 3.0 (OTG/Host) |
| | - 3x USB 2.0 |
| Power | USB-PD |

Rock Pi X에는 납땜 된 eMMC 모듈이 함께 제공되며 이는 arm64 자매 제품인 Rock Pi 4의 일반적인 모듈 식 eMMC와는 다르지만 BIOS로 만들어야하는 절충안입니다. 스왑되는 스토리지가 마음에 들지 않습니다..

전반적으로 전체 설정 비용은 다음과 같습니다.

| Item | Cost (SGD) | Cost (USD)* |
|------------------------|------------|-------------|
| Rock Pi X (32GB eMMC) | S$100.86 | US$75.00 |
| Heatsink | S$10.75 | US$7.99 |
| 45W USB-PD Power Brick | S$10.75 | US$7.99 |
| USB-C to USB-C Cable | S$6.71 | US$4.99 |
| Shipping | S$17.55 | US$13.04 |
| Total | *S$146.60* | *US$109.01* |
* SGD/USD exchange rate is 0.746268 as of the time of writing

그리고 이것은 오래된 클러스터 랙 케이스를 사용한 최종 설정의 모습입니다.

영상

왜 Rock Pi X인가?

가장 싼 락 파이 X를 선택했습니다 amd64 / x86 스토리지 및 메모리가 포함 된 시중의 단일 보드 컴퓨터 (SBC). ODROID H2 +를 살펴 보았지만 영구적으로 품절, 모든 구성 요소가 포함되어 있으면 비용이 많이 듭니다. 사실, Odroid H2 + 설정의 총 비용은 제가 구매하기에 충분합니다. 2 록 파이 X 설정!

여전히 확신이 서지 않는 경우 Odroid H2 +의 비용 분석은 다음과 같습니다.

| Item | Cost (SGD) | Cost (USD)* |
|-----------------------|------------|-------------|
| Odroid H2+ | S$158.58 | US$118.00 |
| 15V 4A Power Supply | S$12.63 | US$9.40 |
| Samsung 8GB SO-DIMM | S$48.38 | US$36.00 |
| Samsung 8GB SO-DIMM | S$48.38 | US$36.00 |
| ^Shipping | S$40.32 | US$30 |
| Samsung 960 Evo 250GB | S$63.00 | US$46.88 |
| Total | *S$371.30* | *US$276.28* |
* SGD/USD exchange rate is 0.746268 as of the time of writing
^ This shipping costs WAY too much in my opinion

내가 Rock Pi X를 선택한 또 다른 이유는 크기. Rock Pi X는 많은 x86 SBC와 달리 Raspberry Pi 폼 팩터를 채택하여 많은 공간을 절약합니다. 추가 보너스로, 폼 팩터는 이전에 폐기 된 클러스터에서 재활용 된 이전 GeauxRobot Raspberry Pi 클러스터 케이스에 적합 함을 의미합니다. 낙지.

클라우드 VM이 아닌 이유는 무엇입니까?

알아요, 지금 쯤이면 왜 제가 클라우드 VM을 사용하지 않았는지 궁금 할 것입니다.

클라우드 가상 머신에서 Valheim을 실행하는 옵션을 고려했지만 가격도 꽤 비쌌습니다.

에 기초 Redditors의 경험 in r / valheim, 전용 서버에 최소한 vCPU 2 개 과 RAM 3GB. 3 개의 주요 클라우드 서비스 제공 업체에서 사용 가능한 최적의 가격을 검색했으며 아래 표에 제가 찾은 내용이 나와 있습니다.

| Item | AWS | Azure | GCP |
|----------------------|-----------------------|------------------------|------------------------|
| Instance Type | t4g.medium | A2 v2 | e2-custom-2-4096 |
| vCPUs | 2 | 2 | 2 |
| Memory | 4 GiB | 4 GiB | 4 GiB |
| Instance Class | Spot | Low Priority | Preemptible |
| **Compute Subtotal** | **US$9.29 (S$12.49)** | **US$13.87 (S$18.65)** | **US$16.41 (S$22.07)** |
| Storage Type | EBS SSD (gp2) | Standard SSD | Zonal standard PD |
| Storage Capacity | 32GiB | 32GiB | 32GiB |
| Storage Subtotal | *US$3.84 (S$5.16)* | *US$2.40 (S$3.23)* | *US$1.41 (S$1.90)* |
| Monthly Total | *US$13.13 (S$17.66)* | *US$16.27 (S$21.88)* | *US$17.82 (S$23.96)* |
* SGD/USD exchange rate is 0.746268 as of the time of writing

위 가격에는 치명적인 데이터 손상이나 손실이있을 경우 데이터를 복구하는 데 스냅 샷이 사용되는 디스크 스냅 샷 비용이 제외됩니다. 이것은 당신과 당신의 친구들이 공동으로 만든 세계의 모든 발전을 잃을 추가 위험에 노출됩니다.

VM 비용을 더욱 줄이기 위해 가상 머신의 인스턴스 클래스를 다음과 같이 낮추었습니다. Spot/낮은 우선/선점 형, 클라우드 제공 업체에 따라 다르지만 모두 동일한 의미입니다.

누구도 구매하고 싶어하지 않는 물리적 서버의 남은 컴퓨팅 용량을 대폭 할인 (~ 70 %)으로 판매합니다.

그러나 언제든지 남은 용량을 더 이상 사용할 수없는 경우 컴퓨팅 용량에 대한 전체 가격을 지불하는 사용자에게 양도하기 위해 VM이 종료됩니다.

즉, 할인의 대가로 서버 가용성의 불확실성 측면에서 비용을 지불합니다. 전용 게임 서버의 경우 일반적으로 괜찮지 만 Valheim과 관련이 있습니다. 20 분 간격으로 저장, 따라서 귀하와 귀하의 친구가 플레이하는 동안 VM이 종료되면 최대 20 분의 진행 시간이 손실 될 수 있습니다. 이는 사소하게 들릴 수 있지만 오히려 좌절 자주 발생한다면.

위의 표에서 AWS가 필요한 사양에 가장 저렴한 VM을 제공함을 알 수 있습니다. 그러나 우리가 옵트 아웃한다면 Spot 인스턴스 클래스 및 이동 온디맨드, 종료 위험이없는 VM의 표준 클래스 인 가격은 34.79 달러 (46.79 달러) 달마다! 관점을 살펴보면 약 3 개월의 클라우드 비용이 발생하면 이미 Rock Pi X를 구매할 수 있습니다.

인스턴스 클래스가 문제가 아니라고 가정하면 손익분기 점은 약 8 개월의 클라우드 요금으로 푸시됩니다. 나에게 나는이 게임을 8 개월이 넘게 플레이 할 것으로 예상하고, 온 프레미스 자체 호스팅의 열렬한 팬이므로 결국 Rock Pi X를 선택했습니다.

OS 및 Docker

부팅 가능한 USB를 통해 설치된 Debian Buster를 실행 중입니다. zram 로깅  과 zram 스왑 로깅 및 스와핑에서 쓰기를 줄이거 나 리디렉션하여 eMMC 모듈의 수명을 연장합니다.

Docker에 관해서는 명령 Docker를 설정하려면 적절한 저장소을 통해 설치 

apt install

.

Docker 이미지 및 구성

이미지 선택은 선택했습니다 

mbround18/valheim-docker

 구성의 단순성 때문에 고려할만한 다른 대안이 있습니다. 

lloesche/valheim-server-docker

 더 많은 기능이 있습니다. 두 가지를 모두 확인하고 가장 적합한 것을 선택하는 것이 좋습니다.

마지막으로, 여기에 

docker run

 명령 

mbround18/valheim-docker

 내 환경 변수 구성과 함께 :

docker run -d --name valheim-server -p 2456-2458:2456-2458/udp -e NAME="My Valheim Server" -e WORLD="My World" -e PASSWORD="mysupersecurepassword" -e PUID=1000 -e PGID=1000 -e TZ=Asia/Singapore -e AUTO_UPDATE=1 -e AUTO_UPDATE_SCHEDULE="5 8 * * *" -e AUTO_BACKUP=1 -e AUTO_BACKUP_DAYS_TO_LIVE=1 -e AUTO_BACKUP_PAUSE_WITH_NO_PLAYERS=1 -e WEBHOOK_URL="https://discordapp.com/api/webhooks/1234567/somejumbleofalphanumeric-dash_underscore" -v ./valheim/saves:/home/steam/.config/unity3d/IronGate/Valheim -v ./valheim/backups:/home/steam/backups -v ./valheim/server:/home/steam/valheim mbround18/valheim-docker

각 환경 변수 설정에 대한 자세한 내용은 

README.md

 파일.

내가 설정 한 몇 가지 주목할만한 구성 값 :

-

PUID

/

PGID

: 데비안을 설치할 때 만든 첫 번째 사용자의 기본 UID 및 GID가 1000으로 설정되었습니다. 이는 볼륨 마운트와 관련된 권한 문제가 발생하지 않도록하기위한 것입니다.
-

AUTO_UPDATE

/

AUTO_UPDATE_SCHEDULE

: 자동 업데이트를 활성화하고 업데이트 할 서버를 설정했습니다. 8 : 05AM 모든 플레이어가 오프라인 상태가 아님을 보장하는 시간입니다 (모든 사람이 일하거나 잠자는 중일 때). 여기에서 cron 표현식으로 지정된 시간은 시간대의 올바른 설정에 따라 다릅니다. 

TZ

-

AUTO_BACKUP

/

AUTO_BACKUP_PAUSE_WITH_NO_PLAYERS

: 기본주기 인 15 분마다 자동 백업을 수행하고 플레이어가 없을 때 자동 백업을 일시 중지하도록 서버를 설정했습니다. 이렇게하면 백업에서 디스크 쓰기가 최대 75% 어떤 날이든 서버는 6 시간 중 ~ 24 시간 동안 만 활성 플레이어를 볼 수 있으며 플레이어가없는 시간에는 월드가 똑같은 상태로 유지되므로 추가 백업이 필요하지 않습니다.
-

WEBHOOK_URL

: 이것을 내 Discord 채널의 Webhook URL로 설정하여 채널에서 서버 상태 알림을 허용하여 친구에게 서버가 실행 중인지 여부를 확인할 수 있습니다.

포트 포워딩

라우터에서 소스 포트에 대한 포트 전달을 구성했습니다. 

2456

2457

 과 

2458

 동일한 대상 포트에 대해 Rock Pi X의 내부 IP 주소로. 라우터마다 인터페이스가 다르므로 사용해 본 적이없는 경우이 라우터에 대한 도움말을 검색해야합니다.

서버에 연결

Steam 서버 브라우저 또는 게임 내 서버 브라우저를 통해 서버에 연결하는 방법에는 두 가지가 있지만 더 빠른 잘 문서화되지 않은 방식으로 서버를 시작 옵션.

1. Steam에서 Valheim으로 이동하여 설정 (기어 아이콘으로 표시됨)

2. 아래에 시작 옵션, 다음을 입력하여 IP 주소를 전용 서버의 주소로 바꿉니다.

+connect server.static.public.ip:2457

3. 게임을 시작할 때 게임 내 프롬프트에 비밀번호를 입력하기 만하면됩니다.

지금까지의 경험

지금까지 3 주 이상 서버를 실행 해 왔으며 지난 99 일 동안 30 %의 가동 시간을 달성했습니다. 배틀메트릭스 (중단 시간은 주로 내 가려움증을 긁고 서버를 땜질하고 실수로 서버를 다운시키는 것입니다.)

3.35in x 2.13in 기계가 할 수있는 일에 상당히 감명 받았다고 말해야합니다. 지금까지 설명 할 수없는 성능 문제를 경험 한 적이 없습니다. 내가 경험 한 유일한 문제는 게임 자체의 알려진 문제이지만 고맙게도 그 이후로 0.148.6 년 23 월 2020 일 XNUMX 패치.

알려진 문제 (수정 됨)

– 멀티 플레이어 네트워크 비 동기화 문제 [레딧]
– 열악한 테라포밍 성능 [레딧]

리소스 활용

htop을 사용하여 게임의 리소스 사용률을 측정하고 아래의 평균을 계산했습니다.

CPU (유휴) : 0.6CPU (로드) : 1.5RAM : ~ 2.2GB

4 코어와 4GB RAM으로 게임은 여전히 ​​상당한 여유 공간을 남깁니다.

현재 상태

이후 Rock Pi X를 arm64 클러스터 인 Leviathan (게시 예정)에 가입하고 전용 서버를 K3s Kubernetes 클러스터로 마이그레이션하여 기존 분산 블록 스토리지를 활용했습니다.

이미 여러 앱을 자체 호스팅하는 경우 Kubernetes를 사용하는 것이 좋지만 Valheim 서버를 실행하려는 경우에는 그다지 많지 않으므로 이전 지침에서 권장하지 않았습니다.

이것을 추천할까요?

예,하지만 땜장이 인 경우에만 가능합니다. 자체 호스팅 설정에서 매우 전형적인 경향이있는 작은 딸꾹질이 여러 가지 있습니다. 너무 많아서이를 해결하는 것이 반사 작용이되었지만 작은 문제를 해결하는 데 관심이 없다면 낙담 할 수 있습니다. 최소한의 노력과 시간으로 작동하는 솔루션을 원합니다.

당신이 먼저 토끼의 구멍에 머리를 다이빙하려는 경우 자기 호스팅다음, 확실히 맞아요. 상대적으로 간단하고 직면 할 수있는 장애물이 다른 앱을 디버깅하는 데 도움이 될 것이므로 첫 번째 프로젝트로 이것을 적극 권장합니다. 이 프로젝트의 동기와 모든 것이 잘 풀릴 때 얻을 수있는 만족감은이 노력에서 당신을 발전시키는 데 도움이 될 것입니다.

Valheim 전용 서버를 호스팅하는 것은 일반적으로 셀프 호스팅이 실제로 장기적으로하고 싶은 일인지에 대한 좋은 리트머스 테스트가 될 것입니다.

다음 시간까지 재미있게 사냥을 즐겨보세요!

태그

Hacker Noon 가입

무료 계정을 만들어 맞춤형 독서 경험을 잠금 해제하세요.

코인 스마트. 유로파 최고의 비트 코인-보르 스
출처 : https://hackernoon.com/how-to-host-a-valheim-dedicated-server-with-docker-on-a-rock-pi-x-lz1b3759?source=rss

spot_img

최신 인텔리전스

spot_img