グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineers' Blog(情報元のブックマーク数)
Greeのインフラ苦労な話。こういう苦労話は面白いしためになる。
弊社で運営させていただいている “GREE” ではユーザの写真や動画データを保存することができます。1億ユーザを目指すグリーは、ユーザの増加とともに写真や動画データは上限なしに増加していきます。またユーザの皆様の大切なデータを失うことは許されませし、サービスを止めることも許されません。そんな状況の中、様々な技術や仕組みを使いサービスを運営してまいりました。
グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineers' Blog
グリーのストレージの歴史は大きく分けて3世代がありました。
高価なサーバを入れて処理能力を上げたが・・・価格がね・・・
グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineers' Blog第三世代
第三世代では、第二世代の仕組みに加え高価なサーバを購入することにより1台のサーバでより多くのユーザを処理できるようにパフォーマンスを向上させました。同時に1台のサーバ内の複数のHDDに画像データを保存するため信頼性を向上し、また多くの画像を保存できるためサーバの台数を減らすことができました。しかし1台のサーバへのトラフィックが上がりwebDAVサーバのアプリケーションが処理しきれなくなってしまいました。ある程度はアプリケーションのチューニングにより改善を行うことは可能ですがトラフィックを分散させない限りいつかアプリケーションの限界を迎えることとなります。スケールアウトするのでサーバを増やせばよいのですが今度はサーバ費用が増加することになります。
そこで、分散ファイルシステムを独自開発とのこと。
グリーの大規模分散ストレージ戦略(nanofs) | GREE Engineers' Blog第四世代目のストレージシステム
これまでの経験上Webサービスに適したシステムは下記の3つです。
- Scalability (拡張性)
- Availability (可用性)
- Maintainability (保守性)
この3つのことをグリーの一部では “SAM(サム)” と呼ばれております。テストにはでませんので忘れてください・・・。
Scalability(拡張性)は、スケールアウトすることがトラフィックを分散させることに繋がります。
Availability(可用性)は、一部のサーバで障害が発生しても安定して稼働しつづける冗長化が保たれたシステムが好ましいと考えます。
Maintainability(保守性)は、運用コストが低く運用し易いシステムであるべきと考えました。
この3つに当てはまるアプリケーションとなるとMogileFSが思い浮かんだのですがよりシンプルな構造の分散ストレージがよかったので自社で開発する道を選びました。