アクセス状況

  • 0
  • 7
  • 19
  • 14,178

カウント開始:2014年9月21日
カウンター+75,945が開設当初からの訪問者数


since 2014/9/21

Linuxでマイクラサーバ

某所でLinuxのネタが出てましたが、そういえばそういうコンテンツって無いですね。

某掲示板でマイクラのマルチサーバの構成が書かれていましたが、マイクラ用だとWindows Serverが圧倒的に多いですね。LinuxもDebianやUbuntuが多いのかな。

なので、試しに書き殴ってみたいと思います。なお、ほぼLinuxの始め方中心で、マイクラサーバの説明はほとんど書いてありません。ちなみに私のWindowsサーバの知識はだいぶ古いです。ですのでLinux推しな内容になってますが、LinuxがいいのかWindowsがいいのかについて言及してる記事では無いのでご了承を(ぶっちゃけ使いやすい方を使えばいいと思う)あと、ITの専門家から見るとだいぶ端折った記事なので、その辺の突っ込みはご遠慮下さいm(__)m

[…]

土地の保護プラグイン各種

使ってみた感想をメモ程度に…

ExtraHardModeのconfigを読む

EHMを使いたくなったので、configを読んでます。翻訳は機械翻訳なので、あまり期待をしないでニュアンスだけを掴んでもらえればと。

EHMの機能一覧 ワールド毎に設定できる(全てもOK)。 クリエイティブモード/OPの有効/無効が切り替えられる。 鉱石ブロックを破壊すると、周りの石が柔らかくなって落盤する。TNTなどで爆発させるとブロックが吹き飛ぶ。 ピッケルで掘れる量が減る。 高度が低い(デフォルトY=30以下)場所に松明を置けなくする。 柔らかい地面に松明を置けなく出来る。 雨が降ると松明が撤去される(屋根があれば大丈夫) ジャンプ→真下ブロック置き禁止 木を伐採すると上の幹が落下 プレイヤーへのダメージ追加効果(以下、ダメージは省略)落下すると遅くなる。爆発すると混乱。燃えると視界が狭くなる。 手で火を消すと引火。 所有アイテムが多いと重くて溺れる。 鎧を着ると歩く速度が遅くなる。ただし、鎧を着ないと通常より若干早くなる。 ゾンビを倒しても復活する。 スケルトンがいろいろな物を射出します。 帯電クリーパーが偶に出現します。 その他、敵が強化されています。 ##################################################################################################### ExtraHardMode Config ## ## 1. The config cleans itself, so if something resets you probably did something wrong ## 2. Generally if you can specify a block you can add meta after an @ ## […]

チャットシステムに関する考察

新システムを構築する上で、チャットシステムをどうするか考えてみた。

[…]

マイクラ鯖の裏話

鯖管のつぶやきってことで、偶に他愛もないことを書き殴ってますが、今回は私の管理しているAlicorn/Avalonサーバの裏話的なことを書いてみたいと思います。

[…]

サーバリプレース完了

前のサーバはマイクラを始める前に構築したんですが、構築当初から2つのマイクラサーバ(今のAlicornとAvalon)を運営するつもりで設計していた訳ですが、マイクラサーバの運営1年目に入って次のフェーズを検討する上でリソースが足りなくなってきたので、サーバの構成の見直しを図りました。

構築後の全体の構成は図のような感じです。コンセプト的には、

今まで通り、サーバを仮想化して機能(リソース)を分割し、負荷分散。 ハードはそれなりにお金をかけているけど、ソフトウェア部分はタダ!(OSSを利用)ちなみにハードの部分も完全に入れ替えでは無く、過去のハードに追加する形を取ってるので、ゼロから作るよりもかなり安く済んでます。 [仮想化]各サーバの構成(OS部分)をなるべく同じにしてメンテナンス性の向上。監視機能が同じなので管理しやすくなってるのと、バックアップ/データシェアを統一の構造にしたので、バックアップ処理やデータ交換が楽になってます。 [CPU]Minecraftはシングルスレッドプログラムなので、CPUを増やしても意味が無いです。ただプラグインやOS処理を考えると基本的にはCPUを2つ割り当てれば十分です。ただ、昨今のCPUはハードウェアマルチスレッディング(Hyper Threadingとか)でCPU数を倍化してるので、1つのCoreに負荷がかかると共連れ的にもう一つのCoreの性能も落ちます。なので、Minecraftサーバへ割り当てるCPUは4つと考えてます。そう考えるとやはりCPU自体の速度では無く、Core数を増やす必要が出てくるので、今回はデュアルCPU構成にしました。物理CPU数=2、物理Core数=12、論理Core数=24(物理Core12×2スレッド)という数になってます。 [DISK]いわゆる円盤を使ったHDDに比べるとSSDは極端に故障率が低い(HDDは経験的に2~4年くらいで壊れてる気がする)ので、今回はミラーリングをやめました。ストライピングも物理ディスクの情報が見づらくなるのと故障率の高さから、基本的にRAID構成をやめてます。何より見た目上2本だった構成から、今回の構成変更&買い足しでディスクが6本になったので、パラレル処理性能が抜群に上がってます。ミラーをやめたから信頼性が下がるかというと、OS部分を仮想ディスクにしてジョブでバックアップしたりしてます。Minecraftはそもそも1時間毎にバックアップ/1日毎に外部保管してるので、壊れても最悪でも1日分巻き戻りで済むから、「我慢できるレベルの」信頼性低下になってる感じです。また、今回は仮想化ホスト以外は、LVM(LogicalVolumeManager)構成なので、ゲームを止めずにディスク間のデータ移動が可能です。さらにホットスワップ可能なベイにディスクを装填しているので、その気になればゲームを無停止でディスクの交換も出来るようになってます。 [NET]表ネットワーク(インターネットに繋がる側)と裏ネットワーク(管理用)とでネットワークを分離。気持ちパラレル処理で性能は上がるかもしれないけど、物理的には1本なのでさほどでは無いです。目的は分割することでデータ流量を見やすくすることかな。 Minecraft部分のディスクを、それぞれOS・Data・Dynmapに分けてます。Database(巻き戻し用のログ記録や、mcMMOなどの共有データ)も別サーバに分けてるし、DynmapのWebはWebサーバ側でデータをキャッシュして負荷軽減してます。この辺は元々からやってたことだけど、上記の[DISK]にも書いた通り、物理ディスクが分かれた事での並列処理の能力が上がってるので、この構成の恩恵がさらに高くなってる感じです。 日々のバックアップや定期再起動などはジョブコントローラで制御してます。前の構成だと物理ハードの再起動とかは出来なかったんだけど、今回はちゃんと出来るような構成にしてあります。なので、仮想サーバを全停止→OSイメージをバックアップ→物理ハードを再起動(リフレッシュ)ってのも出来ちゃいます。

という事で、ハード的には複雑になり、仮想サーバも増えましたが、管理面ではむしろ楽になった感じですね。

ちなみに自宅サーバなので、うるさいと困るからFANとかを自作して取り付けてたりもします。※FANは大きい程安くて静音性が高くなります。

とりあえず今回のリプレースでより高度な仮想化基盤が出来たので、次はゲーム環境の強化ですかね。

サーバスペック

CPU:Intel XEON E5-2620v2 2.1GHz x2 MEM:64GB HDD:2.5TB(512GBx4、215GBx2) […]

紹介動画作成の裏側

裏側って程の記事じゃないけど、作成に使ったツールはPowerDirector13というツール。

http://jp.cyberlink.com/products/powerdirector-ultimate-suite/features_ja_JP.html

今まではフリーのツールをいろいろ駆使してたけど、不安定で、特に容量が大きくなると重いし落ちるしでイライラしながら作ってたので思い切ってソフトを買ってみました。

やはり金額相応ですね。軽いし、安定して動作するし、何よりエフェクトが多くていろいろできます。エンコードもフリーのツールに比べると早いです。使い勝手的には前に使ってたVideoPadに近いですね。マニュアルとか読まなくてもすんなり使えました。

なんか、ステマみたいな記事になってしまったw

プラグイン開発メモ

新しい試みをしてみようかなぁと思いつつも、いい感じのプラグインが見つからないのでいっそうのこと自前で作れないか考えてみるメモ。

プラグイン開発というか、今までは他人のをいじったり、他人のをベースに軽いプラグインは作ったことがあるけど、本腰を入れてはやってなかったので、ちゃんとやる感じです。

[…]

仮想化サーバでのマイクラサーバ構築メモ

ちょっと専門書を読んでたのでメモメモ。ちなみに仮想化ソフトウェアはKVMを使ってます。 ほとんどマイクラとは関係のない話題なので、無関心な人は無視して下さい。

ちなみにマイクラプラグインの負荷を調査したいなら、/timingコマンドについて調査すると良い。

CPU Planningで使用するCPUは固定化すること。好きなCPUを選ばせるとマイクラ側がラグが強烈に発生する。(mpstatの%stealが増えるのでわかる) CPUはゲストOSで使用しない分を一つ残す方がいいらしい。つまり、CPU2個ずつ使うゲストOSを3個作った場合は、CPUの数は2×3+1(ホストOS用)が最低数。 たぶん、10人くらいログインするサーバならCPU2つで十分。Avalonは念のため4つにしてる。 CPU2つって言っても、ハイパースレッディングなので、物理コアが一つなのに注意。マイクラはかなり一つのCPUに負荷をかけるので、CPU2個(2スレッド)で回すのは微妙? やはりCPU数よりもスピード重視がいい。(マイクラは) 2.4GHzのCPUに10人くらいログインして、CPU使用率は80%/1コアくらい。 お金がないからやってないけど、物理CPUを増やすなら、1つのゲストOSのvCPUを2つの物理CPUに分けるのはやめた方がいいらしい。 マイクラサーバは一度CPU使用率が上がる、さほど上がらない傾向があるので、毎日再起動した方がよい。 メモリ 一番謎が多く、課題として取り組んでいるポイント。たぶんプラグイン毎のメモリ使用数とか分析しないとわからなさそう。 言うまでもないがホストOSに32bit OSは使わない(メモリ上限の問題) 起動時のJAVAの-serverオプションは必須なのは当然なのだが、そうすると「ほぼ」常時-Xmx分を使用する。(厳密には起動直後だけあまり使わない)。 多かろうが、少なかろうが「設定しただけ使われる」。 -Xmnは-Xmxの1/3~1/2の間くらいがちょうどいいみたい。これ以上減らすとFullGCの発生数が増えるし、増やしても変化が少なくなる。 -XX:PermSizeと-XX:MaxPermSizeは少ないと明らかに不具合が起きるが、どこまで増やしていいかは謎。256Mくらいで動かしてる。 やはり起動しっぱなしだとFullGCの時間が徐々に増えていくようなので、毎日再起動した方が安定していそう。 HugePage?→要調査 ディスク やはり、パフォーマンスはノーマルなrawやqcow2よりも、sparse化したrawが最強らしい。今のサーバはLVMでパーテーションをマルっとディスクに割り当ててるけど、遅い気がする? qcow2はスナップショットが作れるのであればあったで便利。不具合があった場合に一瞬で巻き戻しできるし。 2つのマイクラサーバを、2つのゲストOSで稼働させているが、そのファイルを1つのディスク上に展開しているのは超失敗、、、。片側のI/Oが上がると、もう片方のマイクラがラグる。気にするほどじゃないけど、ddコマンドとかでrawファイルを作ったり、dynmapでマップ生成を別ゲストで実施しても、影響が出る。 特にHDDの場合は、2ゲストを1HDD上に置くとシークタイムが増えて、パフォーマンスが激減するらしい。 ただ、単純にディスクを分ければいいのか、それともコントローラまで分けないと意味がないのかは不明。 まぁ、今の時代はSSD。 ミラーリングの必要性は疑問。マイクラサーバは(最近は安定しているけど)、OSが強制停止したりするとチャンク欠落などが高い確率で発生する。 だから、障害発生時は「巻き戻し」が必要なので、バックアップの多世代化が必要。特にサーバ異常停止→自動起動の仕組みにしている場合は、障害データのまま古いバックアップを上書き削除する場合がある。 たとえば、1時間毎10世代とかのバックアップをするなら、ディスクが壊れてデータ欠損をしたところで、1時間前のバックアップがあればそこから戻せるので、あまり問題は起きない。だから、ミラーリングにお金をかけるくらいなら、単構成にしてバックアップ世代数を増やした方が安全な気がする(当然バックアップの物理ディスクは分ける) ファイルシステムはext3より、XFSの方が性能がいいらしい。 ディスクパーテーションの論理的な開始位置と物理的な位置がずれるとパフォーマンスが落ちるらしい。Linuxは4kb単位らしいが、ゲストOSからは512kbに見える?よくわからないので調査が必要。 仮想ディスクのディスクパスはやはりvirtioにするのがパフォーマンス上よい。IDEは最悪らしい。 I/Oスケジューラはdeadlineがいいらしい。SSDの場合はnoopもいいらしいけど、技術資料には「負荷状況にもよるが、ホスト側もゲスト側もdeadlineにするとベンチマーク結果が安定する」って書いてあった。ちなみにデフォルトはCFQ また、新しめのOSでも、ホストOSのバージョンが古いとディスクパフォーマンスが低下するらしい。 IOモードががnativeの場合、ブロックサイズを大きくした方が、高速でCPU負荷が減るらしい。(32kぐらいがいい?) ネットワーク デバイスモデルはvirtioを使う。CentOSならドライバもあるから選択の余地なし。rtl8139が一番パフォーマンスが悪いらしい。 仮想化環境用クローズドネットを作った方がいいね。作って無いや…

 

I/Oスケジューラの扱い方(カーネル2.6.17以上かも) 以下の例は物理デバイスが/dev/vdaの場合。ちなみに再起動すると戻るので、bootオプションにもつけないとダメ。

確認 # cat /sys/block/vda/queue/scheduler noop anticipatory deadline [cfq] 設定 # echo deadline > /sys/block/vda/queue/scheduler 確認 # cat /sys/block/vda/queue/scheduler noop anticipatory [deadline] cfq

RecipeManager日本語訳

英語苦手なので翻訳がおかしいところや翻訳してないところがちょこちょことありますが、、、たぶんフィーリングで読めば何とかわかると思います。ちなみに修正が面倒なので指摘を受けても直さないかもw

※翻訳してて「これって何のこと?」ってのがまだまだ多いですが、後になって「アレのことか」ってなって翻訳を直すこともしばしばあります、、、

RecipeManager v2.3.2

Basic Recipes Advanced Recipes Recipe Flags Recipe Books Name Index Commands & Permissions