2013年8月14日

システム屋因果師匠、艦これサーバーを語る

SEとしてのサーバーの見方メモ
19
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

1時間あたりテラクラスの通信は大した問題にはならないですよ。日本の通信インフラなめちゃいけません。問題は十万単位のユーザーをさばき、処理し、そしてデータの整合性を維持するサーバーとストレージ(私の推測では特にストレージ)だと思いますね。 #艦これ

2013-08-14 12:41:38
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

いえいえ、我々は誰もが想像するしかないですから。私がぼんやり想像してるシステム的にはサーバーのマシンパワーよりストレージのI/Oの方がしんどい構成かな、って思いますね……  > @nanjyo_tadashi

2013-08-14 12:50:50
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

ストレージの構成で安心できるのは、まずどんなRAIDでもバックアップを取っていること。RAID5はぶっちゃけ脆弱。ホットスペアがあってもです。RAID6はかなり堅牢で、数十本単位のアレイでも滅多にロストには至りません。しかしそれでも逝くときは逝きます。

2013-08-14 12:53:00
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

実はいざという時の復旧を考慮したとき、もっとも強力な構成の一つが『HDD2本でRAID1』だったりします。これはまず耐障害性という点で1本ですからRAID5に匹敵します。しかし、実運用面で言うと、たとえばパッチ宛ての際などは『あえてHDDを一本抜く』と失敗時に瞬時にリストア可能

2013-08-14 12:54:39
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

まあ、要するに『抜いてあったHDD』で起動するわけね。で、これをさらに応用して『定期的に1本だけHDDを入れ替える』と、抜いたHDDはその時点のバックアップとなり、リビルドも数時間もかかりません(これはサーバー用のシステムに限ります)。 ホットスワップ対応のHDDだと楽ちんです

2013-08-14 12:56:01
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

つまり、たった3本のHDDで容量的には1本分なのですが『タイムラグの事実上存在しないバックアップ取得(HDD1本抜く)』、『ラグのないリストア(いざという時抜いたHDDをさす)』『RAID冗長性の迅速な復旧(さしたあとのリビルド)』がローコスト・シンプルに実現可能です。

2013-08-14 12:57:08
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

コンシューマーの視点からすると「HDD一本の容量なんて使い物にならないよ(嘲笑」とか思いがちなのですが、これは現場をご存じない。サーバーの世界は容量など100GBも要求しない用途がかなりの割合を占めています。ユーザー管理とかそういうのね。

2013-08-14 12:58:12
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

で、サーバーに求められるのは『落ちないこと』『いざ問題が起こったなら1秒でも早く復帰すること』『多少の問題は業務を続けながら復帰できること』です。(ホットスワップと言われるHDDの活性交換とリビルドはまさに最後のやつですね)。さっきの構成はこれらを全て高レベルで満たしているのです

2013-08-14 12:59:16
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

ただし。これはいわゆる家庭用のPCでは実現できませんから悪しからず。まずホットスワップに対応しておりません。あと、安物のRAIDカードやソフトウェアRAIDの信頼性は「はっ(嘲笑」というレベルです。中古の一世代前のものでいいからサーバーベンダ純正のRAIDカードがおすすめです。

2013-08-14 13:00:38
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

死ぬわ~、このアレイ絶対数年以内に死ぬわ~という構成ですねw >@marman_band: @IngaSakimori RAID5のロジカルを束ねて、更にRAID5を構築しようずっ>ω<←放送用にこういうのが実際あったっぽい。

2013-08-14 13:01:06
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

ぶっちゃけRAID6なら、怪しい動きし始めてからバックアップとっても大体平気ですけどね…… > @Goendama: @IngaSakimori RAIDをバックアップと勘違いする人が居るので安心です

2013-08-14 13:01:34
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

で、 #艦これ に戻りますが、たぶんサーバー(これはノードといってシンプルな1Uサーバーをたくさん並べていると思います)の持ってるHDDは72GBとか146GBで、それこそさっき書いた2本でRAID1じゃないかな。処理ごとに各ジョブをストレージからロードしてると思うので……

2013-08-14 13:02:39
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

各サーバーの保持する固有のデータはおそらくないでしょう。OSに #艦これ というアプリを処理するためのサービスが突っ込んであるだけです。こういう構成はサーバーが一台吹っ飛ぼうと、簡単に復旧できます。ですので、猫がでているとき、サーバーの障害というのは考えにくいかな #艦これ

2013-08-14 13:03:30
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

じゃあ猫はなぜ #艦これ で出るのか。私は二つのパターンがあると思います。まず純粋にユーザーが多すぎてサーバー(さっき書いたノード)の処理が追いつかない場合。この場合はサーバーを増やすしかないです。しかしあくまで『処理』なので同時接続数が落ちれば快適になりますね

2013-08-14 13:04:34
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

もう一つのパターンは恐らくストレージ側です。ストレージといっても、皆さんのほとんどが見たことのないようなお化けみたいなストレージです。ラック一つまるごと占有するようなやつね。SASとかFC接続のHDDが死ぬほど大量に詰まっていて、メーカー独自の仮想RAIDを組んでいます #艦これ

2013-08-14 13:05:43
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

こういう専門のストレージというのは、これまたお化けみたいな処理能力を持っています。HDD単体のスペックでは絶対に追いつけないレベルのね。(技術的なところは各企業のホワイトペーパーを読もう!)しかし、それでもとんでもないI/Oが押し寄せてくると……負けますw #艦これ

2013-08-14 13:06:38
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

で、これが二つ目の原因。ストレージの飽和で猫が出るんだと思いますね。たとえば、艦これでは数分ごとに資材が自然に増加します。このとき、あなたのパソコンはDMMのゲートウェイ(入り口)となるサーバーを通してストレージが持ってるパラメーターを見に行きます #艦これ

2013-08-14 13:08:11
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

このパラメーターはまさに各ユーザー固有のものであり、私は『○○サーバー』とはイコール『ストレージ』だとほぼ確信していますが、それはさておいて…ストレージの処理が飽和していて、こうした通信に問題がおきれば当然猫が出るわけですね #艦これ

2013-08-14 13:09:00
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

とまあ、これら二つがだいたい猫の出る原因じゃないかなー、と思いますね。最近、おおむね安定傾向にあるのはストレージごとに『適切な』ユーザー数が割り当てられているからだと思います。だからアクティヴ率が落ちない限りは横須賀・呉・佐世保・舞鶴サーバーはもう入れないでしょうね。 #艦これ

2013-08-14 13:10:00
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

逆に言うと運営の想定しているMAXを超えるアクティヴユーザーが押し寄せると、国内の四鎮守府でも容赦なく猫が出ると思われますね。 #艦これ

2013-08-14 13:10:53
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

とか書いていたら、メンテ始まっちゃうよ!うおおおおおおおおおおおおお!大破した赤城さんお風呂に沈め忘れたああああああああああああああああ!!(・∀・;) バケツ使うか…… #艦これ

2013-08-14 13:11:21
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

前後間違えてリビルド始めちゃうとおしまいですからねw > @canolym5: @IngaSakimori パッチ当てた側でリストアしてしまう悲劇もありますよねー

2013-08-14 13:15:44
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

「いいよ!こいよ!30分で……5万円!パパパっと稼いで終わりっ!」 > @itsukiharashin: いいお話書くから、エアコン買うお金稼がせてください

2013-08-14 13:16:26
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

艦これがメンテに入ったからって、一斉に出かける人たち(お前もだ)

2013-08-14 13:32:48
IngaSakimori@カクヨムで新作『人工知能戦争2035~DLW:Reboot』連載中 @IngaSakimori

というかまあ、ああいうコントローラーってぶっちゃけオモチャみたいなもんなので… > @Advanced_MH: @IngaSakimori RAIDとか自作PCのM/Bにも機能ついてたりしますけど、絶対コントローラがタコってデータ飛ばすリスクの方が高い気がしてます。

2013-08-14 13:56:34
残りを読む(1)

コメント

mmasuda is fully vaccinated 💉💉 @mmasuda 2013年8月14日
初期のころは猫が出た時のパケットダンプのhttp レスポンスパケット見るといろいろヒント見れたんだけどねぇ。流石に最近は素のエラーメッセージ出すのは抑制したみたい(ぉ。
2
neologcutter @neologcuter 2013年8月15日
こんなの絶対おかしいよ! ローソンのまどマギ体操着フィギュアをネット民があらぬ方向に活用 http://p.tl/D9Y8 まあ因果先生の好きそうなネタということで。
0
polaris💉💉 @Polaris_sky 2013年8月15日
実際、大規模システムで大量のトランザクションを処理する場合、ストレージが磁気ディスクを採用していたらディスクi/oがボトルネックになるからね。あとはユーザからのアクセスにたいしてどうやってネットワークの負荷分散装置でロードバランスしているかも興味ある。 艦これやった事ないからしらんけど。
1
ひろ@猫もふ欠乏症 @hiro_h 2017年9月3日
@IngaSakimori 最初はmysql clusterを使ってて猫りまくって、hadoopに移行したって聞いてたんだけど、その話と「SASとかFC接続のHDDが死ぬほど大量に詰まっていて、メーカー独自の仮想RAIDを組んでいます」って整合しない気がする。
1