2022年2月23日水曜日

Minecraft サーバーをNASで立ち上げてみたりした、参考url・キーワードまとめ

先日NASを購入し、バックアップ等のために使用し始めたのですが、
色々とみてみるとNASで動いているOS上で、dockerが動くらしく。
 別途Docker上でMinecraftサーバーを立ち上げることができるということがわかり。
ということは、NAS上のDockerでMinecraftができるのでは?と思ったのでやってみました。
調べていた中で、NASでMinecraftサーバーを立ち上げるっていうのは割と行われていることのようで、 結構でてきます。
ただ今回うちで導入した家庭用モデルで実行している人はなかなかいなかったので、記録として残しておきます。
*注意として
サーバー用のハードではないので、当然ながら快適に遊べる環境ではないと思ってください。 
一応動きますが迂闊に大移動したりとかするとサーバーは落ちます。
Docker・ネットワーク・minecraft等への専門家ではありません。 もっと動きやすい設定ができたり、効率良い方法があったりとかならまだしも、セキュリティ上マズイ点などもよくみるとあるかもしれないので自己責任で作業をお願いします。
もちろんMinecraftサーバーを立てるためにNAS買うなんてことは全く無意味なので、それなら素直にサーバーpcを買った方が安いしスペックも良いです。


最終的な動作テスト環境
NAS:QNAP q231k
サーバー:PaperMC
最新ver Minecraft ver1.18.1
クライアント 自分:macbook Air (late 2020)
友人4人(mac3人、win1人)
オーバーワールドで少しずつ建築進めつつ、ネザーに侵入し始めたところ

現状の問題点
Mobが増えてくると重くなる→サーバータイムアウトの恐れ
新規チャンクを読み込みすると重くなる→動作が重なると場合によって落ちる
Nas用途の方で少し書き込みが遅くなっていることが感じられる。
ただ、地上で限られた範囲で共同生活して遊ぶ程度であれば結構スムーズに動作する。


0:まずNASとは?
基本LAN内に配置して、いろんなpcから接続できるファイルサーバーのこと。
USBメモリのとてもつよいやつと思っても良い。
複数のHDDに同じデータを書き込んで、1台のHDDが壊れてももう一台あるよという感じでデータを保護できたり、 いくつかpcを持っていたら同じデータをこのNASから共有して使用できるようにしたり、 携帯からもそのデータを見れるようにしたりとかできる。
ちなみに"サーバー用途のpc"という存在を知っていれば、 ファイルを扱うことに特化したサーバーと思って差し支えない。
逆にいうと、ちゃんとしたサーバーpcを使えるならNASをわざわざ買う必要はなかったりする。
先日、データ保管用外付けハードディスクが突然破損してしまい、 写真などが失われてとても悲しい気持ちになっていたので、
バックアップのためHDDをRAIDで保管しようと思ったことに加え、 macbookを昨年買った時に、それまで使用していたwinpcもまだ全然現役specだったので、 SSDに換装したりして再利用しようと考えつつ、データのやりとりをスムーズにできると便利だなぁと思った結果、 ちょっとオーバースペックではあるがNASを導入してみようと思ったのが今回の始まり。

1:起動、Dockerインストール
大いにこちらを参考にしている、というかこちらを元に起動しました。
とても詳しい。

1−1:セットアップ
まず、NASは普通にセットアップしてください。
ちゃんと説明に沿って進めれば全然問題なくNASとしては使用できます。
とりあえずファイアウォールとかそういうのはちゃんと入れてておきましょう。
1−2:Dockerを動かすためのアプリケーションを入れる
Nasの設定画面をブラウザで開いて、Container Stationというソフトをいれましょう。 
Dockerを動かすためのソフトです。
これを使うとちょっとしたwebサーバーとかにもなるらしい。 

2:コンテナイメージをダウンロード・展開。 
2−1: 動作が重い? 
みていたところ、minecraftサーバーは初回起動時に下記のことを行なっているようです。 ・環境の確認 
・必要なデータ、アップデートのダウンロード 
・ワールドの生成← 
このうち、ワールドの生成に非常に長い時間がかかります。 
通常のサーバーpc等であればものの数分で終わる処理のようですが、TS231kではどのくらいかかるかというと8時間ほど。 
動作が止まっていると感じるかもしれませんが、気長に一晩待てば初回起動成功はします。 

2−2:ログインできた 
ここで公式版のminecraftサーバーは動作できますが、 下記の問題点が生じます。 
・まずチャンクの読み込みが遅いため、最初の動き始めるまでにストレスがかかる。 
・動き出せるようになっても、未読み込みチャンクの処理に時間がかかる。 
・長い距離を高速で移動すると読み込めていないことも多い。 
・頻繁にロールバック(やった行動が少し巻き戻る現象)が生じる 
読み込みチャンクの設定などを結構いじったりしてみても、実質的には変わらず。 
人を呼んで遊べるレベルではありませんでした。 
↓ 軽く動作させる方法は? 

3:PaperMCの導入 
公式minecraftサーバーとは別に、互換サーバーソフトウェアのようなものがいくつかあることがわかりました。 
その中から、手軽に使えそう、ビルド済み、安定、ARM32bitCPUに対応ということで、 PaperMCを選択、試してみることに。 
導入自体は簡単です。 

NASをセットアップできていれば、自分のファイルマネージャソフトからguiでmineraftのディレクトリを開き、 公式サーバーと同じ名前にして入れ変えれば取り急ぎ動きます。
*真面目にやる場合はちゃんと起動スクリプトを書いたりとかしましょう。 

paperMCのlogを眺めていると、公式サーバーがやっている処理の一部を無視する?ようになっていてそれで軽量化しているようです。 
再起動・動作確認を行ってみると、公式サーバーと比較して格段に快適に。 
ここでなんとか人を呼べるような状況になったと判断しました。 

4:ポート解放、グローバルipの確認 
ファイアウォールの設定などをいじって、外から人がはいれるようにします。 
nas側(docker側)設定と、ルーターの設定の両方を行いましょう。 
*ちなみに、自分のpcがローカルにある場合は自分はグローバルipからは入れません。一瞬ハマりました。 

5:設定で軽く 
paperMCを軽くしていく設定を入れていきます。 
paperMC 安定化 とかで検索すると設定例が出てきますので、それでいじっていきましょう。 
これでmobの数を減らす・敵デスポーンしやすくする・読み込みチャンク範囲を狭くするなどを行うと、 4−5人で地上生活(サバイバルモード)を送れるようになりました。 

ここまででの残った問題点は下記です。 
・高速移動するとロールバックされる 
・ブロックを壊した判定が巻き戻されて見えないブロックが発生する 
・複数人が大きく離れると時々サーバーが落ちる 
・チャンク読み込みは多少遅いため、高速移動すると巻き戻る。バニーホップどころか走るのも気を使う。 

拠点一つ分と中規模の建築、地下にブランチマイニング場、家畜をある程度の広さで飼う、自動焼肉機作成まではこのスペックでいけました。 

個人的には、素人な自分だけであればこれだけで十分楽しく遊べたかと思います。 
グループに結構詳しい人がいたため、数日後に早い段階で次の問題に入りました。 

5:問題発生、ネザーゲートに入ると落ちる  
ブランチマイニング等で資源を集めていくことで、ネザーゲートを作成することに成功しました。  
いよいよネザーで何かをやってみようということで入ってみたのですが、ここでサーバーがダウン。  
ログをみると、サーバーのタイムアウトで切断されているようです。 
ネザー用のワールド生成(初回起動で6時間かかるやつ)に準ずる処理が行われているらしく、その処理を待てず落ちるようでした。 
処理自体は行われていることがサーバーログを見ているとわかるため、一人で何度かに分けて読み込ませてネザーワールドを先に作らせることができれば入れると推測。 
設定でタイムアウトまでの時間を2倍に伸ばしテストしてみたところ、一人でネザーに入ることには成功しましたが、移動に異常に時間がかかり、 また地上とネザーで作業を並行すると負荷が大きいようで落ちやすくなってしまいました。 

6:結論 
Qnap TS231Kでのマインクラフトサーバーは、下記のような感じです。 
・導入は結構簡単。 
・地上でサバイバル、一人でなら割と遊べる。 
・大規模建築を始める、ネザーに行くなどを高速でやるにはスペック不足 
・別の処理がnas側で始まるとやはり少し処理落ちが起こる。 

とはいえ、NASのおまけでこれをできると考えると、かなり楽しめました。 マイクラサーバーのために買うものではないですが、おまけとしてであれば試してみるのも良いかと思います。

 

追記:
この後結局raspberry piを購入→別途サーバーとして使用しています。
大規模になってきて早くも落ち始めてるけど・・・

0 件のコメント:

コメントを投稿